前言:在 Kubernetes (k8s) 中,没有直接的命令如 kubectl restart pod 来重启 Pod,因为 Pod 的生命周期由控制器(如 Deployments、StatefulSets 或 ReplicaSets)管理。重启操作本质上是通过删除并重建 Pod 来实现的,从而触发新 Pod 的创建。以下是 Kubernetes 重启 Pod 的常用方法,推荐优先采用优雅方式以减少服务中断风险:
一、推荐方法(优雅操作)
- 1. 使用 kubectl rollout restart(首选方法):
此命令适用于管理 Pod 的控制器(如 Deployments)。它会平滑重建 Pod,模仿滚动更新过程,逐步替换旧 Pod,确保服务可用性。命令格式:
- kubectl rollout restart deployment/<deployment-name> -n <namespace>
- 优势:最小化服务中断,适合生产环境。例如,修改 ConfigMap 或 Secret 后执行此命令,可触发 Pod 重建以加载新配置。
- 2. 针对 StatefulSets 或 DaemonSets 的优雅重启:
类似 rollout restart,但需指定控制器类型:
- kubectl rollout restart statefulset/<name> -n <namespace> # 用于 StatefulSets