安裝 AWS Load Balancer Controller 取代為 Helm - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

安裝 AWS Load Balancer Controller 取代為 Helm

本主題說明如何安裝 AWS Load Balancer Controller 使用 Helm, 的套件管理員 Kubernetes、 和 eksctl。控制器已安裝預設選項。如需控制器的詳細資訊,包括使用註釋設定控制器的詳細資訊,請參閱 AWS Load Balancer Controller 上的文件 GitHub.

在下列步驟中,使用自己的值取代 example values

必要條件

開始本教學課程之前,您必須安裝並設定建立和管理 Amazon EKS叢集所需的下列工具和資源。

步驟 1:使用 建立IAM角色 eksctl

注意

您只需要為 建立IAM角色 AWS Load Balancer Controller 每個 AWS 帳戶一個。檢查主控台 中AmazonEKSLoadBalancerControllerRole是否存在 。 IAM 如果存在此角色,請跳至 步驟 2:安裝 AWS Load Balancer Controller

建立IAM政策。
  1. 下載 IAM的政策 AWS Load Balancer Controller 允許它APIs代表您呼叫 AWS 。

    AWS
    $ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy.json
    AWS GovCloud (US)
    $ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy_us-gov.json
    $ mv iam_policy_us-gov.json 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

使用 建立IAM角色 eksctl
  • 使用叢集名稱取代 my-cluster,並使用帳戶 ID 取代 111122223333,然後執行命令。如果您的叢集位於 AWS GovCloud (美國東部) 或 AWS GovCloud (美國西部) AWS 區域,則arn:aws:以 取代 arn:aws-us-gov:

    $ eksctl create iamserviceaccount \ --cluster=my-cluster \ --namespace=kube-system \ --name=aws-load-balancer-controller \ --role-name AmazonEKSLoadBalancerControllerRole \ --attach-policy-arn=arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerIAMPolicy \ --approve

步驟 2:安裝 AWS Load Balancer Controller

安裝 AWS Load Balancer Controller 使用 Helm V3
  1. 新增 eks-charts Helm Chart 儲存庫。 會在 上 AWS 維護此儲存庫 GitHub。

    $ helm repo add eks https://aws.github.io/eks-charts
  2. 更新您的本機儲存庫,以確定您擁有最新的圖表。

    $ helm repo update eks
  3. 安裝 AWS Load Balancer Controller.

    使用您叢集的名稱取代 my-cluster。在下列命令中, aws-load-balancer-controller是 Kubernetes 您在上一個步驟中建立的服務帳戶。

    如需設定 Helm Chart 的詳細資訊,請參閱values.yaml上的 GitHub。

    $ 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
    1. 如果您要將控制器部署到限制存取 Amazon 執行個體中繼資料服務的 Amazon EC2節點 (),或者如果您要部署到 Fargate,請將下列旗標新增至下列helm命令: EC2 IMDS

      • --set region=region-code

      • --set vpcId=vpc-xxxxxxxx

    2. 若要檢視 Helm Chart 和 Load Balancer 控制器的可用版本,請使用下列命令:

      helm search repo eks/aws-load-balancer-controller --versions
    重要

    部署的圖表不會自動接收安全性更新。當圖表可用時,您需要手動升級到較新的圖表。升級時,請在上一個命令upgradeinstall將 變更為 。

    helm install 命令會自動安裝自訂資源定義 (CRDs)。helm upgrade 命令不會。如果您使用 helm upgrade,,則必須手動安裝 CRDs執行下列命令以安裝 。CRDs:

    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 資源之前,您的叢集必須符合特定需求。如需詳細資訊,請參閱 Route 應用程式和 HTTP 流量 Application Load Balancers路由 TCP 以及 UDP 流量 Network Load Balancers