就绪探测失败:MongoDB shell 版本 v4.0.10



在 kubernetes 中运行 monogodb 时,它给出了以下错误:

我试图改变mongodb的形象

Warning  Unhealthy  2m28s  kubelet, minikube  Readiness probe failed: MongoDB 
shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
2019-06-08T15:25:01.774+0000 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
Warning  Unhealthy  2m17s  kubelet, minikube  Readiness probe failed: MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
2019-06-08T15:25:12.008+0000 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed

我观察到同样的错误,一旦我在部署内部的就绪探测规范中将initialDelaySeconds:值增加到更高的数字,问题就消失了,mongodbPod 已经生成而没有错误。实际上,docker 需要一些时间来拉取docker.io/bitnami/mongodb映像并初始化套接字mongodb侦听器,因此就绪探测会在容器进程尚未准备好网络连接时指示问题。

readinessProbe:
exec:
command:
- mongo
- --eval
- db.adminCommand('ping')
failureThreshold: 6
initialDelaySeconds: 360
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5

同时,您可以检查mongodbPod 是否有任何入站连接状态或任何相关事件。

kubectl logs <mongodb-Pod-name>

我使用 stable/mongodb Helm 图表来部署 MongoDB,并发现了与您的类似的错误:

helm install --name mongodb stable/mongodb

警告不健康的38米库贝莱特, gke-helm-test-default-pool-efed557c-52tf 就绪探测失败: MongoDB shell 版本 v4.0.9 连接到: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb 2019-06-10T12:46:46.054+0000 E 查询 [js] 错误:无法连接 到服务器 127.0.0.1:27017,连接尝试失败:套接字异常: 连接到 127.0.0.1:27017 时出错 :: 导致 :: 连接被拒绝 : connect@src/mongo/shell/mongo.js:343:13 @(连接):2:6 异常: 连接失败

当我进行一些调整并将readinessProbe.initialDelaySeconds从 5 秒增加到 360 秒时,mongodb容器运行起来没有任何故障。

helm install --name mongodb stable/mongodb --set readinessProbe.initialDelaySeconds=360

最新更新