选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Helm 安装 AWS 负载均衡器控制器

聚焦模式
使用 Helm 安装 AWS 负载均衡器控制器 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

提示

使用 Amazon EKS 自动模式时,您无需安装或升级联网附加组件。自动模式包含容器组联网和负载均衡功能。

有关更多信息,请参阅 使用 EKS 自动模式实现集群基础设施自动化

本主题介绍如何使用 Helm(Kubernetes 的程序包管理器)和 eksctl 安装 AWS 负载均衡器控制器。控制器安装了默认的选项。有关控制器的更多信息,包括使用注释对其进行配置的详细信息,请参阅 GitHub 上的 AWS Load Balancer Controller 文档。

在以下步骤中,将 example values 替换为您自己的值。

先决条件

在开始使用本教程之前,您必须安装并配置创建和管理 Amazon EKS 集群所需的以下工具和资源。

步骤 1:使用 eksctl 创建 IAM 角色

注意

以下示例引用了 AWS 负载均衡器控制器 v2.12.0 发行版本。有关所有发行版的更多信息,请参阅 GitHub 上的 AWS Load Balancer Controller Release 页面。

  1. 下载AWS负载均衡器控制器的 IAM 策略,该策略允许负载均衡器代表您调用 AWS API。

    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.12.0/docs/install/iam_policy.json
  2. 使用上一步中下载的策略创建一个 IAM 策略。

    aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.json
    注意

    如果您在AWS Management Console中查看策略,则控制台会显示有关 ELB 服务的警告,但不会显示有关 ELB v2 服务的警告。之所以发生这种情况,是因为策略中的某些操作适用于 ELB v2,但不适用于 ELB。您可以忽略有关 ELB 的警告。

  3. 替换集群名称、区域代码和账户 ID 的值。

    eksctl create iamserviceaccount \ --cluster=<cluster-name> \ --namespace=kube-system \ --name=aws-load-balancer-controller \ --attach-policy-arn=arn:aws:iam::<AWS_ACCOUNT_ID>:policy/AWSLoadBalancerControllerIAMPolicy \ --override-existing-serviceaccounts \ --region <aws-region-code> \ --approve

步骤 2:安装 AWS 负载均衡器控制器

  1. 添加 eks-charts Helm 图表存储库。AWS 在 GitHub 上维护此存储库

    helm repo add eks https://aws.github.io/eks-charts
  2. 更新您的本地存储库,以确保您拥有最新的图表。

    helm repo update eks
  3. 安装AWS负载均衡器控制器。

    如果要将控制器部署到限制访问 Amazon EC2 实例元数据服务(IMDS) 的 Amazon EC2 节点,或者部署到 Fargate 节点或 Amazon EKS 混合节点功能,则需要在以下 helm 命令中添加以下标志:

    • --set region=region-code

    • --set vpcId=vpc-xxxxxxxx

      my-cluster 替换为您的集群的名称。在以下命令中,aws-load-balancer-controller 是您在上一步中创建的 Kubernetes 服务账户。

      有关配置 Helm 图表的更多信息,请参阅 GitHub 上的 values.yaml

      helm install aws-load-balancer-controller eks/aws-load-balancer-controller \ -n kube-system \ --set clusterName=my-cluster \ --set serviceAccount.create=false \ --set serviceAccount.name=aws-load-balancer-controller
重要

已部署的图表不会自动接收安全更新。当新图表可用时,您需要手动升级到新图表。升级时,在上一个命令中将 install 更改为 upgrade

helm install 命令会自动安装控制器的自定义资源定义(CRD)。helm upgrade 命令不会。如果您使用 helm upgrade,,则必须手动安装 CRD。运行以下命令来安装 CRD:

wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml kubectl apply -f crds.yaml

步骤 3:验证控制器是否已安装

  1. 验证控制器是否已安装。

    kubectl get deployment -n kube-system aws-load-balancer-controller

    示例输出如下。

    NAME READY UP-TO-DATE AVAILABLE AGE aws-load-balancer-controller 2/2 2 2 84s

    如果使用 Helm 进行部署,则会收到之前的输出结果。如果您使用 Kubernetes 清单进行部署,则只有一个副本。

  2. 在使用控制器预置AWS资源前,您的集群必须满足特定要求。有关更多信息,请参阅使用应用程序负载均衡器路由应用程序和 HTTP 流量使用网络负载均衡器路由 TCP 和 UDP 流量

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。