笔记摘自视频章节:第四章-p22
主题
讲述pod中的探针概念和作用
笔记
如果需要在pod运行时检查启动状态,init contiainer就无法满足需求了,这个时候可以使用探针
探针是由kubelet对容器执行的定期诊断。要执行诊断, kubelet调用由容器实现的Handler。有3种类型的处理程序:
- ExecAction: 在容器内执行指定命令。如果命令退出时返回码为0则认为诊断成功。
- TCPSocketAction: 对指定端口上的容器的IP地址进行TCP检查。如果端口打开,则诊断被认为是成功的。
- HTTPGetAction: 对指定的端口和路径上的容器的IP地址执行HTTP Get请求。如果响应的状态码大于等于200且小于400,则诊断被认为是成功的
每次探测都将获得以下三种结果之一:
- 成功:容器通过了诊断。
- 失败:容器未通过诊断。
- 未知:诊断失败,因此不会采取任何行动
探测方式
-
livenessProbe:指示容器是否正在运行。如果存活探测失败,则kubelet 会杀死容器,并且容器将受到其重启策略的影响。如果容器不提供存活探针,则默认状态为Success
-
readinessProbe:指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从 与Pod匹配的所有Service的端点中删除该Pod的IP地址。初始延迟之前的就绪状态默认为Failure.如果容器不提供就绪探针,则默认状态为Success