我在 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),然后你可以尝试像这样的东西查看您的数据库是否正在运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)