Kubernetes (k8s) 具有自动重启 Pod 的功能,以确保应用程序始终处于运行状态。以下是 Kubernetes 自动重启 Pod 的几种情况:
- Liveness Probe 失败
当 Pod 中的容器出现故障时,Liveness Probe 将会失败并触发自动重启。Liveness Probe 是一个探针,用于检测容器是否在运行。如果 Liveness Probe 在一定时间内无法成功,则 Kubernetes 认为容器已经死亡,并自动重启该容器。
- Readiness Probe 失败
如果 Pod 中的容器不可用,Kubernetes 将不会将流量路由到该容器,并标记该 Pod 为 Not Ready 状态。如果容器长时间处于 Not Ready 状态,则 Kubernetes 将自动重启该容器,以确保应用程序始终能够正常运行。
- OOM Killer 终止容器
当系统内存不足时,Linux 内核可以通过 OOM Killer 杀死运行中的进程。如果 OOM Killer 杀死了 Pod 中的某个容器,则 Kubernetes 将自动重启该容器,以确保应用程序能够继续运行。
- Node 故障
如果运行 Pod 的节点发生故障,则 Kubernetes 将自动将 Pod 调度到其他可用节点上。在新节点上重新启动 Pod 时,Kubernetes 将自动重启 Pod 中的所有容器,以确保应用程序能够继续运行。
总的来说,Kubernetes 通过检测容器状态并自动重启 Pod,确保了应用程序始终处于可用状态。这可以提高应用程序的可靠性和稳定性,并减少了需要手动干预的机会。