kubernetes - 如何定义 liveness 命令

标签 kubernetes kubernetes-health-check

下面的 livenessProbe(从 an example 中提取)运行良好。

livenessProbe:
  exec:
    command:
    - cat
    - /tmp/healthy

但是,我的 livenessProbe 不起作用。(pod 不断重新启动)。
YAML在下面
apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness-test
  name: liveness
spec:
  containers:
  - name: liveness
    args:
    - /bin/bash
    - -c
    - /home/my_home/run_myprogram.sh; sleep 20
    image: liveness:v0.6
    securityContext:
      privileged: true
    livenessProbe:
      exec:
        command:
        - /home/my_home/check.sh
      initialDelaySeconds: 10
      periodSeconds: 5

/home/my_home/check.sh(在运行的进程数为1或0时重启pod)在下面,这是预先测试过的。
#!/bin/sh
if [ $(ps -ef | grep -v grep | grep my-program | wc -l) -lt 2 ]; then
  exit 1
else
  exit 0
fi

最佳答案

此问题与Golang Command API有关.
我改变了 livenessProbe 如下

livenessProbe:
  exec:
    command:
    - /bin/sh
    - -c
    - /home/test/check.sh

关于kubernetes - 如何定义 liveness 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647825/

相关文章:

kubernetes - 使用 crio 且 selinux 打开时 coredns 无法启动

kubernetes - CrashLoopBackOff 时如何自动停止滚动更新?

kubernetes - Kubernetes 中的 RBAC 错误

kubernetes - GKE 中的 exec 探测

go - 我应该如何在 Kubernetes 中检查我的 go 服务的健康状况?

azure - aks 报告 "Insufficient pods"

kubernetes - 无法访问 RPI 上运行的 K8 集群中的 NGINX nodePort 服务

kubernetes - 为什么cgroup中的容器内存限制不准确

kubernetes - 如何使用 token 创建 Kubernetes ServiceAccount?

kubernetes - 从 Google Cloud Endpoints 中排除路径