🙆‍♀️

Amazon VPC CNI plugin をセルフマネージドから Amazon EKS アドオン化する

2023/06/09に公開

ユーザガイド

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/managing-add-ons.html#creating-an-add-on
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/managing-vpc-cni.html#vpc-add-on-create

手順

手順は以下の通り。

  • 現在の Amazon VPC CNI plugin バージョンを確認する
  • 現在の Amazon VPC CNI plugin バージョンを使用して eksctl や AWS CLI から Amazon EKS アドオンを作成する
  • Amazon EKS アドオンの状態を確認する

事前確認

利用可能なアドオンの名前を確認する。

eksctl utils describe-addon-versions --kubernetes-version 1.23 | grep AddonName

			"AddonName": "coredns",
			"AddonName": "vpc-cni",
			・・・

vpc-cni で使用できるバージョンを表示する。

eksctl utils describe-addon-versions --kubernetes-version 1.23 --name vpc-cni | grep AddonVersion

作成するアドオンが Amazon EKS か AWS Marketplace アドオンか判断する。
出力が返されなければ Amazon EKS アドオンである。

eksctl utils describe-addon-versions --kubernetes-version 1.23 --name vpc-cni | grep ProductUrl

Amazon VPC CNI plugin は Amazon EKS アドオンなので、この手順はスキップしても問題ない。

既存のバージョンを確認する。

kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

念の為、Amazon EKS アドオンがインストールされていないか確認する。

aws eks describe-addon --cluster-name {クラスタ名} --addon-name vpc-cni --query addon.addonVersion --output text

エラーが返れれば Amazon EKS アドオンはインストールされていない。

作成

Amazon EKS アドオンを作成する。

--resolve-conflicts OVERWRITE オプションを削除することで、既存のセルフマネージドのアドオンの設定を残したまま EKS アドオンに追加することができる。

aws eks create-addon --cluster-name {クラスタ名} --addon-name vpc-cni --addon-version {バージョン} \
--service-account-role-arn {サービスアカウントの IAM ロール名} --resolve-conflicts OVERWRITE

事後確認

Amazon EKS アドオンがインストールされたか確認する。

aws eks describe-addon --cluster-name {クラスタ名} --addon-name vpc-cni --query addon.addonVersion --output text

AWS コンソールの EKS > クラスター > {クラスタ名} の アドオンのタブより Amazon VPC CNI が表示されることを確認する。

念の為、Deployment をローリングアップデートし IP が振られていることを確認する。

Discussion