

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

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

# Amazon VPC CNI Amazon EKS アドオンの追加します。
<a name="vpc-add-on-create"></a>

次のステップを使用して、Amazon VPC CNI Plugin for Kubernetes の Amazon EKS アドオンを作成します。

開始する前に、考慮事項を確認してください。詳細については、「[考慮事項](managing-vpc-cni.md#manage-vpc-cni-add-on-on-considerations)」を参照してください。

## 前提条件
<a name="vpc-add-on-create-prerequisites"></a>

以下は、Amazon VPC CNI Plugin for Kubernetes の Amazon EKS アドオンの前提条件です。
+ 既存の Amazon EKS クラスター。デプロイするには「[Amazon EKS の使用を開始する](getting-started.md)」を参照してください。
+ クラスターの既存の AWS Identity and Access Management (IAM) OpenID Connect (OIDC) プロバイダー。既に存在しているかどうかを確認する、または作成するには「[クラスターの IAM OIDC プロバイダーを作成するには](enable-iam-roles-for-service-accounts.md)」を参照してください。
+ [AmazonEKS\_CNI\_Policy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) IAM ポリシー (クラスターが `IPv4` ファミリーを使用している場合)、または IPv6 ポリシー (クラスターが `IPv6` ファミリーを使用している場合) がアタッチされた IAM 役割です。VPC CNI 役割の詳細については、「[IRSA を使用するように Amazon VPC CNI プラグインを設定する](cni-iam-role.md)」を参照してください。IPv6 ポリシーの詳細については、「[`IPv6` ファミリーを使用するクラスター用に IAM ポリシーを作成します](cni-iam-role.md#cni-iam-role-create-ipv6-policy)」を参照してください。

**重要**  
Amazon VPC CNI Plugin for Kubernetes バージョン`v1.16.0` から `v1.16.1` では、CNI 仕様バージョン `v1.0.0` が実装されています。バージョン `v1.0.0` のCNI 仕様の詳細については、GitHub の「[Container Network Interface (CNI) Specification](https://github.com/containernetworking/cni/blob/spec-v1.0.0/SPEC.md)」を参照してください。

## 手順
<a name="vpc-add-on-create-procedure"></a>

前提条件を満たしたら、次のステップを使用してアドオンを作成します。

1. クラスターにインストールされているアドオンのバージョンを確認します。

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

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

   ```
   v1.16.4-eksbuild.2
   ```

1. クラスターにインストールされているアドオンのタイプを確認します。クラスターを作成するために使用したツールによっては、現在クラスターに Amazon EKS アドオンタイプがインストールされていない場合があります。{{マイクラスター}} の部分は、自分のクラスター名に置き換えます。

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

   バージョン番号が返された場合、Amazon EKS タイプのアドオンがクラスターにインストールされているため、このステップの残りのステップを完了する必要はありません。エラーが返された場合、クラスターに Amazon EKS タイプのアドオンがインストールされていません。インストールするには、このステップの残りのステップを完了します。

1. 現在インストールされているアドオンの設定を保存します。

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

1. AWS CLI を使用してアドオンを作成します。AWS マネジメントコンソール または `eksctl` を使用してアドオンを作成する場合は、「[Amazon EKS アドオンを作成する](creating-an-add-on.md)」を参照して、アドオン名の `vpc-cni` を指定します。デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行してください。
   + {{マイクラスター}} の部分は、自分のクラスター名に置き換えます。
   + {{v1.20.3-eksbuild.1}} を、使用しているクラスターバージョンに対して最新バージョンの表に記載されている最新バージョンに置き換えます。最新バージョンの表については、「[Amazon VPC CNI のバージョン](managing-vpc-cni.md#vpc-cni-latest-available-version)」を参照してください。
   + {{111122223333}} を、アカウント ID に置き換えて、{{AmazonEKSVPCCNIRole}} を作成した[既存の IAM 役割](cni-iam-role.md#cni-iam-role-create-role)の名前に置き換えます。ロールを指定するには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、「[クラスターの IAM OIDC プロバイダーを作成するには](enable-iam-roles-for-service-accounts.md)」を参照してください。

     ```
     aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.20.3-eksbuild.1 \
         --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole
     ```

     Amazon EKS アドオンのデフォルト設定と競合するカスタム設定を現在のアドオンに適用した場合、作成が失敗する可能性があります。作成に失敗した場合、問題解決に役立つエラーが表示されます。または、前のコマンドに `--resolve-conflicts OVERWRITE` を追加することもできます。これにより、アドオンは既存のカスタム設定を上書きできます。アドオンを作成したら、カスタム設定で更新できます。

1. クラスターの Kubernetes バージョン用のアドオンの最新バージョンがクラスターに追加されたことを確認します。{{マイクラスター}} の部分は、自分のクラスター名に置き換えます。

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

   アドオンの作成が完了するまでに数秒かかる場合があります。

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

   ```
   v1.20.3-eksbuild.1
   ```

1. 元のアドオンに対してカスタム設定を行った場合は、Amazon EKS アドオンを作成する前に、前のステップで保存した設定を使用して、カスタム設定で EKS アドオンを更新します。「[Amazon VPC CNI を更新する (Amazon EKS アドオン)](vpc-add-on-update.md)」のステップを実行してください。

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) を参照してください。