K8s的探针
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8s的探针相关的知识,希望对你有一定的参考价值。
参考技术A 探针是由kubelet对容器执行的定期诊断,要执行诊断,kubelet调用容器实现的Handler。说句废话,pod的探针肯定不能给init容器执行探针,init容器执行之后就退出了,就算执行探针也是失败的。
ExecAction:在容器内执行指定命令。如果命令退出时返回码是0,则认为是诊断成功。
TCPSocketAction:对指定端口上的容器的IP地址进行TCP检查。如果端口打开,则诊断被认为是成功的。
HTTPGetAction:对指定的端口和路径上的容器的IP地址执行HIIP Get请求,如果响应的状态码大于等于200小于400,则诊断是成功的。
每次探测都将获得以下三种结果之一:
成功:容器通过诊断;
失败:容器未通过诊断;
未知:诊断失败,因此不会采取任何操作。
LivenessProbe:存活探针,指示容器是否正在运行,运行于整个pod的运行周期,直至pod被杀掉。如果存活探针探测失败,则kubelet会杀死容器,并且容器将受到器重启策略(restartPolicy)的影响,一般设置为Always,如果容器被杀掉,pod就会被一直重启。如果容器不提供存活探针,则默认状态为Success。
ReadinessProbe:指示容器是否准备好服务请求。如果就绪探测失败,端点控制器架构从与pod匹配的所有的Service的端点中删除Pod的IP地址。初始延迟之前的就绪状态为Failure。如果pod不提供就绪探针,则被默认为SUCCESS。
挂起(Pending):pod已被k8s接受,但是有一个或者多个容器镜像尚未创建,等待时间包括调度pod的时间和通过网络下载镜像的时间。
运行中(Running):该pod已经绑定到了一个节点上,pod中所有的容器都被创建,至少有一个容器正在运行,或者处于启动或重启状态。
成功(Succeed):pod中所有的容器都被成功终止,并且不再被重启。一般是Job、CronJob
失败(Failed):pod中至少有一个容器是因为失败终止,即容器是以非0状态退出或者被系统终止。
未知(Unknown):因为某些原因无法获取pod的状态,通常是因为与pod所在主机通信失败。
以上是关于K8s的探针的主要内容,如果未能解决你的问题,请参考以下文章