🙆♀️
Amazon VPC CNI plugin をセルフマネージドから Amazon EKS アドオン化する
ユーザガイド
手順
手順は以下の通り。
- 現在の 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