このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
このトピックでは非推奨のコントローラーバージョンから移行する方法を説明します。具体的には AWS Load Balancer Controller の非推奨バージョンを削除する方法について説明します。
-
非推奨バージョンはアップグレードできません。まずそれらを削除してから、最新バージョンをインストールする必要があります。
-
非推奨バージョンには以下が含まれます。
-
AWS Load Balancer Controller の前身である AWS ALB イングレス・コントローラー for Kubernetes (「イングレス・コントローラー」)
-
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
これはコントローラが取り付けられていない場合の出力です。
+ これはコントローラが取り付けられている場合の出力です。
+
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 イングレス・コントローラー for Kubernetes から AWS Load Balancer Controller に移行するには以下を実行する必要があります。
-
ALB イングレス・コントローラー を削除します (上記を参照)。
-
AWS Load Balancer Controller で使用される IAM 役割にポリシーを追加します。このポリシーはALB イングレス・コントローラー の Kubernetes によって作成されたリソースを LBC が管理することを許可します。
-
IAM ポリシーをダウンロードします。このポリシーはALB イングレス・コントローラー の 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