Kubelet 运行机制分析 容器健康检查

容器健康检查


Pod 通过两类探针来检查容器的健康状态。一个是 LivenessProbe 探针,用于判断容器是否健康,告诉 kubelet 一个容器什么时候处于不健康的状态。如果 LivenessProbe 探针探测到容器不健康,则 kubelet 将删除该容器,并根据容器的重启策略做相应的处理。

如果一个容器不包含LivenessProbe 探针,那么 kubelet 认为该容器的 LivenessProbe 探针返回的值永远是“ Success ”。

另外一类是 ReadinessProbe 探针, 用于判断容器是否启动完成,且准备接收请求, 如果
ReadinessProbe 探针检测到失败,则 Pod 的状态将被修改, Endpoint Controller 将从 Service
Endpoint 中删除包含该容器所在 Pod 地址的 Endpoint 条目。
kubelet 定期调用容器中的 LivenessProbe 探针来诊断容器的健康状况 LivenessProbe 包含 以下三 种实现方式。
( 1) ExecAction :在容器内部执行 一个命令,如果该命令的退出状态码为0 ,则表明容器 健康
( 2) TCPSocketAction 通过容器的 IP 地址和端口号执行 TCP检查 ,如果端口能被访问 则表明容器健康。
( 3 ) HTTPGetAction :通过容器的 IP 地址和端口号及路径调用 HTTP Get 方 法,如果响应的状态码大于等于 200 且小于等于 400 ,则认为容器状态健康。

 

LivenessProbe 探针包含在 Pod 定义的 spec.containers {某个容器}中。下面的例子展示了两
种Pod 中容器健康检查的方式: HTTP 检查和容器命令执行检查。下面所列的内容实现了通过
容器命令执行检查:

kubelet 在容器中执行“cat /tmp/health ”命令,如果该命令返回的值为0 ,则表明容器处于健康状态,否则表明容器处于不健康状态。

下面所列的内容实现了容器的 HTTP 检查: 

kubelet 发送 HTTP 请求到本地主机和端口及指定的路径,来检查容器的健康状况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值