![](/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.