在 Kubernetes 集群服务中启动了 POD 容器后,有几个需要关心的问题:
当我们要对某个Pod 进行隔离(请求不会转发到这个Pod),要如何设置。
这个 Pod 是否正常启动了,还是说启动失败。
当 pod 运行异常,需要删除掉此Pod 重新创建,需要如何操作?
一、Readiness 就绪状态探测
在 Deployment 中设置 Readiness 就绪探测用于确定容器是否已经就绪,且可以接受流量。
如果检测成功,此 Pod 为 Ready 状态,可以接受到请求消息。
如果检测失败,此 Pod 的 Endpoint 将被隔离,不能接受到请求。
二、Liveness 存活状态探测
在 Deployment 中设置 Liveness 存活探测用于检测何时重启容器。
如果检测成功,此 Pod 为 Running 状态,容器不会被杀掉。
如果检测失败,此 Pod 不健康,kubelet 会杀掉该容器,并根据重启策略做相应的处理。
三、三种实现方式
Readiness 和 Liveness 均可以使用这里的三种实现方式。
ExecAction : 在容器内部执行一个命令,如果改命令的返回码为0,则表明容器健康。
TCPSocketAction:通过容器的IP地址和端口号执行TCP检测,如果可以建立TCP连接,则表明容器健康。
HTTPGetAction:通过容器IP地址、端口号和访问路径使用HTTP GET方法测试,如果状态码大于等于200,小于400,