

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

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

# Amazon EKS アドオンを作成する
<a name="creating-an-add-on"></a>

Amazon EKS アドオンはAmazon EKS クラスター用のアドオンソフトウェアです。すべての Amazon EKS アドオン:
+ 最新のセキュリティパッチやバグ修正が含まれています。
+ AWS によって Amazon EKS で動作することが検証されています。
+ アドオンソフトウェアの管理に必要な作業量を削減します。

Amazon EKS アドオンは `eksctl`、AWS マネジメントコンソール、AWS CLI を使用して作成できます。アドオンに IAM ロールが必要な場合、ロールの作成の詳細については [Amazon EKS アドオンの特定のア](eks-add-ons.md) ドオンの詳細を参照してください。

## 前提条件
<a name="creating-an-add-on-prereq"></a>

アドオンを作成する前に、次を完了します:
+ クラスターのアドオンを作成する前に、そのクラスターが存在している必要があります。詳細については、[Amazon EKS クラスターを作成します。](create-cluster.md) を参照してください。
+ アドオンに IAM ロールが必要かどうかを確認します。詳細については、[Amazon EKS アドオンバージョンのクラスターとの互換性を検証する](addon-compat.md) を参照してください。
+ Amazon EKS アドオンバージョンがクラスターと互換性があることを検証します。詳細については、[Amazon EKS アドオンバージョンのクラスターとの互換性を検証する](addon-compat.md) を参照してください。
+ 使用しているコンピュータまたは AWS クラウドシェル に、`eksctl` コマンドラインツールのバージョン 0.190.0 以降がインストールされていることを確認します。詳細については、`eksctl` ウェブサイトの「[インストール](https://eksctl.io/installation/)」を参照してください。

## 手順
<a name="creating-an-add-on-procedure"></a>

Amazon EKS アドオンは `eksctl`、AWS マネジメントコンソール、AWS CLI を使用して作成できます。アドオンに IAM ロールが必要な場合、ロールの作成の詳細については「[使用可能な AWS](workloads-add-ons-available-eks.md) の Amazon EKS アドオン」の特定のアドオンの詳細を参照してください。

## アドオンの作成 (eksctl)
<a name="_create_add_on_eksctl"></a>

1. クラスターバージョンで利用可能なアドオンの名前を表示します。{{1.35}} をお持ちのクラスターのバージョンに置き換えます。

   ```
   eksctl utils describe-addon-versions --kubernetes-version 1.35 | grep AddonName
   ```

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

   ```
   "AddonName": "aws-ebs-csi-driver",
                           "AddonName": "coredns",
                           "AddonName": "kube-proxy",
                           "AddonName": "vpc-cni",
                           "AddonName": "adot",
                           "AddonName": "dynatrace_dynatrace-operator",
                           "AddonName": "upbound_universal-crossplane",
                           "AddonName": "teleport_teleport",
                           "AddonName": "factorhouse_kpow",
                           [...]
   ```

1. 作成するアドオンで使用できるバージョンを表示します。{{1.35}} をお持ちのクラスターのバージョンに置き換えます。{{name-of-addon}} を表示するバージョンのアドオン名に置き換えます。名前は前のステップで返された名前のいずれかである必要があります。

   ```
   eksctl utils describe-addon-versions --kubernetes-version 1.35 --name name-of-addon | grep AddonVersion
   ```

   次の出力は`vpc-cni` という名前のアドオンに対して返される内容の例です。このアドオンには複数のバージョンがあることがわかります。

   ```
   "AddonVersions": [
       "AddonVersion": "v1.12.0-eksbuild.1",
       "AddonVersion": "v1.11.4-eksbuild.1",
       "AddonVersion": "v1.10.4-eksbuild.1",
       "AddonVersion": "v1.9.3-eksbuild.1",
   ```

   1. 作成するアドオンが Amazon EKS か AWS マーケットプレイス アドオンか判断します。AWS マーケットプレイス にはサードパーティ製のアドオンがあり、アドオンを作成するために追加のステップを実行する必要があります。

      ```
      eksctl utils describe-addon-versions --kubernetes-version 1.35 --name name-of-addon | grep ProductUrl
      ```

      出力が返されない場合、アドオンは Amazon EKS です。出力が返された場合、アドオンは AWS マーケットプレイス アドオンです。次の出力は`teleport_teleport` という名前のアドオンのものです。

      ```
      "ProductUrl": "https://aws.amazon.com/marketplace/pp?sku=3bda70bb-566f-4976-806c-f96faef18b26"
      ```

      返される URL を含んだ AWS マーケットプレイス のアドオンの詳細について説明します。アドオンにサブスクリプションが必要な場合、AWS マーケットプレイス を通じてアドオンにサブスクライブできます。AWS マーケットプレイス からアドオンを作成する場合、アドオンの作成に使用する [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)には[AWSServiceRoleForAWSライセンスマネージャーRole](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html) のサービスにリンクされたロールを作成する許可が必要です。IAM エンティティへの許可の割り当てに関する詳細については「IAM ユーザーガイド」の「[IAM アイデンティティ許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

1. Amazon EKS アドオンを作成します。コマンドをコピーし、次のように {{user-data}} を置き換えます:
   + {{マイクラスター}} の部分は自分のクラスター名に置き換えます。
   + {{アドオン名}} を作成するアドオンの名前に置き換えます。
   + 最新バージョンよりも前のバージョンのアドオンが必要な場合、{{最終}} を使用する前のステップの出力で返されたバージョン番号に置き換えます。
   + アドオンがサービスアカウントロールを使用している場合、{{111122223333}} をアカウント ID に置き換え、{{role-name}} をロールの名前に置き換えます。サービスアカウントのロールを作成する手順については作成するアドオンのドキュメントを参照してください。アドオンのリストについては、[AWS アドオン](workloads-add-ons-available-eks.md) を参照してください。サービスアカウント役割を指定するにはクラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、[クラスターの IAM OIDC プロバイダーを作成するには](enable-iam-roles-for-service-accounts.md) を参照してください。

     アドオンがサービスアカウントロールを使用していない場合、`--service-account-role-arnarn:aws:iam::111122223333:role/role-name` を削除してください。
   + このコマンド例はアドオンの既存のセルフマネージドバージョンがある場合、その設定を上書きします。既存のセルフマネージド型アドオンの設定を上書きしたくない場合、{{--force}} オプションを削除してください。オプションを削除し、Amazon EKS アドオンが既存のセルフマネージド型アドオンの設定を上書きする必要がある場合、Amazon EKS アドオンの作成が失敗します。その場合、競合を解決するためのエラーメッセージが表示されます。このオプションを指定する前に、自分が管理する必要がある設定を Amazon EKS アドオンが管理していないことを確認してください。これらの設定はこのオプションの指定により上書きされます。

     ```
     eksctl create addon --cluster my-cluster --name name-of-addon --version latest \
         --service-account-role-arn arn:aws:iam::111122223333:role/role-name --force
     ```

     コマンドにすべての利用可能なオプションのリストを確認できます。

     ```
     eksctl create addon --help
     ```

     利用可能なオプションの詳細については「`eksctl` ドキュメント」の「[アドオン](https://eksctl.io/usage/addons/)」を参照してください。

## アドオンの作成 (AWS コンソール）
<a name="create_add_on_console"></a>

1. [Amazon EKS コンソール](https://console.aws.amazon.com/eks/home#/clusters)を開きます。

1. 左のナビゲーションペインで **[クラスター]** を選択してください。

1. アドオンを作成するクラスターの名前を選択してください。

1. **[アドオン]** タブを選択してください。

1. **[その他のアドオンを入手]** を選択してください。

1. **[アドオンの選択]** ページで、クラスターに追加するアドオンを選択してください。**[Amazon EKS アドオン]** と **[AWS マーケットプレイス アドオン]** は必要な数だけ追加できます。

   **AWS マーケットプレイス** アドオンの場合、アドオンを作成するために使用する [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)にはAWS ライセンスマネージャー からアドオンの資格を読み取る許可が必要です。AWSライセンスマネージャー はユーザーに代わってライセンスを管理する AWS リソースを許可する「[AWSServiceRoleForAWSライセンスマネージャーRole](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html)」のサービスリンクロール (SLR が必要になります。SLR はアカウントごとに 1 回限りの要件であり、アドオンやクラスターごとに別々の SLR を作成する必要はありません。[IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)への許可の割り当ての詳細については「IAM ユーザーガイド」の「[IAM ID のアクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

   インストールする **AWS マーケットプレイス アドオン**がリストされていない場合はページ番号をクリックして追加のページ結果を表示するか、または検索ボックスで検索できます。**[フィルタリング] オプション**で、**[カテゴリ]**、**[ベンダー]**、または **[料金モデル]** によってフィルタリングして、検索結果からアドオンを選択することもできます。インストールするアドオンを選択したら、**[次へ]** を選択してください。

1. **[選択したアドオンセッティングの設定]** ページで、次の操作を行います：

   1. **[サブスクリプションオプションを表示]** を選択し、**[サブスクリプションのオプション]** フォームを開きます。**[料金の詳細]** と **[法務]** のセクションを確認し、**[登録]** ボタンを選択して続行します。

   1. **[バージョン]** で、インストールするバージョンを選択してください。作成する個々のアドオンが別のバージョンを推奨している場合を除き、**[最新]** と表示されたバージョンをお勧めします。アドオンに推奨バージョンがあるかどうかを確認するには作成しているアドオンのドキュメントを参照してください。アドオンのリストについては、[AWS アドオン](workloads-add-ons-available-eks.md) を参照してください。

   1. アドオンの役割を設定するにはEKS ポッド・アイデンティティー IAM ロールとサービスアカウント用の IAM 役割 (IRSA) の 2 つのオプションがあります。希望するオプションについては以下の適切なステップに従います。選択したすべてのアドオンの **[ステータス]** で **[サブスクリプションが必要]** と表示されている場合、**[次へ]** を選択してください。クラスターが作成された後にサブスクライブするまで、それ以上これらのアドオンを設定することはできません。**[ステータス]** で **[サブスクリプションが必要]** と表示されていないアドオンの場合、次を実行してください：

      1. **[サービスアカウント用の ポッド・アイデンティティー IAM ロール]** で、既存の EKS Pod Identity IAM ロールを使用するか、または **[推奨役割を作成]** ボタンを使用して EKS Pod Identity IAM 役割を作成できます。このフィールドには適切な信頼ポリシーを持つオプションのみが表示されます。選択する役割がない場合は一致する信頼ポリシーを持つ既存の役割が存在しないことになります。選択したアドオンのサービスアカウント用の EKS Pod Identity IAM ロールを設定するには **[推奨役割を作成]** を選択してください。役割作成ウィザードが別のウィンドウで開きます。ウィザードは次のように役割の情報を自動的に入力してください。EKS Pod Identity IAM ロールを作成するアドオンごとに、IAM ウィザードのステップを次のように実行してください。
         + **[信頼されたエンティティを選択]** ステップでは **[EKS]** の AWS サービスオプションと **[EKS - Pod Identity]** のユースケースが事前に選択されており、アドオンのために適切な信頼ポリシーが自動的に入力されます。例えば、役割は「[EKS Pod Identity の利点](pod-identities.md#pod-id-benefits)」で詳述されているように、pods.eks.amazonaws.com の IAM プリンシパルを含む適切な信頼ポリシーを使用して作成されます。[**次へ**] を選択してください。
         + **[アクセス許可の追加]** ステップでは役割ポリシー用の適切なマネージドポリシーがアドオンのために事前に選択されています。例えば、Amazon VPC CNI アドオンの場合、役割は「[Amazon VPC CNI Kubernetes用プラグイン](workloads-add-ons-available-eks.md#add-ons-vpc-cni)」で詳述されているように、マネージドポリシー `AmazonEKS_CNI_Policy` を使用して作成されます。[**次へ**] を選択します。
         + **[名前、確認、作成]** のステップにおいて、**[役割名]** で、アドオンのためにデフォルトの役割名が自動的に入力されます。例えば、**Amazon VPC CNI** アドオンの場合、役割は **AmazonEKSPodIdentityAmazonVPCCNIRole** という名前で作成されます。**[説明]** ではアドオンのためにデフォルトの適切な説明が自動的に入力されます。例えば、Amazon VPC CNI アドオンの場合、役割は AWS リソースにアクセスすることを「**Amazon EKS クラスターで実行されているポッドに許可します**」という説明で作成されます。**[信頼ポリシー]** で、アドオンのために事前入力された信頼ポリシーを表示します。[**ロールの作成**] を選択してください。

           注: デフォルトのロール名を保持すると、EKS は新しいクラスターでアドオン用のロールを事前に選択したり、既存のクラスターにアドオンを追加したりできます。この名前は引き続き上書きでき、ロールはクラスター全体でアドオンのために使用できますが、ロールはドロップダウンから手動で選択する必要があります。

      1. **[ステータス]** が **[サブスクリプションが必要]** でなく、IRSA を使用して役割を設定するアドオンについてはIAM ポリシーを作成して役割にアタッチするために作成するアドオンに関するドキュメントを参照してください。アドオンのリストについては、[AWS アドオン](workloads-add-ons-available-eks.md) を参照してください。IAM ロールを選択するにはクラスター用に OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、[クラスターの IAM OIDC プロバイダーを作成するには](enable-iam-roles-for-service-accounts.md) を参照してください。

      1. **[オプション設定のセッティング]** を選択してください。

      1. アドオンに設定が必要な場合、**設定値** ボックスに入力します。アドオンに設定情報が必要かどうかを判断するには作成するアドオンのドキュメントを参照してください。アドオンのリストについては、[AWS アドオン](workloads-add-ons-available-eks.md) を参照してください。

      1. **[競合解決方法]** で利用可能なオプションをいずれか選択してください。**[コンフリクト解決方法]** で **[上書き]** を選択すると、既存のアドオンでの 1 つ以上の設定が、Amazon EKS アドオンの設定で上書きされます。このオプションが有効でない状態で既存の設定との競合が発生する場合はオペレーションが失敗します。表示されたエラーメッセージを使用して、競合をトラブルシューティングできます。このオプションを選択する前に、自分で管理する必要のある設定が、Amazon EKS アドオンにより管理されていないことを確認します。

      1. アドオンを特定の名前空間にインストールする場合は、その名前空間を **[名前空間]** フィールドに入力します。AWS アドオンとコミュニティアドオンでは、アドオンをインストールするカスタム Kubernetes 名前空間を定義できます。詳細については、[アドオン用のカスタム名前空間](eks-add-ons.md#custom-namespace) を参照してください。

      1. **[次へ]** を選択します。

1. **[確認と追加]** ページで、**[作成]** を選択してください。アドオンのインストールが完了した後、インストールしたアドオンが表示されます。

1. インストールしたアドオンにサブスクリプションが必要な場合、次のステップを実行してください:

   1. アドオンの右下隅にある **[サブスクライブ]** ボタンを選択してください。AWS マーケットプレイス のアドオンのページが表示されます。**[製品概要]** や **[価格情報]** など、アドオンに関する情報をお読みください。

   1. アドオンページの右上にある **[サブスクライブを続ける]** ボタンを選択してください。

   1. **[利用規約]** をよくお読みください。利用規約に同意する場合、**[利用規約に同意]** を選択してください。サブスクリプションの処理に数分かかることがあります。サブスクリプションの処理中、**[Amazon EKS コンソールに戻る]** ボタンがグレー表示されます。

   1. サブスクリプションの処理が完了すると、**[Amazon EKS コンソールに戻る]** ボタンがグレー表示されなくなります。ボタンを選択し、クラスターの Amazon EKS コンソールの **[アドオン]** タブに戻ります。

   1. サブスクライブしているアドオンについては **[削除して再インストール]** を選択し、次に **[アドオンの再インストール]** を選択してください。アドオンのインストールに数分かかることがあります。インストールが完了すると、アドオンを設定できます。

## アドオンの作成 (AWS CLI)
<a name="create_add_on_shared_aws_cli"></a>

1. ご使用のデバイスまたは AWS CloudShell で、バージョン `2.12.3` 以降、または AWS コマンドラインインターフェイス (AWS CLI) のバージョン `1.27.160` 以降が必要です。現在のバージョンを確認するには、`aws --version | cut -d / -f2 | cut -d ' ' -f1` を参照してください。`yum`、`apt-get`、macOS 用の Homebrew などのパッケージマネージャーは、多くの場合 AWS CLI の最新バージョンより数バージョン古くなっています。最新バージョンをインストールするには、「* AWS コマンドラインインターフェイスユーザーガイド*」の「[インストール](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)」および「[aws configure を使用したクイック設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)」を参照してください。AWS クラウドシェル にインストールされている AWS CLI バージョンも最新バージョンより数バージョン遅れることがあります。更新するには、「*AWS CloudShell ユーザーガイド*」の「[ホームディレクトリへの AWS CLI のインストール](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software)」を参照してください。

1. 利用可能なアドオンを確認します。利用可能なすべてのアドオン、種類、発行元を確認できます。AWS マーケットプレイスを介して利用可能なアドオンの URL も確認できます。{{1.35}} をお持ちのクラスターのバージョンに置き換えます。

   ```
   aws eks describe-addon-versions --kubernetes-version 1.35 \
       --query 'addons[].{MarketplaceProductUrl: marketplaceInformation.productUrl, Name: addonName, Owner: owner, Publisher: publisher, Type: type}' --output table
   ```

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

   ```
   ---------------------------------------------------------------------------------------------------------------------------------------------------------
   |                                                                 DescribeAddonVersions                                                                 |
   +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
   |                     MarketplaceProductUrl                     |             Name              |      Owner       |  Publisher   |        Type         |
   +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
   |  None                                                         |  aws-ebs-csi-driver           |  aws             |  eks         |  storage            |
   |  None                                                         |  coredns                      |  aws             |  eks         |  networking         |
   |  None                                                         |  kube-proxy                   |  aws             |  eks         |  networking         |
   |  None                                                         |  vpc-cni                      |  aws             |  eks         |  networking         |
   |  None                                                         |  adot                         |  aws             |  eks         |  observability      |
   | https://aws.amazon.com/marketplace/pp/prodview-brb73nceicv7u |  dynatrace_dynatrace-operator |  aws-marketplace |  dynatrace   |  monitoring         |
   | https://aws.amazon.com/marketplace/pp/prodview-uhc2iwi5xysoc |  upbound_universal-crossplane |  aws-marketplace |  upbound     |  infra-management   |
   | https://aws.amazon.com/marketplace/pp/prodview-hd2ydsrgqy4li |  teleport_teleport            |  aws-marketplace |  teleport    |  policy-management  |
   | https://aws.amazon.com/marketplace/pp/prodview-vgghgqdsplhvc |  factorhouse_kpow             |  aws-marketplace |  factorhouse |  monitoring         |
   |  [...]                                                        |  [...]                        |  [...]           |  [...]       |  [...]              |
   +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
   ```

   出力が異なる場合があります。この出力例ではタイプ `networking` で利用可能なアドオンが 3 種類あり、タイプ `eks` の発行元でアドオンが 5 種類あります。`Owner` 列に `aws-marketplace` があるアドオンはインストールする前にサブスクリプションが必要な場合があります。URL にアクセスしてアドオンの詳細を確認したり、アドオンをサブスクライブしたりできます。

1. アドオンごとに利用可能なバージョンを確認できます。{{1.35}} をクラスターのバージョンに置き換え、{{vpc-cni}} を前のステップで返されたアドオンの名前に置き換えます。

   ```
   aws eks describe-addon-versions --kubernetes-version 1.35 --addon-name vpc-cni \
       --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table
   ```

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

   ```
   ------------------------------------------
   |          DescribeAddonVersions         |
   +-----------------+----------------------+
   | Defaultversion  |       Version        |
   +-----------------+----------------------+
   |  False          |  v1.12.0-eksbuild.1  |
   |  True           |  v1.11.4-eksbuild.1  |
   |  False          |  v1.10.4-eksbuild.1  |
   |  False          |  v1.9.3-eksbuild.1   |
   +-----------------+----------------------+
   ```

   `Defaultversion` 列に `True` と表示されているバージョンはデフォルトでアドオンが作成されたバージョンです。

1. (オプション) 次のコマンドを実行して、選択したアドオンの設定オプションを調べます：

   ```
   aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.12.0-eksbuild.1
   ```

   ```
   {
       "addonName": "vpc-cni",
       "addonVersion": "v1.12.0-eksbuild.1",
       "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Cri\":{\"additionalProperties\":false,\"properties\":{\"hostPath\":{\"$ref\":\"#/definitions/HostPath\"}},\"title\":\"Cri\",\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CONFIGURE_RPFILTER\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"HostPath\":{\"additionalProperties\":false,\"properties\":{\"path\":{\"type\":\"string\"}},\"title\":\"HostPath\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"cri\":{\"$ref\":\"#/definitions/Cri\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"VpcCni\",\"type\":\"object\"}}}"
   }
   ```

   出力は標準の JSON スキーマです。

   上記のスキーマで使用できる有効な設定値の例 (JSON フォーマット) を次に示します。

   ```
   {
     "resources": {
       "limits": {
         "cpu": "100m"
       }
     }
   }
   ```

   上記のスキーマで使用できる有効な設定値の例 (YAML フォーマット) を次に示します。

   ```
     resources:
       limits:
         cpu: 100m
   ```

1. アドオンに IAM アクセス許可が必要かどうかを確認します。その場合は(1 EKS Pod Identity またはサービスアカウントの IAM ロール (IRSA 使用するかどうかを決定し、(2 アドオンで使用する IAM ロールの ARN を決定し、(3) アドオンで使用される Kubernetes サービスアカウントの名前を決定する必要があります。詳細については、[Amazon EKS アドオンに関する IAM 情報を取得する](retreive-iam-info.md) を参照してください。
   + Amazon EKS ではアドオンが EKS Pod Identity をサポートしている場合はEKS Pod Identity の使用を推奨しています。そのためには[Pod Identity エージェントがクラスター にインストールされている](pod-identities.md)必要があります。アドオンで Pod Identity を使用する場合の詳細については「[Amazon EKS アドオンの IAM ロール](add-ons-iam.md)」を参照してください。
   + アドオンまたはクラスターが EKS Pod Identity 用にセットアップされていない場合はIRSA を使用します。[クラスターで IRSA が設定されていることを確認します。](iam-roles-for-service-accounts.md)
   +  [Amazon EKS アドオンのドキュメントを参照して、アドオンに IAM アクセス許可と、関連する Kubernetes サービスアカウントの名前が必要かどうかを確認します。](eks-add-ons.md)

     1. Amazon EKS アドオンを作成します。デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行してください：
   + {{マイクラスター}} の部分は自分のクラスター名に置き換えます。
   + {{vpc-cni}} を前のステップの出力で返された作成するアドオン名に置き換えます。
   + {{version-number}} を使用する前のステップの出力で返されたバージョンに置き換えます。
   + カスタム Kubernetes 名前空間にアドオンをインストールする場合は、`--namespace-config 'namespace=<my-namespace>` オプションを追加してください。このオプションは、AWS アドオンとコミュニティアドオンでのみ使用できます。詳細については、[アドオン用のカスタム名前空間](eks-add-ons.md#custom-namespace) を参照してください。
   + アドオンに IAM アクセス許可が必要ない場合は {{<service-account-configuration>}} を削除してください。
   + 次のいずれかを行います：
     + アドオンが (1) IAM 許可が必要で、(2) クラスターが EKS Pod Identity を使用している場合は{{<service-account-configuration>}} を次の Pod Identity の関連付けに置き換えます。{{<service-account-name>}} をアドオンで使用されるサービスアカウント名に置き換えます。{{<role-arn>}} を IAM ロールの ARN に置き換えます。ロールにはEKS Pod Identity に必要な信頼ポリシーが必要です。

       ```
       --pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
       ```
     + アドオンが (1) IAM アクセス許可が必要で、(2) クラスターが IRSA を使用している場合は{{<service-account-configuration>}} を次の IRSA 設定に置き換えます。{{111122223333}} を、アカウント ID に置き換えます。また、{{role-name}} を、作成した既存の IAM ロールの名前に置き換えます。ロールの作成手順については作成するアドオンのドキュメントを参照してください。アドオンのリストについては、[AWS アドオン](workloads-add-ons-available-eks.md) を参照してください。サービスアカウント役割を指定するにはクラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、[クラスターの IAM OIDC プロバイダーを作成するには](enable-iam-roles-for-service-accounts.md) を参照してください。

       ```
       --service-account-role-arn arn:aws:iam::111122223333:role/role-name
       ```
   + このコマンド例はアドオンの既存のセルフマネージドバージョンの `--configuration-values` オプションがある場合、それを上書きします。これを、文字列やファイル入力などの目的の設定値に置き換えます。設定値を指定したくない場合、`--configuration-values` オプションを削除します。AWS CLI に既存のセルフマネージド型アドオンの設定を上書きされたくない場合、{{--resolve-conflicts OVERWRITE}} オプションを削除してください。オプションを削除し、Amazon EKS アドオンが既存のセルフマネージド型アドオンの設定を上書きする必要がある場合、Amazon EKS アドオンの作成が失敗します。その場合、競合を解決するためのエラーメッセージが表示されます。このオプションを指定する前に、自分が管理する必要がある設定を Amazon EKS アドオンが管理していないことを確認してください。これらの設定はこのオプションの指定により上書きされます。

     ```
     aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \
          <service-account-configuration> --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' --resolve-conflicts OVERWRITE
     ```

     ```
     aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \
         <service-account-configuration> --configuration-values 'file://example.yaml' --resolve-conflicts OVERWRITE
     ```

     使用可能なすべてのオプションのリストについては「Amazon EKS コマンドラインリファレンス」の「` [create-addon](https://docs.aws.amazon.com/cli/latest/reference/eks/create-addon.html) `」を参照してください。作成したアドオンが前のステップの `Owner` 列に `aws-marketplace` が一覧表示されている場合、作成が失敗して次のエラーと同様なエラーメッセージが表示されることがあります。

     ```
     {
         "addon": {
             "addonName": "addon-name",
             "clusterName": "my-cluster",
             "status": "CREATE_FAILED",
             "addonVersion": "version",
             "health": {
                 "issues": [
                     {
                         "code": "AddonSubscriptionNeeded",
                         "message": "You are currently not subscribed to this add-on. To subscribe, visit the AWS Marketplace console, agree to the seller EULA, select the pricing type if required, then re-install the add-on"
                     }
                 ]
             }
         }
     }
     ```

     前の出力のエラーと同様なものが表示された場合、前のステップに出力された URL にアクセスしてアドオンをサブスクライブしてください。サブスクライブしたら `create-addon` コマンドを再実行してください。