如何强制重启 Kubernetes 部署中的所有 Pod

systemdpm2 等经典部署管理器不同,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