【问题标题】:livenessprobe exec check probe for mongodb is killing pod under k8s 1.2.4mongodb 的 livenessprobe exec check probe 正在杀死 k8s 1.2.4 下的 pod
【发布时间】:2016-10-27 09:24:55
【问题描述】:

我正在尝试在 K8s 下运行的 pod 上实现 livenessProbes。 只有非常简单的探针在工作,参见示例:

    livenessProbe:
      exec:
        command:
        - cat
        - /etc/services
      initialDelaySeconds: 45
      timeoutSeconds: 5

我需要执行的探测是每 50 秒杀死一次 pod。

    livenessProbe:
      exec:
        command:
          mongo --port 27018 --eval "rs.status()"  | grep  "REMOVED" ; test $? -eq 1
      initialDelaySeconds: 45
      timeoutSeconds: 5

当探测未实现并且命令在 pod 内运行时,如果找到 REMOVED 字符串,则返回 1,如果未找到,则返回 0。

[root@eas-mongo-rs-3-ui81p /]# mongo --port 27018 --eval "rs.status()" | grep "已移除" ;测试$? -eq 1

问题是,如何实现Container Exec Check这样的命令。

问候

【问题讨论】:

    标签: mongodb kubernetes-health-check


    【解决方案1】:

    你的命令会被引用,不会像你想的那样运行,如果你想使用管道和其他更高级的 shell 功能,你可以使用/bin/sh,这个解决方法你也可以在官方文档中看到。

    所以你的探测看起来像这样:

     livenessProbe:
      exec:
        command:
          - /bin/sh
          - -c
          - mongo --port 27018 --eval "rs.status()" | grep -vq "REMOVED"
      initialDelaySeconds: 45
      timeoutSeconds: 5
    

    您还可以使用 -v 切换到 grep 以避免使用额外的 test 命令反转状态。

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 2021-02-18
      • 2016-06-12
      • 1970-01-01
      • 2022-08-08
      相关资源
      最近更新 更多