Python mongodb连接字符串uri在Kubernetes中不工作

Python mongodb连接字符串uri在Kubernetes中不工作,python,mongodb,kubernetes,Python,Mongodb,Kubernetes,我已将mongodb部署为K8S上的StatefulSets。当我尝试使用连接字符串URI(例如:mongodb://mongo-0.mongo:27017,mongo-1.mongo:27017/cool_db),但当我使用端点IP地址时,它正在连接并获得结果 # kubectl get sts NAME READY AGE mongo 2/2 7h33m #kubectl get pods NAME

我已将mongodb部署为K8S上的StatefulSets。当我尝试使用连接字符串URI(例如:mongodb://mongo-0.mongo:27017,mongo-1.mongo:27017/cool_db),但当我使用端点IP地址时,它正在连接并获得结果

# kubectl get sts
NAME    READY   AGE
mongo   2/2     7h33m

#kubectl get pods
NAME                                      READY   STATUS    RESTARTS   AGE
mongo-0                                   2/2     Running   0          7h48m
mongo-1                                   2/2     Running   2          7h47m

# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)     AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP     10h
mongo        ClusterIP   None         <none>        27017/TCP   7h48m


我尝试过使用不同的URI,比如(client=pymongo.MongoClient(“mongodb://mongo-0.mongo:27017/cool_db)但不起作用。有人能帮我吗?

我想用
mongodb://mongo-0:27017
应在以下位置起作用


在集群内,您应该使用刚刚调试完此问题的
.svc.cluster.local

引用MongoDB Pod。确保您的迷你kube正在使用coredns。我的不是,一旦我删除了minikube并启动了minikube,事情就成功了

你需要看看这个

$ kubectl get deploy -n kube-system
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
coredns   1/1     1            1           31s
还是这个

$ kubectl get po -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-66bff467f8-9h6qb           1/1     Running   0          46s
etcd-minikube                      1/1     Running   0          46s
kube-apiserver-minikube            1/1     Running   0          46s
kube-controller-manager-minikube   1/1     Running   0          45s
kube-proxy-d99lp                   1/1     Running   0          46s
kube-scheduler-minikube            1/1     Running   0          46s
storage-provisioner                1/1     Running   0          49s

您好,Udav,谢谢您的回复,尝试过,但得到了相同的错误。@udev,pymongo.errors.ServerSelectionTimeoutError:mongo-0:27017:[Errno-2]名称或服务未知您的pymongo应用程序是否在同一k8s群集中运行?@BellyBuster,pymongo是在K8S主机上使用pip安装的。您能告诉我们您正在尝试在同一命名空间内连接吗?您只有一个
mongo
服务正在运行?在这个问题上运气好吗?
$ kubectl get deploy -n kube-system
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
coredns   1/1     1            1           31s
$ kubectl get po -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-66bff467f8-9h6qb           1/1     Running   0          46s
etcd-minikube                      1/1     Running   0          46s
kube-apiserver-minikube            1/1     Running   0          46s
kube-controller-manager-minikube   1/1     Running   0          45s
kube-proxy-d99lp                   1/1     Running   0          46s
kube-scheduler-minikube            1/1     Running   0          46s
storage-provisioner                1/1     Running   0          49s