一、问题描述我正在尝试在其他/或可以访问它的地方运行MongoDB Deployment+ 。到目前为止,我显然已经成功部署了它,但是每当我尝试从,或中访问它时,我都会得到(请注意,我正在使用而不是为了访问主机;并且我的超时时间为 30 秒):ServiceKubernetesPodsJobsContainersJobPodContainer0.0.0.0localhostpymongo.errors.ServerSelectionTimeoutError: 0.0.0.0:30001: [Errno 111] Connection refused2.在本地,它似乎工作......如果我尝试通过 a 访问它Python CLI,它看起来确实有效:>>> import pymongo>>> client = pymongo.MongoClient(host='0.0.0.0', port=30001) # 'localhost' also works>>> client.list_database_names()['admin', 'config', 'local', 'test_db'] # 'test_db' is a db I had previously created尝试访问时我应该使用另一个主机地址MongoDB service吗?(如果是这样,它在哪里显示kubectl describe svc <service_name>?)3.Deployment和Service配置我的MongoDB deployment(改编自Nigel Poulton 的 Kubernetes Book)是:apiVersion: apps/v1kind: Deploymentmetadata: name: mymongodb-depspec: replicas: 1 selector: matchLabels: app: hello-mongo minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: hello-mongo spec: containers: - name: mongo image: mongo imagePullPolicy: IfNotPresent ports: - containerPort: 27017它service是:apiVersion: v1kind: Servicemetadata: name: hello-svc labels: app: hello-mongospec: type: NodePort ports: - port: 27017 nodePort: 30001 protocol: TCP selector: app: hello-mongo
1 回答

qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
您在集群内部和外部的连接体验Kubernetes
会有所不同。
在集群中,您应该引用MongoDB
Pod
using<service-name>.<namespace-name>.svc.cluster.local
而不是0.0.0.0
. 所以,在你的情况下,host
最终会是hello-svc.default.svc.cluster.local
.
另请注意,port
应该将 引用为在集群中看到的NodePort
,而不是用于从外部访问集群的 。在你的情况下,那将是27017
.
添加回答
举报
0/150
提交
取消