從取代的 ALB 傳入控制器遷移應用程式 - Amazon EKS

協助改善此頁面

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

若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。

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

從取代的 ALB 傳入控制器遷移應用程式

本主題說明如何從取代的控制器版本遷移。更具體地說,它說明如何移除已棄用版本的 AWS Load Balancer控制器。

  • 已棄用版本無法升級。您必須先移除它們,然後安裝目前的版本。

  • 已棄用版本包括:

    • AWS 適用於 Kubernetes 的 ALB 輸入控制器 (「輸入控制器」),是 AWS Load Balancer控制器的前身。

    • 任何0.1.x 版本的 AWS Load Balancer控制器

移除已棄用控制器版本

注意

您可能已經使用 Helm 或手動使用 Kubernetes 資訊清單安裝已棄用版本。請使用最初使用安裝的工具來完成此程序。

  1. 如果您安裝了 incubator/aws-alb-ingress-controller Helm Chart,請將其解除安裝。

    helm delete aws-alb-ingress-controller -n kube-system
  2. 如果您安裝了第 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
  3. 檢查目前是否已安裝控制器。

    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
  4. 輸入下列命令以移除控制器。

    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控制器,您需要:

  1. 移除 ALB 傳入控制器 (請參閱上述)。

  2. 安裝 AWS Load Balancer控制器。

  3. 將其他政策新增至 AWS Load Balancer控制器所使用的 IAM 角色。此政策允許 LBC 管理由 ALB Ingress Controller for Kubernetes 建立的資源。

  4. 下載 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
  5. 如果您的叢集位於 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
  6. 建立 IAM 政策並記下傳回的 ARN。

    aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
  7. 將 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