Amazon VPC CNIプラグインバージョン1.7 EKSクラスターのDefaultに

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”ですので”上書き”しなさいということになります。