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

如何通过Helm CLI为子Chart设置Node Affinity?

在Helm子Chart中通过CLI设置节点亲和性的正确方法

你要给Gitea Chart的mariadb、memcached子Chart配置的节点亲和性YAML结构如下:

mariadb:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: arch
            operator: In
            values:
            - x86_64

之前的--set命令语法错误,核心问题是没有正确处理YAML中的数组结构(nodeSelectorTerms和matchExpressions都是数组类型),Helm的--set语法需要用[索引]来指定数组元素。

正确的命令写法

方式一:合并参数简化写法

把同一数组元素的多个属性用大括号包裹、逗号分隔,同时用[]声明数组值:

helm install gitea gitea-charts/gitea -f ./values.yaml \
  --set 'memcached.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0]={key:arch,operator:In,values:[x86_64]}' \
  --set 'mariadb.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0]={key:arch,operator:In,values:[x86_64]}'

方式二:拆分参数清晰写法

如果觉得合并写法可读性差,也可以拆分多个--set参数,逐个设置属性:

helm install gitea gitea-charts/gitea -f ./values.yaml \
  # 配置memcached节点亲和性
  --set 'memcached.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key=arch' \
  --set 'memcached.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].operator=In' \
  --set 'memcached.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].values[0]=x86_64' \
  # 配置mariadb节点亲和性
  --set 'mariadb.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key=arch' \
  --set 'mariadb.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].operator=In' \
  --set 'mariadb.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].values[0]=x86_64'

语法说明

  • nodeSelectorTerms[0]:指定数组中的第一个节点选择规则
  • matchExpressions[0]:指定该规则下的第一个匹配表达式
  • values[0]:指定匹配值数组中的第一个值
  • 如果需要添加多个规则或表达式,只需递增索引(比如[1])即可扩展

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:35:30