我在Google Cloud上有一个Kubernetes群集,我有一个数据库服务,它在mongodb部署之前运行。我还有一系列微服务,它们正在尝试连接到该数据存储区。
然而,他们似乎无法找到主持人。
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
这是我的mongo部署......
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>
我的一项服务的例子......
{{1}}
答案 0 :(得分:7)
首先,检查服务是否已创建
kubectl describe svc mongo
您应该看到它显示它已创建并路由到您的pod的IP。如果您想知道您的pod的IP是什么,可以通过
查看 kubectl get po | grep mongo
哪个应该返回类似:mongo-deployment-<guid>-<guid>
,然后执行
kubectl describe po mongo-deployment-<guid>-<guid>
您应确保已正确启动广告连播,并且Running
不是ImagePullBackoff
。看起来您正在安装gcePersistentDisk
的音量。如果你看到你的pod刚刚挂在ContainerCreating
状态,你很可能没有正确安装磁盘。在尝试create the disk之前确保mount it as a volume。
如果您的服务看起来路由正确,那么您可以检查您的pod的日志以确保它正确启动:
kubectl logs mongo-deployment-<guid>-<guid>
如果它看起来像pod和日志是正确的,你可以执行进入pod并确保mongo实际上正在启动和工作:
kubectl exec -it mongo-deployment-<guid>-<guid> sh
哪个可以让你进入容器(Pod),然后你可以尝试something like this来查看你的数据库是否正在运行。