You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes中基于选择器对Deployment执行滚动更新?

基于选择器对命名空间内的Deployment执行滚动更新的方法

方法1:触发滚动重启

如果只是需要让符合条件的Deployment重启容器(比如刷新配置),直接用rollout restart结合标签选择器:

  • 命令格式:kubectl rollout restart deployment -n <命名空间名> -l <标签选择器>
  • 示例:更新prod命名空间下所有带app=backend标签的Deployment:
    kubectl rollout restart deployment -n prod -l app=backend

方法2:更新镜像触发滚动更新

要更新容器镜像版本并触发滚动更新,用set image批量操作:

  • 命令格式:kubectl set image deployment -n <命名空间名> -l <标签选择器> <容器名>=<新镜像>
  • 示例:把test命名空间内所有env=dev的Deployment中app-container容器的镜像换成my-app:v1.2.0:
    kubectl set image deployment -n test -l env=dev app-container=my-app:v1.2.0

方法3:修改配置触发滚动更新

如果要调整Deployment的其他配置(比如资源限制、环境变量)并触发更新,用patch命令:

  • 命令格式:kubectl patch deployment -n <命名空间名> -l <标签选择器> -p '<JSON/YAML格式的配置>'
  • 示例:给staging命名空间下所有service=payment的Deployment添加环境变量ENV=staging:
    kubectl patch deployment -n staging -l service=payment -p '{"spec":{"template":{"spec":{"containers":[{"name":"payment-service","env":[{"name":"ENV","value":"staging"}]}]}}}}'

验证更新状态

执行更新后,可通过以下命令查看进度和历史:

  • 查看更新实时状态:kubectl rollout status deployment -n <命名空间名> -l <标签选择器>
  • 查看更新历史记录:kubectl rollout history deployment -n <命名空间名> -l <标签选择器>

内容的提问来源于stack exchange,提问作者Abraham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 06:54:34