就绪探针(Readiness Probe)

Kubernetes的Readiness Probe用于确保Pod在接收请求前已完全就绪。它通过周期性检查Pod的准备状态,支持Exec、HTTP GET和TCP Socket三种类型。当Pod未就绪时,将其从Endpoints中移除,避免转发请求。当Pod就绪,如Exec命令成功、HTTP GET返回2xx/3xx或TCP连接成功,Pod将被标记为Ready并加入Endpoints。
摘要由CSDN通过智能技术生成

一个新Pod创建后,Service就能立即选择到它,并会把请求转发给Pod,那问题就来了,通常一个Pod启动是需要时间的,如果Pod还没准备好(可能需要时间来加载配置或数据,或者可能需要执行一个预热程序之类),这时把请求转给Pod的话,Pod也无法处理,造成请求失败。
Kubernetes解决这个问题的方法就是给Pod加一个业务就绪探针Readiness Probe,当检测到Pod就绪后才允许Service将请求转给Pod。
Readiness Probe同样是周期性的检测Pod,然后根据响应来判断Pod是否就绪,与存活探针(Liveness Probe)相同,就绪探针也支持如下三种类型。

  • Exec:Probe执行容器中的命令并检查命令退出的状态码,如果状态码为0则说明已经就绪。
  • HTTP GET:往容器的IP:Port发送HTTP GET请求,如果Probe收到2xx或3xx,说明已经就绪。
  • TCP Socket:尝试与容器建立TCP连接,如果能建立连接说明已经就绪。

Readiness Probe的工作原理

通过Endpoints就可以实现Readiness Probe的效果,当Pod还未就绪时,将Pod的IP:Port从Endpoints中删除,Pod就绪后再加入到Endpoints中,如下图所示。

图1 Readiness Probe的实现原理
在这里插入图片描述

Exec

Exec方式与HTTP GET方式一致,如下所示,这个探针执行ls /ready命令,如果这个文件存在,则返回0,说明Pod就绪了,否则返回其他状态码。

apiVersion: apps/v1
kind: Deployment
m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值