在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
答案 0 :(得分:1)
我观察到了同样的错误,一旦我在部署内部的Readiness探针规范中将initialDelaySeconds:
的值增加到一个更高的数字,问题就消失了,并且已经产生了mongodb
Pod没有错误。实际上,Docker需要花费一些时间来拉起docker.io/bitnami/mongodb
映像并初始化套接字mongodb
侦听器,因此Readiness探针指示在容器进程尚未准备好进行网络连接时出现问题。
readinessProbe:
exec:
command:
- mongo
- --eval
- db.adminCommand('ping')
failureThreshold: 6
initialDelaySeconds: 360
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
同时,您可以检查mongodb
窗格中的任何入站连接状态或任何相关事件。
kubectl logs <mongodb-Pod-name>
我使用了stable/mongodb Helm图表来部署MongoDB,并发现了与您类似的错误:
helm install --name mongodb stable/mongodb
警告不健康的38m kubelet, 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,连接尝试失败:SocketException: 连接到127.0.0.1:27017 ::的错误由::连接被拒绝引起 :connect@src/mongo/shell/mongo.js:343:13 @(connect):2:6例外: 连接失败
当我进行了一些调整并将readinessProbe.initialDelaySeconds
从5秒增加到360秒时,mongodb
容器运行起来没有任何故障。
helm install --name mongodb stable/mongodb --set readinessProbe.initialDelaySeconds=360