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

如何通过Terraform在AWS EKS特定节点部署aws-load-balancer-controller

在Terraform中配置AWS Load Balancer Controller的Pod节点调度

Terraform的helm_release资源本身没有暴露直接的nodeSelector/affinity配置项,你需要通过传递Helm Chart的自定义values来实现Pod的节点调度——AWS Load Balancer Controller的官方Helm Chart支持在values里配置Pod的调度规则。

方法1:使用set参数直接配置简单规则

如果只需要基础的nodeSelector,可以直接在helm_release资源里添加set块,指定目标节点的标签:

resource "helm_release" "aws_load_balancer_controller" {
  name       = "aws-load-balancer-controller"
  repository = "https://aws.github.io/eks-charts"
  chart      = "aws-load-balancer-controller"
  version    = "v2.5.4" # 替换为你实际使用的Chart版本

  set {
    name  = "controller.nodeSelector.eks\\.amazonaws\\.com/nodegroup"
    value = "your-target-nodegroup" # 替换为你的目标节点组名称
  }

  # 补充必要的集群配置
  set {
    name  = "clusterName"
    value = "your-eks-cluster-name"
  }

  set {
    name  = "serviceAccount.create"
    value = "true"
  }

  set {
    name  = "serviceAccount.name"
    value = "aws-load-balancer-controller"
  }
}

注意:标签中包含点号等特殊字符时,需要用双反斜杠转义,避免HCL解析报错。

方法2:使用values块配置复杂调度规则(如nodeAffinity)

如果需要更灵活的调度逻辑(比如强制匹配标签、偏好性调度),可以通过values块传递完整的YAML配置:

resource "helm_release" "aws_load_balancer_controller" {
  name       = "aws-load-balancer-controller"
  repository = "https://aws.github.io/eks-charts"
  chart      = "aws-load-balancer-controller"
  version    = "v2.5.4" # 替换为你实际使用的Chart版本

  values = [
    <<-EOT
    controller:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: eks.amazonaws.com/nodegroup
                operator: In
                values:
                - your-target-nodegroup
              - key: custom-node-label
                operator: Exists
    EOT
  ]

  # 补充必要的集群配置
  set {
    name  = "clusterName"
    value = "your-eks-cluster-name"
  }

  # 省略serviceAccount等其他必填配置...
}

前置检查

  • 确保目标节点已经打好对应标签,可通过kubectl get nodes --show-labels确认标签存在;
  • 确认使用的AWS Load Balancer Controller Chart版本支持该配置(官方v2.x系列均支持)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:29