4.6.4 存活性探测行为属性

使用 kubectl describe 命令查看配置了存活性探测的 Pod 对象的详细信息时,其相关容器中会输出类似如下的一行了内容。

Liveness:       http-get http://:http/healthz delay=0s timeout=1s period=10s #success=1 #failure=3

它给出了探测方式及其额外的配置属性 delay、timeout、period、success 和 failure 及其各自的相关属性值。用户没有明确定义这些属性字段时,它们会使用各自的默认值,例如上面显示出的设定。这些属性信息可通过 “spec.containers.livenessProbe” 的如下属性字段来给出。

  • initialDelaySeconds <integer>:存活性探测延迟时长,即容器启动多久之后再开始第一次探测操作,显示为 delay 属性;默认为 0 秒,即容器启动后立刻便开始进行探测。
  • timeoutSeconds <integer>:存活性探测的超时时长,显示为 timeout 属性,默认为 1s,最小值也为 1s。
  • periodSeconds <integer>:存活性探测的频度,显示为 period 属性,默认为 10s, 最小值为 1s;过高的频率会对 Pod 对象带来较大的额外开销,而过低的频率又会使得对错误的反映不及时。
  • successThreshold <integer>:处于失败状态时,探测操作至少连续多少次的成功才被认为是通过检测,显示为 #success 属性,默认值为1,最小值也为1。
  • failureThreshold <integer>:处于成功状态时,探测操作至少连续多少次的失败才被视为是检测不通过,显示为 #failure 属性,默认值为 3,最小值为1。

例如,这里可将 4.6.1 节中清单文件中定义的探测示例重新定义为如下所示的内容:

apiVersion: v1
kind: Pod
metadata:
  name: liveness-exec
  labels:
    test: liveness-exec
spec:
  containers:
  - name: liveness-exec-demo
    image: busybox
    args: ["/bin/sh", "-c", "touch /tmp/healthy; sleep 60; rm -rf /tmp/healthy; sleep 600"]
    livenessProbe:
      exec:
        command: ["test", "-e", "/tmp/healthy"]
      initialDelaySeconds: 5
      timeoutSeconds: 2
      periodSeconds: 5

根据修改的清单文件再次创建 Pod 对象并进行效果测试,可以从输出的详细信息中看出 liveness 已经更新到自定义的属性,其内容如下所示。具体过程这里不再给出,请感兴趣的读者自行测试:

Liveness:       exec [test -e /tmp/healthy] delay=5s timeout=2s period=5s #success=1 #failure=3

results matching ""

    No results matching ""