k8s之探针

探针介绍:

编排工具运行时,虽说pod挂掉会在控制器的调度下会重启,出现pod重启的时候,但是pod状态是running,无法真实的反应当时pod健康状态,我们可以通过Kubernetes的探针监控到pod的实时状态。

Kubernetes三种探针类型

启动探针(Startup Probe):判断容器内的应用是否启动完成(在启动探针判断成功前,就绪探针和存活探针将不会执行)

就绪探针(Readiness Probe):判断容器是否已经就绪,容器将会处于未就绪的容器,不会进行流量的调度

存活探针(Liveness Probe):判断容器内的应用程序是否正常,若不正常,K8s将会重新重新容器

配置项

initialDelaySeconds:等待我们定义的时间,结束后便开始探针检查

periodSeconds:探针的 间隔时间

timeoutSeconds:探针的超时时间,当超过我们定义的时间后,便会被视为失败

successThreshold:探针的最小连续成功数量

failure Threshould:探针的 最小连续失败数量

三种探测容器的机制

1.HTTPGET探针对容器的IP地址(你知道的端口和路径)执行HTTP GET请求

如果探测器收到响应,并且响应状态码不代表错误(换句话说,如果HTTP响应状态码是2xx或3xx),则认为探测成功

如果服务器返回错误响应状态码或者没有响应,那么探测就被认为是失败的,容器将被重新启动。

2.TCP套接字探针尝试与容器指定端口建立TCP连接。如果连接成功建立,则探测成功。否则,容器重新启动

3.Exec探针在容器内执行任意命令,并检查命令的退出状态码,如果状态码是0,则探测成功。所有其他状态码都认为失败

启动探针startupProbe

探针是针对Pod的,所有只需要在Pod上,template.pec处配置。这里测试使用ReplicaSet来测试

就绪探针readiness probe

启动容器时,可以为看s配置一个等待时间,经过等待时间后才可以执行第一准备就绪检查。之后,它会周期性的调用探针,并根据就绪探针的结果采取行动。如果某个Pod报告它尚未准备就绪,则会从该服务中删除该Pod。如果Pod再次准备就绪,则重新添加Pod

与存活探针不同,如果容器未通过准备检查,则不会被终止或重新启动。这是存活探针和就绪探针确保只有准备号处理请求的Pod才可以接收请求。

如果一个容器的就绪探测失败,则将该pod从endpoints中移除

查看未就绪的pod

kubectl describe pod readiness-gw6cf

可以看到,容器其实是在运行的,只是探针一直未就绪而已,就绪探针不会杀死容器(和存活探针的区别):curl直接访问PodIP也是可以正常接收请求的

存活探针livenessProbe

curl进行ip端口校验

修改httpgetport参数值为81,模拟存活探针失败,探针失败,会让pod进行重启

相关推荐
Ankie Wan2 小时前
cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。
linux·容器·cgroup·lxc
lcx_defender4 小时前
【Docker】Docker部署运行nacos
运维·docker·容器
啦啦啦小石头4 小时前
docker添加用户权限不使用sudo
运维·docker·容器
天才奇男子5 小时前
《深度解析HAProxy七层代理:原理、配置与最佳实践》
linux·运维·微服务·云原生
春日见5 小时前
Autoware使用教程
大数据·人工智能·深度学习·elasticsearch·搜索引擎·docker·容器
Dontla6 小时前
Kubernetes流量管理双雄:Ingress与Gateway API解析(Nginx与Ingress与Gateway API的关系)
nginx·kubernetes·gateway
lcx_defender6 小时前
【Docker】Docker部署运行Kibana
运维·docker·容器
七夜zippoe6 小时前
Kubernetes与Python微服务编排实战:从基础部署到自动扩缩容
python·微服务·kubernetes·service·hpa
ℳ₯㎕ddzོꦿ࿐6 小时前
实战:构建基于 Docker-Compose 的HLS (m3u8) 实时转 FLV,基于 ZLMediaKit 的低延迟方案
运维·docker·容器
EasyNVR7 小时前
EasyNVR使用Docker部署升级的技术分享
docker·容器