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

在CDK项目中安装AWS Load Balancer Controller失败排查:基于EKS部署Django应用的CDK构造开发问题

解决AWS CDK中部署AWS Load Balancer Controller的问题

我刚帮你排查了代码里的几个关键问题,下面一步步帮你解决:

1. 修正Helm Chart名称错误

你遇到的chart "eks/aws-load-balancer-controller" version "2.2.0" not found错误,核心原因是指定的chart名称不对。AWS EKS Charts仓库里的AWS Load Balancer Controller chart直接叫做aws-load-balancer-controller,不需要加eks/前缀。

把代码里的chart: 'eks/aws-load-balancer-controller'改成:

chart: 'aws-load-balancer-controller',

2. 提前安装TargetGroupBinding CRDs

官方文档明确要求,安装Helm Chart前必须先安装对应的CRDs。在CDK里可以通过以下两种方式实现:

方法1:用kubectl命令直接安装

在创建Helm Chart的代码之前,添加这段代码来执行官方要求的CRD安装命令:

// 安装AWS Load Balancer Controller所需的CRDs
this.cluster.addKubectlApplyCommand({
  command: 'apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master"',
});

方法2:直接加载CRD YAML(更稳定)

如果担心远程拉取的网络问题,你可以手动从官方源下载CRD的YAML内容,用cluster.addManifest直接添加到集群构造中,比如:

// 添加TargetGroupBinding CRD(示例,需替换为完整的官方CRD定义)
this.cluster.addManifest('TargetGroupBindingCRD', {
  apiVersion: 'apiextensions.k8s.io/v1',
  kind: 'CustomResourceDefinition',
  metadata: {
    name: 'targetgroupbindings.elbv2.k8s.aws',
  },
  spec: {
    // 此处粘贴从官方链接获取的完整CRD spec内容
  },
});

3. 验证Helm Chart的其他配置

你现有代码里的values配置是正确的,不过可以额外确认:

  • clusterName确实指向了你的EKS集群名称
  • serviceAccount.create: false和name: 'aws-load-balancer-controller'和你之前创建的ServiceAccount完全匹配

修正后的核心代码片段

// ... 其余代码保持不变

// 先安装CRDs
this.cluster.addKubectlApplyCommand({
  command: 'apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master"',
});

// 安装AWS Load Balancer Controller Helm Chart
this.cluster.addHelmChart('aws-load-balancer-controller-helm-chart', {
  repository: 'https://aws.github.io/eks-charts',
  chart: 'aws-load-balancer-controller', // 修正后的chart名称
  release: 'aws-load-balancer-controller',
  version: '2.2.0',
  namespace: 'kube-system',
  values: {
    clusterName: this.cluster.clusterName,
    serviceAccount: {
      create: false,
      name: 'aws-load-balancer-controller',
    },
  },
});

额外注意事项

  • 确保你的CDK环境使用的kubectl版本和EKS集群版本兼容(v1.19集群对应的kubectl版本建议在v1.19-v1.21之间)
  • 检查IAM Policy是否正确绑定到ServiceAccount:你通过sync-request拉取v2.2.0策略并添加的方式是可行的,不需要调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:42:32