Kubernnetes pod健康检查:存活性探测&就绪性探测

为什么需要探针?


 如果没有探针,k8s无法知道应用是否还活着,只要pod还在运行,k8s则认为容器是健康的。但实际上,pod虽然运行了,但里面容器中的应用可能还没提供服务,那就需要做健康检查,健康检查就需要探针,常见的探针有如下几种:

(你创建了一个Pod,发现pod是running状态,而且处于ready状态,但是pod里面部署的容器想要访问的时候就还是访问不了,这是因为你的pod没有做健康检查,pod起来了,但是容器里面应用还没有就绪
  • httpGet:对容器的ip地址(指定的端口和路径)执行http get请求,如果探测器收到响应,并且响应码是2xx,则认为探测成功。如果服务器没有响应或者返回错误响,应码则说明探测失败,容器将重启。
  • tcpSocket : 探针与容器指定端口建立tcp连接,如果连接建立则探测成功,否则探测失败容器重启。
  • exec:在容器内执行任意命令,并检查命令退出状态码,如果状态码为0,则探测成功,否则探测失败容器重启

下面的例子就是健康检查失败了,需要重启

          readinessProbe:
            httpGet:
              path: /actuator/health
              port: 8080
            initialDelaySeconds: 30
            periodSeconds: 30
            failureThreshold: 6
            timeoutSeconds: 3

上面说的探针是用在哪的呢?


用在存活性探测和就绪性探测中的:

1.LivenessProbe(存活探测):
探测Pod里的容器是否启动成功, 如果Pod里的容器启动成功那Pod的状态就是Running
2.ReadinessProbe(就绪探测):
Pod是Running的前提下, 看Pod里容器部署的应用是否就绪,是否可以对外提供服务 ,如果应用
正常,可以接受客户端的请求,则READY是就绪的,如下:

LivenessProbe和ReadinessProbe区别:
  • LivenessProbe决定是否重启容器
  • ReadinessProbe主要来确定容器是否已经就绪: 只有当Pod里的容器部署的应用都处于就绪状态,也就是pod的Ready为true(1/1)时,才会将请求转发给容器。

 在存活性探测的时候要想要设置初始化延迟。

hhttpGettpGe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值