協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提示
使用 Amazon EKS Auto Mode,您不需要安裝或升級聯網附加元件。自動模式包含 Pod 聯網和負載平衡功能。
如需詳細資訊,請參閱使用 EKS Auto 模式自動化叢集基礎設施。
本主題說明如何使用 Helm、Kubernetes 套件管理員和 安裝 AWS Load Balancer控制器eksctl
。控制器已安裝預設選項。如需控制器的詳細資訊,包括使用註釋設定控制器的詳細資訊,請參閱 GitHub 上的AWS Load Balancer控制器文件
在下列步驟中,將範例值
取代為您自己的值。
先決條件
開始此教學之前,您必須先安裝和設定下列在建立和管理 Amazon EKS 叢集所需的工具和資源。
-
現有 Amazon EKS 叢集。若要部署叢集,請參閱 開始使用 Amazon EKS。
-
叢集的現有 AWS Identity and Access Management (IAM) OpenID Connect (OIDC) 提供者。若要判定您是否已經擁有一個,或是要建立一個,請參閱 為您的叢集建立 IAM OIDC 身分提供者。
-
請確定 Kubernetes、
kube-proxy
和 CoreDNS 附加元件的 Amazon VPC CNI 外掛程式是服務帳戶字符中列出的最低版本。 -
熟悉 AWS Elastic Load Balancing。如需詳細資訊,請參閱《Elastic Load Balancing 使用者指南》。
步驟 1:使用 建立 IAM 角色 eksctl
注意
以下範例參考 AWS Load Balancer控制器 2.12.0 版的發行版本。如需所有版本的詳細資訊,請參閱 GitHub 上的AWS Load Balancer控制器版本頁面
-
下載 AWS Load Balancer控制器的 IAM 政策,允許其代表您呼叫 AWS APIs。
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.12.0/docs/install/iam_policy.json
-
如果您是非標準 AWS 分割區,例如政府或中國區域,請檢閱 GitHub 上的政策
,並下載適用於您區域的適當政策。
-
-
使用上一個步驟中下載的政策,建立 IAM 政策。
aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.json
注意
如果您在 中檢視政策 AWS Management Console,主控台會顯示 ELB 服務的警告,但不會顯示 ELB v2 服務的警告。發生這種情況是由於政策中存在適用於 ELB v2 的某些動作,但不適用於 ELB。您可以忽略這些對 ELB 發出的警告。
-
取代叢集名稱、區域代碼和帳戶 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:Install AWS Load Balancer 控制器
-
新增
eks-charts
Helm Chart 儲存庫。 會在 GitHub 上 AWS 維護此儲存庫。 helm repo add eks https://aws.github.io/eks-charts
-
更新您的本機儲存庫,以確定您擁有最新的圖表。
helm repo update eks
-
安裝 AWS Load Balancer控制器。
如果您要將控制器部署到限制存取 Amazon EC2 執行個體中繼資料服務 (IMDS) 的 Amazon EC2 節點,或者如果您要部署到 Fargate 或 Amazon EKS 混合節點,請將下列旗標新增至下列
helm
命令: Amazon EC2-
--set region=
region-code
-
--set vpcId=
vpc-xxxxxxxx
使用您叢集的名稱取代
my-cluster
。在下列命令中,aws-load-balancer-controller
是您在上一個步驟中建立的 Kubernetes 服務帳戶。如需設定 helm Chart 的詳細資訊,請參閱 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
-
重要
部署的圖表不會自動接收安全性更新。當圖表可用時,您需要手動升級到較新的圖表。升級時,請在上一個命令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 流量。