Kubernets 的 pod 健康检查

目录

1 概念

2 应用场景

2.1 liveness

2.2 readiness

3 探测方式

3.1 三种探测方式

4 Prob详细参数

5 二者区别


1 概念

livenessProbe存活探针用来确定何时重启容器,readinessProbe就绪探针用来确定容器是否已经就绪可以接受流量。

2 应用场景

2.1 liveness

当pod容器进入不正常状态,需要我们将容器内的进程杀死,重启整个pod,使pod恢复至最初状态。可以通过 kubernets 的 livenessProbe配置,为pod内的容器指定一个区分是否需要重启容器的条件或范围,这个条件的瞬时值可以通过在容器内执行命令获取,然后在连续的有限次不满足这个条件时,liveness 探测失败,kubelet 自动将容器重启。

2.2 readiness

当pod容器处于就绪状态时,kubelet 才认为该pod可以作为service的 endpoint 接受流量(即:加入到 service 的 endpoint 列表里),如果不是就绪状态,kubelet 就会从service 的 endpoint 列表中剔除,从而保证外部请求不会被转发到该pod上。

3 探测方式

二者支持的探测方式相同

主要的探测方式有 3 种

exec执行命令探测 在容器内部执行命令

httpGet探测 访问容器的http服务,可以指定 http header

tcpSocket探测 访问容器的TCP端口

3.1 三种探测方式

  • http探测

通过 kubectl 请求容器指定的url,且必须是GET请求。通过response的状态码,来判断是否探测成功,200 - 400(不含)之间时,也就是 2xx 或 3xx 都认为是探测成功。

  • tcp探测

探测指定的端口,如果可以连接,就认为探测成功。类似于 telenet 命令

  • exec指令命令探测

在容器内部执行命令,如果命令的退出码为0,认为探测成功

4 Prob详细参数

livenessProbe:
  failureThreshold: 6  [探测成功后,最少连续探测失败多少次,才被认定为失败,默认值3]
  httpGet:  [探测方式 http]
    host: xxx  [不建议配置,链接的主机名,默认链接到pod的IP]
    path: /actuator/health  [请求的url]
    port: 8080  [请求的端口]
    scheme: HTTP  [链接使用的scheme,默认值HTTP]
  initialDelaySeconds: 360  [容器启动后第一次执行探测需要等待多长时间,单位秒]
  periodSeconds: 20  [执行探测的频率,单位秒,即每隔多长时间执行一次探测]
  successThreshold: 1  [探测失败后,最少连续探测成功多少次,才被认定为成功,默认值1]
  timeoutSeconds: 3  [探测超时时间,单位秒,默认值1]

5 二者区别

liveness初始值为成功,防止还没有成功启动前,就被误杀。在规定时间内还未成功启动,将其设置为失败,从而触发容器重建。

readiness初始值为失败,防止还没有成功启动前就将流量导入。在规定时间内启动成功,将其设置为成功,从而将流量向应用导入。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值