k8s-探针

发布时间 2023-10-11 13:51:21作者: 意犹未尽

在Kubernetes中,有三种类型的探针(Probes)用于检查容器的健康状况和确定是否应该将请求路由到容器。这些探针可以配置在 Pod 的规范中。

 

存活探针(Liveness Probe)

livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 15
  periodSeconds: 10

上述示例配置了一个 HTTP GET 请求的存活探针。它将在容器启动后等待 15 秒后开始执行,并且每 10 秒执行一次。探针会发送一个 HTTP GET 请求到容器的 /health 路径,并使用端口号 8080

就绪探针(Readiness Probe)

存活探针用于确定容器是否处于运行状态。如果存活探针失败(返回失败状态码或超时),Kubernetes会认为容器不健康,并会重启容器。这可以用于检测应用程序内部错误或死锁情况。

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 3

上述示例配置了一个 HTTP GET 请求的就绪探针。它将在容器启动后等待 5 秒后开始执行,并且每 3 秒执行一次。探针会发送一个 HTTP GET 请求到容器的 /ready 路径,并使用端口号 8080。

启动探针(Startup Probe)

启动探针用于确定容器是否已经启动并且准备好接受流量。与存活探针和就绪探针不同,启动探针在容器的初始启动阶段使用,并且仅会运行一次。启动探针成功后,就绪探针和存活探针才会启动。

startupProbe:
  exec:
    command:
    - cat
    - /tmp/initialized
  initialDelaySeconds: 10
  periodSeconds: 5
  failureThreshold: 30

上述示例配置了一个执行命令的启动探针。它将在容器启动后等待 10秒 后开始执行,并且每 5 秒执行一次。探针会执行命令 cat /tmp/initialized,如果命令成功执行,表示容器已经初始化完成