Kubernetes中的探针是一种机制,用于检测应用程序的健康状况。探针可用于确保应用程序在运行期间始终处于预期状态,以及自动重启失败的容器,从而提高应用程序的可用性和可靠性。
Kubernetes中有三种类型的探针:存活性探针(Liveness Probe)、就绪性探针(Readiness Probe)和启动探针(Startup Probe)。
存活性探针
存活性探针用于检测容器是否存活。如果容器的存活性探针失败,则Kubernetes将重启该容器。存活性探针可以是以下类型之一:
- HTTP GET:Kubernetes向容器发送HTTP GET请求,并根据响应代码确定容器是否存活。
- TCP:Kubernetes尝试建立TCP连接,并根据连接是否成功确定容器是否存活。
- Exec:Kubernetes在容器中执行指定的命令,并根据返回的退出代码确定容器是否存活。
就绪性探针
就绪性探针用于确定容器是否已准备好接收流量。如果容器的就绪性探针失败,则Kubernetes将从服务的负载均衡池中删除该容器,直到探针再次成功。就绪性探针可以是以下类型之一:
- HTTP GET:Kubernetes向容器发送HTTP GET请求,并根据响应代码确定容器是否准备好接收流量。
- TCP:Kubernetes尝试建立TCP连接,并根据连接是否成功确定容器是否准备好接收流量。
- Exec:Kubernetes在容器中执行指定的命令,并根据返回的退出代码确定容器是否准备好接收流量。
启动探针
启动探针用于确定容器是否已经开始运行。如果容器的启动探针失败,则Kubernetes将重启该容器。启动探针可以是以下类型之一:
- HTTP GET:Kubernetes向容器发送HTTP GET请求,并根据响应代码确定容器是否已经开始运行。
- TCP:Kubernetes尝试建立TCP连接,并根据连接是否成功确定容器是否已经开始运行。
- Exec:Kubernetes在容器中执行指定的命令,并根据返回的退出代码确定容器是否已经开始运行。
探针的配置是通过PodSpec中的livenessProbe、readinessProbe和startupProbe字段来完成的。这些字段可用于指定探针类型、探针检测的端口、探针超时时间等参数。
使用探针可以帮助Kubernetes自动监测和修复容器中的问题,从而提高应用程序的可用性和可靠性。