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

Rit*_*gar 3 connection socketexception mongodb kubernetes

在 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
Run Code Online (Sandbox Code Playgroud)

Nic*_*_Kh 5

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

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

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

kubectl logs <mongodb-Pod-name>

我使用stable/mongodb Helm Chart 部署 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.0​​54 + 0000 E QUERY [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
Run Code Online (Sandbox Code Playgroud)