協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本主題說明如何從取代的控制器版本遷移。更具體地說,它說明如何移除已棄用版本的 AWS Load Balancer控制器。
-
已棄用版本無法升級。您必須先移除它們,然後安裝目前的版本。
-
已棄用版本包括:
-
AWS 適用於 Kubernetes 的 ALB 輸入控制器 (「輸入控制器」),是 AWS Load Balancer控制器的前身。
-
任何
0.1.
版本的 AWS Load Balancer控制器x
-
移除已棄用控制器版本
注意
您可能已經使用 Helm 或手動使用 Kubernetes 資訊清單安裝已棄用版本。請使用最初使用安裝的工具來完成此程序。
-
如果您安裝了
incubator/aws-alb-ingress-controller
Helm Chart,請將其解除安裝。helm delete aws-alb-ingress-controller -n kube-system
-
如果您安裝了第
0.1.
版的x
eks-charts/aws-load-balancer-controller
圖表,請將其解除安裝。由於與 Webhook API 版本不相容,因此從0.1.
升級至 版本x
1.0.0
無法運作。helm delete aws-load-balancer-controller -n kube-system
-
檢查目前是否已安裝控制器。
kubectl get deployment -n kube-system alb-ingress-controller
如果未安裝控制器,這是輸出。
Error from server (NotFound): deployments.apps "alb-ingress-controller" not found
如果已安裝控制器,則此為輸出。
NAME READY UP-TO-DATE AVAILABLE AGE alb-ingress-controller 1/1 1 1 122d
-
輸入下列命令以移除控制器。
kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/alb-ingress-controller.yaml kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/rbac-role.yaml
遷移至 AWS Load Balancer控制器
若要從 Kubernetes 的 ALB 輸入控制器遷移至 AWS Load Balancer控制器,您需要:
-
移除 ALB 傳入控制器 (請參閱上述)。
-
將其他政策新增至 AWS Load Balancer控制器所使用的 IAM 角色。此政策允許 LBC 管理由 ALB Ingress Controller for Kubernetes 建立的資源。
-
下載 IAM 政策。此政策允許 AWS Load Balancer控制器管理 ALB 輸入控制器為 Kubernetes 建立的資源。您也可以檢視政策
。 curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.11.0/docs/install/iam_policy_v1_to_v2_additional.json
-
如果您的叢集位於 AWS GovCloud (美國東部) 或 AWS GovCloud (美國西部) AWS 區域,請將 取代
arn:aws:
為arn:aws-us-gov:
。sed -i.bak -e 's|arn:aws:|arn:aws-us-gov:|' iam_policy_v1_to_v2_additional.json
-
建立 IAM 政策並記下傳回的 ARN。
aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
-
將 IAM 政策連接至 AWS Load Balancer控制器所使用的 IAM 角色。將
your-role-name
取代為角色的名稱,例如AmazonEKSLoadBalancerControllerRole
。如果您使用 建立角色
eksctl
,則若要尋找建立的角色名稱,請開啟 AWS CloudFormation 主控台,然後選取 eksctl- my-cluster
-addon-iamserviceaccount-kube-system-aws-load-balancer-controller 堆疊。選取 Resources (資源) 標籤。角色名稱位於 Physical ID (實體 ID) 欄。aws iam attach-role-policy \ --role-name your-role-name \ --policy-arn arn:aws: iam::111122223333:policy/AWSLoadBalancerControllerAdditionalIAMPolicy