云原生应用健康检查与生命周期管理
1. 健康检查模式概述
云原生应用要实现完全自动化,必须具备高度可观测性,以便 Kubernetes 检测应用是否正常运行以及是否准备好处理请求。这些观测结果会影响 Pod 的生命周期管理和流量路由方式。
2. 健康检查问题分析
Kubernetes 会定期检查容器进程状态,若发现问题则重启进程。但仅检查进程状态不足以判断应用的健康状况,例如应用可能出现死锁、内存溢出等问题,而进程仍在运行。因此,Kubernetes 需要一种可靠的方法来检查应用的健康状况。
3. 健康检查解决方案
- 进程健康检查 :Kubelet 会持续对容器进程进行最简单的健康检查,若容器进程未运行,则重新启动探测。即便没有其他健康检查,此通用检查也能让应用更健壮。若应用能检测到任何类型的故障并自行关闭,进程健康检查就足够了,但多数情况下还需要其他类型的健康检查。
- 存活探针(Liveness Probes) :当应用出现死锁等问题时,从进程健康检查的角度看,应用仍被视为健康的。为检测此类问题及其他根据应用业务逻辑定义的故障,Kubernetes 提供了存活探针,由 Kubelet 代理定期检查,要求容器确认自身仍处于健康状态。存活探针的检查方法有以下几种:
- HTTP 探针 :向容器 IP 地址发送 HTTP GET 请求,期望得到 200 - 399 之间的成功 HTTP 响应代码。
- TCP 套接字探针
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



