kubectl批量重启deployment中容器
在 Kubernetes 中,如果你想批量重启多个 Deployment 的容器,可以通过多种方式实现(比如 kubectl rollout restart、patch、或者循环脚本)。

方法一:推荐方式 — 使用 rollout restart
Kubernetes 1.15+ 提供的命令,最直接、安全。
1.1批量重启某个命名空间下所有 Deployment
1 | kubectl rollout restart deployment -n <namespace> |
1.2重启所有命名空间下所有 Deployment
1 | for ns in $(kubectl get ns --no-headers | awk '{print $1}'); do |
1.3仅重启名称匹配的 Deployment(例如带 “api” 的)
1 | kubectl get deploy -A | grep api | awk '{print $1, $2}' | while read ns name; do |
法二:使用 kubectl patch 手动触发滚动更新
如果你的集群较老(<1.15),或者想精确控制触发条件,可通过修改 spec.template.metadata.annotations 来“刷新” Pod。
1 | kubectl patch deployment <deploy-name> -n <namespace> \ |
批量执行
1 | for d in $(kubectl get deploy -n <namespace> -o name); do |
方法三:重启选定命名空间中所有容器(无差别重启)
适用于你想“一键重启整个业务环境”的情况:
1 | for ns in backend frontend core; do |
查看滚动重启状态
重启后可以监控滚动过程:
1 | kubectl rollout status deployment/<deploy-name> -n <namespace> |
或批量监控:
1 | kubectl get deploy -A | grep -v NAME | while read ns name rest; do |