kubernetes 配置示例 - 探针示例

以下为 Probe 示例

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: test-liveness-exec # pod 的名称。 kubectl get pod 中显示此名字
spec:
  containers:
  - name: liveness
    image: busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5

 exec 类型的 livenessProbe,意味着当容器启动后,它会在容器中执行一句我们指定的命令(比如: cat /tmp/healthy),如果这个文件存在,这条命令的返回值就是 0,Pod 就会认为这个容器不仅已经启动,而且是健康的。

periodSeconds 表示这个命令间隔多长时间执行一次。

可以看到,30 秒后,文件被删除,livenessProbe 会检测到这个 pod 不是健康状态,k8s 会重启一个 pod。可以通过 kubectl get pod 列出的 RESTARTS 的值看出来 pod 重启了。

注: Pod 的恢复过程永远发生在当前节点上。除非 pod.spec.node 被修改,否则它不会离开这个节点。如果想让 Pod 出现在其它节点上,可以使用 deployment。

posted @ 2021-12-31 14:57  一剑侵心  阅读(85)  评论(0编辑  收藏  举报