1. 直接删除 Pod
原理:删除 Pod 后,控制器(如 Deployment、StatefulSet)会自动创建新 Pod。
kubectl delete pod -n kubectl deploy pod nginx-f49c8d898-2jt8t -n prod
注意:可能导致短暂服务中断(若单副本,多副本不影响)。
2. 滚动重启
原理:通过更新策略逐步替换旧 Pod,确保服务可用性。
kubectl rollout restart deployment/ -n
注意:不适用于 DaemonSet(需其他方法)。
3. 调整副本数触发重建
原理:通过缩容到 0 再扩容,强制重建 Pod。
kubectl scale deployment/ --replicas=0 -n && kubectl scale deployment/ --replicas=2 -n
注意:服务会中断,生产环境慎用。
4. 编辑配置并应用
原理:修改 Pod 模板(如环境变量),触发更新。
kubectl edit deployment/ -n
修改后保存退出,K8s 自动应用
注意:任何模板字段变更都会触发滚动重启。
5. 容器内执行重启命令
原理:进入容器执行进程重启(需权限)。 命令:
kubectl exec -n -- /bin/sh -c "kill 1"
注意:依赖容器内 PID 1 进程处理信号,可能不生效。
6.五种方法对比
根据业务需求选择合适方法,生产环境优先使用滚动重启或配置更新以保证可用性。
关注李哥,添加微信,备注:工作岗位+地点,可拉进技术交流群。
加入我们,一起交流探讨运维技术吧!!!