kubernates学习笔记【8】:容器探针介绍,start,stop以及相位
一. 容器探针
1. 基本概念
探针是由kubelet对容器执行的定期诊断。要执行诊断,kubelet 调用由容器实现的Handler.有三种类型的处理程序:
(1)ExecAction:在容器内执行指定命令。如果命令退出时返回码为0则认为诊断成功。
(2)TCPSocketAction:对指定端口上的容器的IP地址进行TCP检查。如果端口打开, 则诊断被认为是成功的。
(3)HTTPGetActi on:对指定的端口和路径上的容器的IP地址执行HTTP Get请求。如果响应的状态码大于等于200且小于400,则诊断被认为是成功的
每次探测都将获得以下三种结果之:
(1)成功:容器通过了诊断。 (2)失败:容器未通过诊断。
(3)未知:诊断失败,因此不会采取任何行动
2. 探测方式
(1)livenessProbe:指示容器是否正在运行。如果存活探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响。如果容器不提供存活探针,则默认状态为Success
(2)readinessProbe:指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从与Pod 匹配的所有Service 的端点中删除该Pod的IP地址。初始延迟之前的就绪状态默认为Failure. 如果容器不提供就绪探针,则默认状态为Success
3. 探针实现模板
二. 启动和结束动作
顾名思义,也就是在容器启动和退出时执行的指令
模板:
三. 相位
这个标题高大上了,其实就是pod生命周期中的各种状态。
1. 挂起(Pending) : Pod已被KubernetesT系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度Pod的时间和通过网络下载镜像的时间,这可能需要花点时间
2. 运行中(Running) :该Pod已经绑定到了一个节点上,Pod中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态
3. 成功(Succeeded) : Pod中的所有容器都被成功终止,并且不会再重启
4. 失败(Failed) ; Pod中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止
5. 未知(Unknown):因为某些原因无法取得Pod的状态,通常是因为与Pod所在主机通信失败