このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
このトピックでは非推奨のコントローラーバージョンから移行する方法を説明します。具体的には、AWS Load Balancer Controller の非推奨バージョンを削除する方法について説明します。
-
非推奨バージョンはアップグレードできません。まずそれらを削除してから、最新バージョンをインストールする必要があります。
-
非推奨バージョンには以下が含まれます。
-
AWS Load Balancer Controller の前身である AWS ALB Ingress Controller for Kubernetes (「Ingress Controller」)。
-
AWS Load Balancer Controller の任意の
0.1.
バージョンx
-
非推奨のコントローラーバージョンを削除する
注記
非推奨バージョンは、Helm を使用したか、Kubernetes マニフェストに従って手動でインストールされた可能性があります。この手順は元々インストールしてあるツールを使用して実行してください。
-
incubator/aws-alb-ingress-controller
Helm チャートをインストールしてある場合はこれをアンインストールします。helm delete aws-alb-ingress-controller -n kube-system
-
eks-charts/aws-load-balancer-controller
のバージョン0.1.
をインストールしている場合はこれをアンインストールします。x
0.1.
からバージョンx
1.0.0
へのアップグレードはWebhook API のバージョンとの互換性がないため動作しません。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 Controller への移行
ALB Ingress Controller for Kubernetes から AWS Load Balancer Controller に移行するには、以下を実行する必要があります。
-
ALB イングレス・コントローラー を削除します (上記を参照)。
-
AWS Load Balancer Controller で使用される IAM ロールにポリシーを追加します。このポリシーにより、ALB Ingress Controller for Kubernetes によって作成されたリソースを LBC が管理できるようになります。
-
IAM ポリシーをダウンロードします。このポリシーにより、ALB Ingress Controller for Kubernetes によって作成されたリソースを AWS Load Balancer Controller が管理できるようになります。ポリシーを表示
することもできます。 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
-
AWS Load Balancer Controller によって使用される IAM ロールに IAM ポリシーをアタッチします。
ロール名
を役割の名前 (例:AmazonEKSLoadBalancerControllerRole
) に置き換えます。eksctl
を使用して役割を作成している場合、作成された役割名を見つけるにはAWS クラウドフォーメーション コンソールを開き、eksctl- マイクラスター
-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