

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# Amazon VPC CNI の更新 (セルフマネージド型アドオン)
<a name="vpc-add-on-self-managed-update"></a>

**重要**  
セルフマネージド型のアドオンを使用する代わりに、Amazon EKS タイプのアドオンをクラスターに追加することをお勧めします。タイプの違いがよくわからない場合は「[Amazon EKS アドオン](eks-add-ons.md)」を参照してください。Amazon EKS アドオンをクラスターに追加する方法については「[Amazon EKS アドオンを作成する](creating-an-add-on.md)」を参照してください。Amazon EKS アドオンを使用できない場合はその理由に関する問題を[コンテナロードマップ GitHub リポジトリ](https://github.com/aws/containers-roadmap/issues)に送信することをお勧めします。

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

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

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

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

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

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

   ```
   v1.20.0-eksbuild.1
   ```

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

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

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

   利用可能なバージョンを確認し、更新するバージョンの変更について理解するには、GitHub の「[Releases](https://github.com/aws/amazon-vpc-cni-k8s/releases)」を参照してください。新しいバージョンが GitHub で利用できる場合でも、利用可能な最新バージョンの表に記載されている同じ `major`.`minor`.`patch` バージョンに更新することをお勧めします。利用可能な最新バージョンの表については「[Amazon VPC CNI のバージョン](managing-vpc-cni.md#vpc-cni-latest-available-version)」を参照してください。表に記載されているビルドバージョンはGitHub に記載されているセルフマネージドバージョンでは指定されていません。次のオプションのいずれかでタスクを完了して、バージョンを更新します。
   + アドオンのカスタム設定がない場合は更新先の[リリース](https://github.com/aws/amazon-vpc-cni-k8s/releases)の GitHub の `To apply this release:` の見出しの下にあるコマンドを実行してください。
   + カスタム設定がある場合は次のコマンドを実行してマニフェストファイルをダウンロードします。{{https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.20.0/config/master/aws-k8s-cni.yaml}} を、更新先の GitHub 上のリリースの URL に変更します。

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

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

     ```
     kubectl apply -f aws-k8s-cni.yaml
     ```

1. 新しいバージョンがクラスターにインストールされたことを確認します。

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

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

   ```
   v1.20.3
   ```

1. (オプション)`cni-metrics-helper` をクラスターにインストールします。メトリクスヘルパーは、ネットワークインターフェイスと IP アドレス情報を収集し、クラスターレベルでメトリクスを集計し、メトリクスを Amazon CloudWatch に発行するために使用できるツールです。詳細については[GitHub の CNI](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/cmd/cni-metrics-helper/README.md) を参照してください。