![](/img/trans.png)
[英]Cannot connect to mongodb from another pod in kubernetes cluster
[英]Cannot connect to a mongodb service in a Kubernetes cluster
我在Google Cloud上有一个Kubernetes集群,我有一个数据库服务,它在mongodb部署之前运行。 我还有一系列微服务,它们正在尝试连接到该数据存储区。
但是,他们似乎无法找到主持人。
apiVersion: v1
kind: Service
metadata:
labels:
name: mongo
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
selector:
name: mongo
这是我的mongo部署......
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mongo-deployment
spec:
replicas: 1
template:
metadata:
labels:
name: mongo
spec:
containers:
- image: mongo:latest
name: mongo
ports:
- name: mongo
containerPort: 27017
hostPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
volumes:
- name: mongo-persistent-storage
gcePersistentDisk:
pdName: mongo-disk
fsType: ext4
以及我的一项服务的例子......
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: bandzest-artists
spec:
replicas: 1
template:
metadata:
labels:
name: bandzest-artists
spec:
containers:
- name: artists-container
image: gcr.io/<omitted>/artists:41040e8
ports:
- containerPort: 7000
imagePullPolicy: Always
env:
- name: DB_HOST
value: mongo
- name: AWS_BUCKET_NAME
value: <omitted>
- name: AWS_ACCESS_KEY_ID
value: <omitted>
- name: AWS_SECRET_KEY
value: <omitted>
首先,检查是否已创建服务
kubectl describe svc mongo
您应该看到它显示它已创建并路由到您的pod的IP。 如果你想知道你的pod的IP是什么,你可以通过它来检查它
kubectl get po | grep mongo
哪个应该返回类似: mongo-deployment-<guid>-<guid>
,然后执行
kubectl describe po mongo-deployment-<guid>-<guid>
你应该确保pod正确启动,并说Running
不像ImagePullBackoff
。 看起来你正在从gcePersistentDisk
安装一个卷。 如果你看到你的pod刚刚挂在ContainerCreating
状态,你很可能没有正确安装磁盘。 在尝试将其作为卷安装之前,请确保创建磁盘 。
如果您的服务看起来路由正确,那么您可以检查您的pod的日志,以确保它正确启动mongo:
kubectl logs mongo-deployment-<guid>-<guid>
如果它看起来像pod和日志是正确的,你可以执行进入pod并确保mongo实际上正在启动和工作: kubectl exec -it mongo-deployment-<guid>-<guid> sh
哪个应该让你进入容器(Pod),然后你可以尝试这样的东西 ,看看你的数据库是否正在运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.