目录
前言:
探针(Probes)是 Kubernetes 提供的一种机制,用于实时检查容器的状态,以确保应用程序的健康运行。在实际生产中,探针可以帮助我们实现服务的高可用性和稳定性。本篇将深入探讨 Kubernetes 中的探针类型、探测方式以及参数配置,并提供实际示例。
一、什么是探针?
探针是一种 Kubernetes 对容器执行健康检查的方式。它通过定期向容器发送探测请求,判断容器是否处于可用状态,从而决定是否采取某些操作(如重启容器或从服务中移除容器)。
探针有以下几种类型:
1. Liveness Probe(存活探针):检查容器是否仍在运行。如果探针失败,Kubernetes 将重启该容器。
2. Readiness Probe(就绪探针):检查容器是否准备好接收流量。如果探针失败,Kubernetes 将从服务的端点列表中移除该容器。
3. Startup Probe(启动探针):检查容器的启动是否完成。启动探针主要用于启动时间较长的容器。
二、探测方式
Kubernetes 提供了三种主要的探测方式:
1. HTTP 探测 Kubernetes 向指定的 HTTP 端点发送请求,检查返回的 HTTP 状态码是否为 200-399。
2. TCP 探测 Kubernetes 尝试打开一个 TCP 连接。如果能成功建立连接,则认为探测成功。
3. 命令探测 Kubernetes 在容器内运行指定的命令。如果命令退出状态码为 0,则认为探测成功。
三、探针的参数
探针配置中包含以下常见参数:
initialDelaySeconds
:容器启动后第一次探测的延迟时间。periodSeconds
:探测之间的时间间隔。timeoutSeconds
:每次探测的超时时间。successThreshold
:探测成功的最小次数(适用于 Readiness 和 Startup Probes)。failureThreshold
:探测失败的最大次数,超出此次数后 Kubernetes 会执行相应操作(如重启容器)。
四、探针示例
1、编写示例
以下是一个示例,展示了如何为一个容器配置三种探针。根据以下内容编写一个probe-example.yaml文件
apiVersion: v1
kind: Pod