此文为学习《Kubernetes权威指南》的相关笔记
学习笔记:
Kubernetes提供了两类探针(probe)作为健康和服务可用性检查的解决方案,允许使用者在Pod定义时指定检查方式和检查位置,使得K8s对于容器的管理不局限于通过容器init进程判断容器的健康程度,而是能够通过预先定义方式,根据容器类型、结构和功能的不同做不同检查,更准确地判断容器真正的状态,具有较强的灵活性。
这两类探针分别为:
- LivenessProbe探针,用于判断容器的存活状态(是否Runing),在判断为不健康时,kubelet将杀掉容器,根据容器的重启策略(RestartPolicy)作出不同的处理,如果不包含该探针,默认其返回值恒为Success
- ReadinessProbe探针,用于判断容器是否可用(是否Ready),只有Ready状态的Pod才能够接受请求,和LivenessProbe探针判断为false不同,服务可用探针判断为false后只将Pod从Service的可使用列表中移除,并不是直接杀死,因为可能还会存在恢复为Ready状态的情况,再回到Endpoint列表中。
两种探针均可以以下方式实现:
- ExecAction:通过执行命令的返回值做出判断
- TCPSocketAction:通过容器IP地址和端口号执行TCP检查,做出判断
- HTTPGetAction:通过HTTP Get方法检查,IP地址+端口号+路径,响应状态码200-400之