繁体   English   中英

Kubernetes 活性探针

[英]Kubernetes liveness probe

如何为我的 spring 启动应用程序编写 kubernetes 就绪探针,启动大约需要 20 秒? 我尝试按照Configure Liveness, Readiness and Startup Probes中的示例进行操作,但我不确定 Kubernetes 如何将状态码 200 确定为成功

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: backend
    name: liveness-http
spec:
  containers:
  - name: liveness
    image: k8s.gcr.io/liveness
    args:
    - /server
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
        httpHeaders:
        - name: Custom-Header
          value: Awesome
      initialDelaySeconds: 3
      periodSeconds: 3

Kubernetes kubelet 将在您的应用程序的/healthz路径发出 http 请求,并期望 http 状态码 200 从该端点成功返回,以进行探测。 因此,您需要在 rest controller 中有一个 rest 端点,它将从/healthz返回 200。 实现它的一种简单方法是包含 spring 引导执行器依赖项并将 liveness 探测路径更改为/actuator/health/liveness Spring 启动执行器默认带有一个 rest controller 端点,它从/actuator/health/liveness liveness 返回 200。

https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-kubernetes-probes

initialDelaySeconds字段告诉 kubelet 在执行第一次探测之前应该等待 20 秒。 所以这通常配置为容器/pod 启动所需的值/时间。

配置initialDelaySeconds: 20 ,值为 20 秒。

K8 引擎将响应代码 200-399 视为成功探测。 在您的情况下,您可以为探针添加初始延迟秒数,以延迟 20 秒开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM