k8s使用存活(liveness)和就绪(readiness)探针的场景
原创 zhuhb 运维笔谈 2024-04-22 14:13 上海 听全文存活探针(liveness)主要用于检测容器是否仍然运行正常。如果存活探针检测到容器已经停止运行或者陷入死锁状态,Kubernetes会根据配置的重启策略来决定是否重启该容器。这样的机制有助于确保应用程序始终保持在运行状态,即使在遇到问题时也能自动恢复。
就绪探针(readiness)则用于判断容器是否已经准备好接收流量。在容器刚刚启动时,可能需要一段时间来完成初始化操作,如加载配置、建立数据库连接等。在这段时间内,容器可能还没有准备好处理请求。通过配置就绪探针,Kubernetes可以等待容器完成初始化并变得可用后,才将其纳入服务的负载均衡中。这样,只有当容器真正准备好时,才会开始接收请求,从而避免了因容器未就绪而导致的服务中断或错误。
-
如果容器中的进程能够在遇到问题或不健康的情况下自行崩溃,则不一定需要存活探针(liveness); kubelet 将根据 Pod 的restartPolicy 自动执行正确的操作。
2.如果希望容器在探测失败时被杀死并重新启动,需要指定一个存活探针(liveness),并指定restartPolicy 为 Always 或 OnFailure。
3.如果要仅在探测成功时才开始向 Pod 发送流量,请指定就绪探针(readiness)。在这种情况下,就绪探针可能与存活探针相同,但是 spec 中的就绪探针的存在意味着 Pod 将在没有接收到任何流量的情况下启动,并且只有在探针探测成功后才开始接收流量,这点在高并发场景下非常有用。
4.如果希望容器能够自行维护,可以指定一个就绪探针(readiness),该探针检查与存活探针不同的端点。
5.如果只想在 Pod 被删除时能够排除请求,则不一定需要使用就绪探针;在删除 Pod 时,Pod 会自动将自身置于未完成状态,无论就绪探针是否存在。当等待 Pod 中的容器停止时,Pod 是处于未完成状态。
“运维笔谈”公众号,对话回复 “阿里云k8s” 可以获取 “阿里云Kubernetes项目实战手册”
Kubernetes47 Kubernetes · 目录 上一篇Harbor的镜像保留规则简介下一篇部署kubernetes防火墙需要开启的端口号 阅读 164 喜欢此内容的人还喜欢 K8s Node主机根分区磁盘使用占用过多原因探究 我看过的号 运维笔谈 不看的原因如果您在日常运维工作中遇到了任何问题或挑战,无论是关于系统配置、性能优化、故障排除还是其他方面,都欢迎您随时留言或私信我。我会尽我所能为您提供解决方案或建议。相互学习,积累更多的经验和知识,让工作更加顺畅高效!
- 内容低质
- 不看此公众号内容
- 内容低质
- 不看此公众号内容
- 内容低质
- 不看此公众号内容
人划线
标签:readiness,就绪,容器,liveness,探针,存活,Pod,k8s From: https://www.cnblogs.com/cheyunhua/p/18153912