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进行重启

相关推荐
慌糖8 小时前
微服务介绍
微服务·云原生·架构
高山莫衣13 小时前
Docker Desktop导致存储空间不足时的解决方案
docker·容器·eureka
鹏大师运维13 小时前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
Ahlson14 小时前
【fnNAS】docker的nginx配置html
nginx·docker·容器·fnnas
LuckyLay14 小时前
Compose 常用命令详解——AI教你学Docker
docker·容器·eureka
阿里云云原生14 小时前
阿里云可观测 2025 年 6 月产品动态
云原生
阿里云云原生14 小时前
30 秒锁定黑客攻击:SLS SQL 如何从海量乱序日志中“揪”出攻击源
云原生
moppol14 小时前
容器化 vs 虚拟机:什么时候该用 Docker?什么时候必须用 VM?
运维·docker·容器
没有名字的小羊14 小时前
7.可视化的docker界面——portainer
docker·容器·eureka
斯普信专业组16 小时前
K8s环境下基于Nginx WebDAV与TLS/SSL的文件上传下载部署指南
nginx·kubernetes·ssl