如何强制重启 Kubernetes 部署中的所有 Pod
与 systemd 或 pm2 等经典部署管理器不同,Kubernetes 不提供简单的重启我的应用程序命令。
但是有一个简单的解决方法:如果你更改配置中的任何内容,即使是没有任何影响的无害内容,Kubernetes 都会重启你的 pod。
如果你正在更新应该有最少停机时间的生产应用程序,请考虑在执行此操作之前配置滚动更新策略。
在此示例中,我们假设你有一个要更新的 StatefulSet,它名为 elasticsearch-elasticsearch。请确保在此处填写你的部署的实际名称。
kubectl-patch-annotation.sh
kubectl patch statefulset/elasticsearch-elasticsearch -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"dummy-date\":\"`date +'%s'`\"}}}}}"这只会设置一个没有任何影响的 dummy-date 注解。
你可以通过以下方式监控更新
kubectl-rollout-status.sh
kubectl rollout status statefulset/elasticsearch-elasticsearch原始解决方案想法归功于 GitHub 上的 pstadler。
Check out similar posts by category:
Cloud, Kubernetes
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow