[英]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。
initialDelaySeconds
字段告诉 kubelet 在执行第一次探测之前应该等待 20 秒。 所以这通常配置为容器/pod 启动所需的值/时间。
配置initialDelaySeconds: 20
,值为 20 秒。
K8 引擎将响应代码 200-399 视为成功探测。 在您的情况下,您可以为探针添加初始延迟秒数,以延迟 20 秒开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.