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

Helm升级时如何配置values.yaml忽略指定Pod组件更新

Helm升级时指定Pod不更新、不存在则新建的配置方案

Helm原生没有仅通过values配置直接跳过指定资源升级的内置能力,需要先对Chart模板做轻量适配,再配合values配置实现需求,具体操作如下:

1. Chart模板侧适配(必做)

找到abc.tgz解压后c-pod对应的工作负载模板文件(通常路径为templates/c-pod/deployment.yaml,若为StatefulSet/Pod则调整对应apiVersion和kind即可),替换原有模板内容为带存在性判断的逻辑:

{{/* 查询当前命名空间下是否已存在c-pod对应工作负载 */}}
{{- $existingCPod := lookup "apps/v1" "Deployment" .Release.Namespace "c-pod" }}
{{- if $existingCPod }}
{{/* 资源已存在时,直接返回集群现有配置,保证渲染结果和集群状态无差异,不会触发更新 */}}
{{ toYaml $existingCPod }}
{{- else }}
{{/* 资源不存在时,使用Chart原有配置渲染,触发新建逻辑 */}}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: c-pod
  namespace: {{ .Release.Namespace }}
  labels:
    app: c-pod
spec:
  replicas: {{ .Values.cPod.replicas | default 1 }}
  selector:
    matchLabels:
      app: c-pod
  template:
    metadata:
      labels:
        app: c-pod
    spec:
      containers:
      - name: c-pod
        image: {{ .Values.cPod.image | default "registry.example.com/c:v1.0.0" }}
        # 保留原有c-pod的所有其他配置(端口、挂载、资源限制等)
{{- end }}

说明:lookup是Helm内置模板函数,可在渲染阶段查询集群实时资源状态;当资源已存在时直接输出集群现有配置,Helm三向对比(历史版本配置、新版本渲染结果、集群实时状态)不会检测到差异,就不会触发c-pod的更新操作。

2. new_values.yaml配置

模板适配完成后,new_values.yaml中正常填写a-pod、b-pod的新版本配置即可,c-pod的配置段可留空或保留默认值,不会覆盖已存在的c-pod实例,示例配置:

# a-pod 新版本配置,升级时正常生效
aPod:
  image: registry.example.com/a:v2.1.0
  replicas: 2
  resources:
    limits:
      cpu: "2"
      memory: 4Gi

# b-pod 新版本配置,升级时正常生效
bPod:
  image: registry.example.com/b:v2.1.0
  replicas: 3
  config:
    env: prod
    logLevel: info

# c-pod 配置可保留默认值,已存在实例不会被变更
cPod: {}

注意事项

  • 若使用的是第三方公共Chart、无Chart模板修改权限,仅靠values配置无法原生实现该逻辑,可在升级命令中追加--dry-run=server参数预览全量变更,确认c-pod无预期外修改后再执行正式升级。
  • 不要误用helm.sh/resource-policy: keep注解,该注解仅在helm uninstall时生效,作用是保留对应资源不被删除,无法拦截upgrade过程中的资源更新操作。
  • 正式执行升级前建议先加--dry-run参数执行模拟升级,确认a-pod、b-pod为新版本配置、c-pod无变更后再执行实际操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:36:08