当在Kubernetes(k8s)中运行应用程序时,探针(Probes)是一种机制,用于监测应用程序的健康状态。Kubernetes支持三种类型的探针:存活探针(Liveness Probe)、就绪探针(Readiness Probe)和启动探针(Startup Probe)。下面是它们的使用方法:
存活探针(Liveness Probe):
Liveness Probe用于检测容器内部运行的进程是否存活。如果探针失败,Kubernetes将会重启容器。以下是探针的配置样例:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15
periodSeconds: 10
上述示例中,探针会每隔10秒向容器的/healthz
路径发起HTTP GET请求,端口为8080。如果初始延迟时间(initialDelaySeconds)为15秒,即容器启动后15秒开始检测存活状态。
就绪探针(Readiness Probe):
Readiness Probes用于确定容器是否已准备好接收请求流量。如果探针失败,Kubernetes将不会将流量传递给该容器。以下是探针的配置示例:
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
上述示例中,探针将每隔10秒检测容器的8080端口是否能够进行TCP连接。如果初始延迟时间(initialDelaySeconds)为5秒,即容器启动后5秒开始检测就绪状态。
启动探针(Startup Probe):
Startup Probe用于在容器启动时检测应用程序是否已成功启动。如果探针失败,Kubernetes将会重启容器。以下是探针的配置示例:
startupProbe:
httpGet:
path: /healthz
port: 8080
failureThreshold: 30
periodSeconds: 10
上述示例中,探针将每隔10秒向容器的/healthz
路径发起HTTP GET请求,端口为8080。如果在容器启动后的30秒内失败了多次(failureThreshold),则Kubernetes会重启容器。