本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
安裝 AWS Load Balancer Controller 取代為 Helm
本主題說明如何安裝 AWS Load Balancer Controller 使用 Helm, 的套件管理員 Kubernetes、 和 eksctl
。控制器已安裝預設選項。如需控制器的詳細資訊,包括使用註釋設定控制器的詳細資訊,請參閱 上的 AWS Load Balancer 控制器文件
在下列步驟中,取代 example values
使用您自己的值。
必要條件
開始本教學課程之前,您必須安裝並設定建立和管理 Amazon EKS 叢集所需的下列工具和資源。
-
現有的 Amazon EKS 叢集。若要部署叢集,請參閱 Amazon EKS 入門。
-
現有的 AWS Identity and Access Management (IAM) OpenID Connect (OIDC) 叢集的供應商。若要判定您是否已經擁有一個,或是要建立一個,請參閱 建立 IAM OIDC 叢集的 提供者。
-
請確定您的 Amazon VPC CNI plugin for Kubernetes、
kube-proxy
和 CoreDNS 附加元件是 Service 帳戶權杖中列出的最低版本。 -
熟悉 AWS Elastic Load Balancing。如需詳細資訊,請參閱《Elastic Load Balancing 使用者指南》。
步驟 1:使用 建立 IAM 角色 eksctl
注意
您只需要為 建立 IAM 角色 AWS Load Balancer Controller 每個 AWS 帳戶一個。檢查 IAM 主控台AmazonEKSLoadBalancerControllerRole
是否存在 。如果存在此角色,請跳至步驟 2:Install AWS Load Balancer 控制器。
-
下載 的 IAM 政策 AWS Load Balancer Controller 允許其代表您呼叫 to AWS APIs。
- AWS
-
**
$ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy.json
- AWS GovCloud (美國)
-
**
$ 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
-
使用上一個步驟中下載的政策建立 IAM 政策。
$ aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.json
注意
如果您在 中檢視政策 AWS Management Console,主控台會顯示 ELB 服務的警告,但不會顯示 ELB v2 服務。這是因為 ELB v2 存在政策中的某些動作,但 ELB 不存在。您可以忽略 ELB 的警告。
-
Replace (取代)
my-cluster
使用叢集的名稱111122223333
使用您的帳戶 ID,然後執行 命令。如果您的叢集位於 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
-
新增
eks-charts
Helm Chart 儲存庫。 AWS 會維護此儲存庫on GitHub。 $ helm repo add eks https://aws.github.io/eks-charts
-
更新您的本機儲存庫,以確定您擁有最新的圖表。
$ helm repo update eks
-
安裝 AWS Load Balancer Controller.
Replace (取代)
my-cluster
您的叢集名稱。在下列命令中,aws-load-balancer-controller
是 Kubernetes 您在上一個步驟中建立的服務帳戶。如需設定 helm Chart 的詳細資訊,請參閱 values.yaml
on 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
-
如果您要將控制器部署到限制存取 Amazon EC2 執行個體中繼資料服務 (Word) 的 Amazon Word 節點,或者如果您要部署到 Fargate,請將下列旗標新增至下列
helm
命令: EC2 IMDS-
--set region=
region-code
-
--set vpcId=
vpc-xxxxxxxx
-
-
若要檢視 Helm Chart 和 Load Balancer 控制器的可用版本,請使用下列命令:
helm search repo eks/aws-load-balancer-controller --versions
重要
部署的圖表不會自動接收安全更新。當圖表可用時,您需要手動升級到較新的圖表。升級時,變更
install
上一個命令upgrade
中的 至 。
-
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:確認已安裝控制器
-
確認控制器已安裝。
$ 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 資訊清單,您只有一個複本。
-
使用控制器佈建 AWS 資源之前,您的叢集必須符合特定需求。如需詳細資訊,請參閱 使用 Application Load Balancer 路由應用程式和 HTTP 流量 和 使用 Network Load Balancer 路由 TCP 和 UDP 流量。