AWS Load Balancer Controllerをv2.0.1からv2.4.5にアップデートにしたので手順をメモします。
リージョンは東京( ap-northeast-1
)です。
❯ helm history aws-load-balancer-controller -n kube-system REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Tue Feb 2 21:57:58 2021 superseded aws-load-balancer-controller-1.0.8 v2.0.1 Install complete 2 Mon Dec 19 20:21:15 2022 deployed aws-load-balancer-controller-1.4.6 v2.4.5 Upgrade complete
AWS Load Balancer Controllerのアップデート
公式の手順を参考に進めます。
以降の作業で参照する変数を定義しておきます。
$ CLUSTER_NAME=<eks-cluster-name> $ VPC_ID=$( aws eks describe-cluster \ --name $CLUSTER_NAME \ --query "cluster.resourcesVpcConfig.vpcId" \ --output text ) $ POLICY_ARN=$( aws iam list-policies \ --query 'Policies[?PolicyName==`AWSLoadBalancerControllerIAMPolicy`].Arn' \ --output text )
IAMポリシー
ダウンロードした iam_policy.json
でIAMポリシーの新しいバージョンを作成します。
公式の手順ではv2.4.4のファイルを参照していましたが、差分はないのでv2.4.5を指定しました。
$ curl -o iam_policy.json \ https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.5/docs/install/iam_policy.json $ aws iam create-policy-version \ --policy-arn $POLICY_ARN \ --policy-document file://iam_policy.json --set-as-default $ rm iam_policy.json
IAMロール・サービスアカウント
作成済みなので、特に変更しません。
最新の手順ではロール名( --role-name
)を明示的に指定していましたが、名前を変更する必要もないので無視します。
Helmチャートの更新
When upgrading, change install to upgrade in the previous command, but run the following command to install the TargetGroupBinding custom resource definitions before running the previous command.
ということで、CRDをインストールするために以下のコマンドを実行します。
$ kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"
続けて、チャートをアップデートします。
$ helm repo update $ helm upgrade aws-load-balancer-controller eks/aws-load-balancer-controller \ --set clusterName=$CLUSTER_NAME \ --set serviceAccount.create=false \ --set serviceAccount.name=aws-load-balancer-controller \ --set region=ap-northeast-1 \ --set vpcId=$VPC_ID \ --set image.repository=602401143452.dkr.ecr.ap-northeast-1.amazonaws.com/amazon/aws-load-balancer-controller \ -n kube-system
最後に
バージョンが更新されたことを確認して終わりです。
❯ helm list -n kube-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION aws-load-balancer-controller kube-system 2 2022-12-19 20:21:15.305269 +0900 JST deployed aws-load-balancer-controller-1.4.6 v2.4.5
❯ kubectl get deployment aws-load-balancer-controller -n kube-system -o yaml | yq e '.spec.template.spec.containers[0].image' - 602401143452.dkr.ecr.ap-northeast-1.amazonaws.com/amazon/aws-load-balancer-controller:v2.4.5