本文参照官网相关内容,根据提出的以下疑问来学习介绍Pod的存活探针和准备探针。
问题1:为什么要配置探针,这两个探针有什么区别。
问题2:如何配置探针,配置探针后,pod有什么状态变化。
定义:探针Probe描述了对容器执行的运行状况检查,以确定它是否处于活动状态或已准备好接收流量。
问题1:在pod内为容器配置活动性探针和就绪性探针。主要是使kubelet使用liveness探针知道什么时候重新启动容器。例如:活动性探针可以捕获死锁,当应用程序正在运行,发生死锁,程序无法进行下去。在这种状态下可以通过重新启动容器使得应用程序更容易使用。kubelet使用readyness探测器来了解容器何时准备开始接受流量。当所有容器都准备就绪时,Pod被认为已准备就绪。此信号的一个用途是控制哪些Pod用作服务的后端。当Pod未就绪时,它将从服务负载平衡器中删除。
在了解了容器存活性探针和就绪探针的基本概念和区别后,我们简单介绍一下K8S是如何让探针起作用的
1)probe探针是通过周期性地诊断kubelet上的容器。为了实现探测,kubelet调用容器实现的处理程序(Handler)。处理程序有三种类型:
-
ExecAction:在Container内执行指定的命令。如果命令以状态代码0退出,则认为诊断成功。(shell不起作用)
-
TCPSocketAction:对指定端口上的Container的IP地址执行TCP检查。如果端口打开,则诊断被认为是成功的。
-
HTTPGetAction:对指定端口和路径上的Container的IP地址执行HTTP Get请求。如果响应的状态代码大于或等于200且小于400,则认为诊断成功。