上一篇
场景引入:
凌晨3点,你正睡得香甜,突然手机狂震——监控报警显示生产环境的某个Pod卡死了!😱 作为K8s老司机,你一个鲤鱼打挺坐起来,抄起电脑就要重启Pod,但等等...你知道几种重启方式?哪种最优雅?别急,这篇指南就是你的"深夜救急手册"!
kubectl delete pod <pod-name> -n <namespace>
适用场景:当Pod无状态且由Deployment/StatefulSet管理时
原理:删除后控制器会自动重建新Pod
注意:如果是裸Pod(无控制器),删除就真没了!💀
kubectl rollout restart deployment/<deploy-name> -n <namespace>
优势:
--record
记录变更原因 kubectl rollout restart deployment/nginx --record="修复内存泄漏问题"
kubectl annotate pod <pod-name> kubectl.kubernetes.io/restartedAt="$(date +%Y%m%d%H%M%S)" -n <namespace> --overwrite
适用场景:
kubectl scale deployment <deploy-name> --replicas=0 -n <namespace> && \ sleep 5 && \ kubectl scale deployment <deploy-name> --replicas=1 -n <namespace>
适用场景:
kubectl set env deployment/<deploy-name> LAST_RESTART="$(date)" -n <namespace>
原理:环境变量变更会触发Pod重建
彩蛋:适合需要传递重启时间的场景 🕰️
# 先隔离节点 kubectl cordon <node-name> # 驱逐所有Pod kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
适用场景:
场景 | 推荐方法 | 优雅度 |
---|---|---|
单Pod紧急重启 | 方法1直接删除 | |
生产环境Deployment | 方法2滚动重启 | |
需要记录重启原因 | 方法3注解修改 | |
批量Pod重启 | 方法6节点驱逐 |
避坑指南:
maxSurge/maxUnavailable
参数设置 (本文操作验证于2025年8月,适用于Kubernetes v1.28+版本)
下次再遇到Pod抽风,掏出这篇指南,你就是最淡定的那个SRE!😎
本文由 完丹亦 于2025-08-06发表在【云服务器提供商】,文中图片由(完丹亦)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/553869.html
发表评论