K8S之liveness和readness探针的区别
探针是由 kubelet 对容器执行的定期诊断。要执行诊断,kubelet 调用由容器实现的 Handler。有三种类型的处理程序:
- Ø ExecAction:在容器内执行指定命令。如果命令退出时返回码为 0 则认为诊断成功。
- Ø TCPSocketAction:对指定端口上的容器的 IP 地址进行 TCP 检查。如果端口打开,则诊断被认为是成功的。
- Ø HTTPGetAction:对指定的端口和路径上的容器的 IP 地址执行 HTTP Get 请求。如果响应的状态码大于等于200 且小于 400,则诊断被认为是成功的
Liveness和Readness:
liveness:探针的作用是判断pod是否运行,如果探针检测失败,则kubelet会杀死容器,并且受到pod里定义的重启策略影响,如果重启策略为Alway那么就会重启;
如果不配置liveness探针,那么比如CPU跑满导致服务无响应的时候,pod是不会重新部署的
readness:探针的作用是判断Pod是否准备就绪 接收流量,如果检测通过会接收流量,如果不通过就不会接收流量