Amazon VPC CNI の更新 (セルフマネージド型アドオン) - Amazon EKS

Amazon VPC CNI の更新 (セルフマネージド型アドオン)

重要

セルフマネージド型のアドオンを使用する代わりに、Amazon EKS タイプのアドオンをクラスターに追加することをお勧めします。タイプの違いがよくわからない場合は、「Amazon EKS アドオン」を参照してください。Amazon EKS アドオンをクラスターに追加する方法については、「Amazon EKS アドオンを作成する」を参照してください。Amazon EKS アドオンを使用できない場合は、その理由に関する問題をコンテナロードマップ GitHub リポジトリに送信することをお勧めします。

  1. Amazon EKS タイプのアドオンがクラスターにインストールされていないことを確認します。my-cluster の部分は、自分のクラスター名に置き換えます。

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    エラーメッセージが返された場合、クラスターに Amazon EKS タイプのアドオンがインストールされていません。アドオンを自己管理するには、この手順の残りのステップを完了してアドオンを更新します。バージョン番号が返された場合、クラスターに Amazon EKS タイプのアドオンがインストールされています。更新するには、この手順を使用するのではなく、「Amazon EKS アドオンを更新する」の手順を使用してください。アドオンタイプの違いがよくわからない場合は、「Amazon EKS アドオン」を参照してください。

  2. クラスターに現在インストールされているコンテナイメージのバージョンを確認します。

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

    出力例は次のとおりです。

    v1.16.4-eksbuild.2

    出力にビルド番号が含まれていない場合があります。

  3. 現在の設定をバックアップして、バージョンを更新した後も同じ設定を構成できるようにします。

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml

    利用可能なバージョンを確認し、更新するバージョンの変更について理解するには、GitHub の「リリース」を参照してください。新しいバージョンが GitHub で利用できる場合でも、利用可能な最新バージョンの表に記載されている同じ major.minor.patch バージョンに更新することをお勧めします。利用可能な最新バージョンの表については、「Amazon VPC CNI バージョン」を参照してください。表に記載されているビルドバージョンは、GitHub に記載されているセルフマネージドバージョンでは指定されていません。次のオプションのいずれかでタスクを完了して、バージョンを更新します。

    • アドオンのカスタム設定がない場合は、更新先のリリースの GitHub の To apply this release: の見出しの下にあるコマンドを実行します。

    • カスタム設定がある場合は、次のコマンドを実行してマニフェストファイルをダウンロードします。https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.19.0/config/master/aws-k8s-cni.yaml を、更新先の GitHub 上のリリースの URL に変更します。

      curl -O https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.19.0/config/master/aws-k8s-cni.yaml

      必要に応じて、前のステップで作成したバックアップのカスタム設定でマニフェストを変更し、変更したマニフェストをクラスターに適用します。ノードがイメージの取得元のプライベート Amazon EKS Amazon ECR リポジトリにアクセスできない場合 (マニフェストの image: で始まる行を参照)、イメージをダウンロードして自分のリポジトリにコピーし、リポジトリからイメージを取得するようにマニフェストを変更する必要があります。詳細については、「あるリポジトリから別のリポジトリにコンテナイメージをコピーする」を参照してください。

      kubectl apply -f aws-k8s-cni.yaml
  4. 新しいバージョンがクラスターにインストールされたことを確認します。

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

    出力例は次のとおりです。

    v1.19.0
  5. (オプション)cni-metrics-helper をクラスタにインストールします。 メトリクスヘルパーは、ネットワークインターフェイスと IP アドレス情報を収集し、クラスターレベルでメトリクスを集計し、メトリクスを Amazon CloudWatch に発行するために使用できるツールです。詳細については、GitHub の CNI を参照してください。