Linux:kubernetes(k8s)探针的简介(7)

相当于我们用于监控容器的一个东西,通过给我们的不同探针来判断容器内的状态情况,实现故障的一个自动恢复。

我们在上一章的yaml文件中写入了一个这个东西

那么他什么情况下重启,就是通过探针进行一个监控,加入监控某一个端口,发现停止工作了,那么就立即根据事先定义的重启策略进行一个重启,但是另外一个端口没有监控,即使他停止工作了,探针也不会去做任何事情,这就是LivenessProbe探针
还有一种情况就是,假如我们的一个服务在启动后需要有一系列的初始化操作非常耗时,在初始化期间我禁止别的用户来对我进行一个访问,就是让pod是一个没有完成启动的一个状态,当我的一系列初始完成后,再进行一个对外服务,也就是通过探针对服务的一个健康值进行一个检查,判断是否可以接收外部流量,这就是ReadinessProbe探针
前两个探针通过算秒的方式来确定是否应该执行操作,比如我等你10秒你启动http,如果没启动那我就把你重启,可是http要是就是第11秒启动,这样就造成了一个死循环,根据这个缺点kubenetes就在1.16版本后又新加了一个新探针名为:StartupProbe这个探针执行的时候其他探针都不能执行,也就是这个的权限是最高的,他用于对某个服务进行监控,假如你要监控这个服务就是初始化的最后一个,监控到他的时候就结束这个探针,让后其他的探针就开始操作


三种工作模式

  • ExecAction

    使用命令进行一个检查,比如对某个文件进行检查,如果他存在就是成功了,没存在就是失败了

  • TCPSocketAction

    通过 tcp 连接监测容器内端口是否开放,如果开放则证明该容器健康

  • HTTPGetAction

    对某个端口进行请求,进行一个判断

此外还有一些比较经典的配置参数

initialDelaySeconds: 60 # 初始化时间

timeoutSeconds: 2 # 超时时间

periodSeconds: 5 # 监测间隔时间

successThreshold: 1 # 检查 1 次成功就表示成功

failureThreshold: 2 # 监测失败 2 次就表示失败

相关推荐
人生匆匆8 分钟前
docker进入启动失败的容器
运维·docker·容器
退役小学生呀2 小时前
十、K8s集群资源合理化分配
linux·云原生·容器·kubernetes·k8s
yanjiaweiya3 小时前
云原生-集群管理
java·开发语言·云原生
yanjiaweiya5 小时前
云原生-集群管理续
java·开发语言·云原生
Johny_Zhao11 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
代码老y13 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
掘金-我是哪吒18 小时前
分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南
java·分布式·微服务·云原生·架构
阿里云云原生19 小时前
Serverless JManus: 企业生产级通用智能体运行时
云原生
Kookoos1 天前
ABP VNext + Tye:本地微服务编排与调试
微服务·云原生·架构·tye
掘金-我是哪吒1 天前
分布式微服务系统架构第157集:JavaPlus技术文档平台日更-Java多线程编程技巧
java·分布式·微服务·云原生·架构