我有一个3节点的系统,在这个系统上我托管了一个基本的ArangoDB集群,这个集群有3个dbserver。我使用的是Python-arango库,它说要连接到集群,我们需要向ArangoClient类提供端口为8529的IP列表。我的Python代码在另一个pod中运行。
使用Arangosh,我可以使用localhost:8529配置访问协调器pod。但是,在Arangosh上,我一次只能访问一个协调器pod。由于Arango是一个集群,我希望以一种循环方式同时连接到所有三个协调器pod。现在,根据Kubernetes文档中MongoDB的情况,我可以将的列表提供<pod_name.service_name>给MongoClient,它将获得连接。我正在尝试与Arango协调器pod类似的操作。但这似乎不起作用。Arango文档中的示例只指向编写“localhost-1”、“localhost-2”等。
总而言之,我不知道如何识别Arango协调器的IP地址。我尝试使用协调器的内部IP地址,尝试使用 http://pod_name.8529,尝试使用Web UI中显示的协调器的端点(以ssl开头,但我已将ssl替换为http),但都没有成功。
我将感激在这方面的任何帮助。请让我知道,如果需要一些额外的信息。我被这个问题困了一个星期了。
2条答案
按热度按时间v8wbuo2f1#
如果您执行以下操作:https://www.arangodb.com/2018/12/deploying-arangodb-3-4-on-kubernetes/
有一个YAML配置文件,它正在创建多个POD。您的应用程序应该如何使用
Kubernetes service
与ArragoDB连接。因此,您的应用程序将连接到Kubernetes服务,默认情况下,Kubernets服务管理RoundRobin负载平衡。
在示例中,您可以看到它正在创建三个服务
服务
my-arangodb-cluster-ea
是公开的。而服务my-arangodb-cluster
可以使用应用程序在内部访问。你的心流会像这样
tv6aics12#
我猜您可以使用上面提到的LoadBalancer连接到它们,在这种情况下,k8将在协调器Pod之间平衡您的请求,或者您可以为每个协调器显式创建服务,并以您想要的方式在python客户机配置中使用它们的IP地址