如何为worker pod定义k8s liveness探针和readness探针

Ruo*_*ang 5 kubernetes readinessprobe livenessprobe

我有一个 k8s 集群。我们的服务是基于队列的。我们的 Pod 订阅事件队列、获取事件并执行任务。那么对于这种服务,如何定义k8s的liveness探针和readiness探针呢?

wol*_*lmi 4

假设您的问题是因为处理工作线程正在消耗队列消息,它不会公开任何端口进行检查。

在这种情况下,您可以定义livenessProbe和自定义命令,接下来是文档readinessProbe中的示例:

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec
spec:
  containers:
  - name: liveness
    image: k8s.gcr.io/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
    readinessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
Run Code Online (Sandbox Code Playgroud)

另外,请记住您的进程启动并准备好调整initialDelaySeconds并且periodSeconds在完全加载之前不杀死 Pod 所需的时间。