2020年11月12日にAWSが「Amazon VPC CNI プラグインバージョン 1.7
がAmazon EKSクラスターのDefault」になったと発表しました。
Amazon VPC CNIとは、「Amazon EKS、kubernetes用のVPCコンテナネットワークインターフェース」の略です。
1.7系のプラグインを利用することによりkubeポッドはVPC内と同じIPアドレスをポッド内に持つことができるようになり、今回発表されたバージョン1.7から既存のVPCに追加された新しいIPアドレスゾーンの範囲を自動的に検出する機能アップデートが含まれているとAWSが発表しています。
目次
Amazon VPC CNIブラグインバージョンの確認とアップグレード
CNIは自動アップグレートしませんので、ひと手間かかりますが手動でCNIのアップグレードを行う必要があります。2020年11月16日時点のAWSの推奨最新バージョンは1.7.5となっています。
Amazon VPC CNIの最新バージョンは、githubからダウンロードすることができます。
バージョンアップの手順
ユーザーガイドに記載されていますので、詳しくはユーザーガイドを参照して頂ければ良いのですが、備忘録として、CNIのバージョン確認方法とアップグレードの方法を以下に残しておきます。
CNIのバージョン確認方法
まずは現在のCNIのバージョンを確認しておきます。
kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2
Kubernetes用のAmazonVPCCNIプラグインをアップグレード
次に、githubより”aws-k8s-cni.yaml”ファイルをダウンロードします。
curl -o aws-k8s-cni.yaml https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.7.5/config/v1.7/aws-k8s-cni.yaml
例 以下のようにものの数秒でダウンロードが終了します。
>curl -o aws-k8s-cni.yaml https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.7.5/config/v1.7/aws-k8s-cni.yaml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6621 100 6621 0 0 6621 0 0:00:01 --:--:-- 0:00:01 14615
ダウンロードしたaws-k8s-cni.yamlファイルの編集
sedコマンドでリージョン名を現在お使いのリージョン名に変更します。東京リージョンをお使いであれば、<region-code>をap-northeast-1に変更すればOKでしょう。
sed -i -e 's/us-west-2/<region-code>/' aws-k8s-cni.yaml
マニフェストファイルをクラスターに適用
kubectl apply -f aws-k8s-cni.yaml
マニフェストファイルをクラスターに適用して作業は終了です。
お疲れ様でした。
補足:sedコマンドとは
sedコマンドとは、ここではyamlファイルとなっていますがファイル内にある文字を操作する為のコマンドです。
今回は、対象の文字を置き換えたいので、置換オプションである”eオプション”をつけて、us-west-2と書かれている部分のリージョンコードを目的のリージョンに変更します。前述しましたが、東京リージョンをお使いの方であればap-northeast-1を入れてあげてコマンドを実行すればOKです。
因みにiオプションは、”–in-place”ですので”上書き”しなさいということになります。