このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Amazon EKS アドオン
アドオンは、Kubernetes アプリケーションをサポートする操作機能を提供するソフトウェアですが、アプリケーションに固有のものではありません。これには、監視エージェントや Kubernetes ドライバなどのソフトウェアが含まれます。これらのソフトウェアにより、クラスターは、ネットワーク、コンピューティング、およびストレージ用の基盤となる AWS リソースと相互作用できるようになります。アドオンソフトウェアは、通常、Kubernetes コミュニティや AWS のようなクラウドプロバイダ、またはサードパーティーベンダーによって構築、保守されます。Amazon EKS は、Amazon VPC CNI plugin for Kubernetes、kube-proxy、および、CoreDNS などのセルフマネージド型アドオンを、すべてのクラスターで自動的にインストールします。VPC CNI アドオンは Amazon EKS Hybrid Nodes と互換性がなく、ハイブリッドノードにデプロイされないことに注意してください。必要に応じて、アドオンのデフォルト設定は変更と更新が可能です。
Amazon EKS アドオンはAmazon EKS クラスター用に厳選されたアドオンセットのインストールと管理を実行してください。Amazon EKS アドオンには最新のセキュリティパッチ、バグ修正が含まれており、また Amazon EKS と連携するために AWS により検証されています。Amazon EKS アドオンを使用すると、Amazon EKS クラスターの安全性と安定性を一貫して保証でき、アドオンのインストール、設定、および更新に必要となる作業量を削減できます。セルフマネージド型のアドオン (kube-proxy など) がすでにクラスターで実行されており、Amazon EKS アドオンとして利用可能な場合、kube-proxy Amazon EKS アドオンをインストールすれば、その機能からのメリットを活用できるようになります。
Amazon EKS API を使用することで、Amazon EKS アドオンのための、Amazon EKS 管理の特定の設定フィールドを更新できます。Amazon EKS で管理されていない設定フィールドは、アドオンの起動後に Kubernetes クラスター内で直接変更することもできます。これには、アドオン向けの特定の設定フィールドの定義が含まれます (該当する場合)。これらの変更は一度実行されると Amazon EKS によって上書きされることはありません。これは、Kubernetes によるサーバー側の適用機能を使用して実現しています。詳細については、Amazon EKS アドオンのためにカスタマイズできるフィールドを決定する を参照してください。
Amazon EKS アドオンはどの Amazon EKS ノードタイプでも使用できます。詳細については、ノードを使用してコンピューティングリソースを管理する を参照してください。
Amazon EKS アドオンはAmazon EKS API、AWS マネジメントコンソール、AWS CLI、および eksctl を使用して、追加、更新、または削除ができます。Amazon EKS アドオンはAWS クラウドフォーメーション を使用しても作成できます。
考慮事項
Amazon EKS アドオンを使用する場合は次の点を考慮してください:
-
クラスターでアドオンの設定を行うにはアドオンを操作するための IAM 許可を、IAM プリンシパルが持っている必要があります。詳細については「Amazon Elastic Kubernetes Service で定義されるアクション」で、
Addonの名前ごとにアクションを参照してください。 -
Amazon EKS アドオンはクラスター用にプロビジョニングまたは設定するノードで実行されます。ノードタイプには Amazon EC2 インスタンス、Fargate、ハイブリッドノードがあります。
-
Amazon EKS で管理されていないフィールドを変更して、Amazon EKS アドオンのインストールをカスタマイズできます。詳細については、Amazon EKS アドオンのためにカスタマイズできるフィールドを決定する を参照してください。
-
AWS マネジメントコンソール を使用してクラスターを作成すると、Amazon EKS
kube-proxy、Amazon VPC CNI plugin for Kubernetes、および CoreDNS Amazon EKS アドオンが自動的にクラスターに追加されます。また、eksctlを使用してconfigファイルでクラスターを作成する場合はeksctlは Amazon EKS アドオンを持つクラスターを作成できます。configファイルなしで (あるいは他のツールを使用して)eksctlによりクラスターを作成する場合は、Amazon EKS アドオンではなく、セルフマネージドのkube-proxyや、Amazon VPC CNI plugin for Kubernetes、および CoreDNS アドオンがインストールされます。これらは自分で管理することが可能で、また、クラスターの作成後に Amazon EKS アドオンを手動で追加することもできます。クラスターの作成にどの方法を使用するかにかかわらず、VPC CNI アドオンはハイブリッドノードにインストールされません。 -
eks:addon-cluster-adminClusterRoleBindingはcluster-adminClusterRoleをeks:addon-managerKubernetes の ID にバインドします。このロールにはeks:addon-managerID が Kubernetes 名前空間を作成し、アドオンを名前空間にインストールするために必要なアクセス許可があります。eks:addon-cluster-adminClusterRoleBindingが削除されても、Amazon EKS クラスターは引き続き機能しますが、Amazon EKS はアドオンを管理できなくなります。次のプラットフォームバージョンから始まるすべてのクラスターは新しいClusterRoleBindingバージョンを使用します。 -
AWS からの EKS アドオンのサブセットは Amazon EKS Hybrid Nodes との互換性が検証されています。詳細については、AWS アドオン の互換性の表を参照してください。
アドオン用のカスタム名前空間
コミュニティアドオンと AWS アドオンの場合、アドオンの作成時に必要に応じてカスタム名前空間を指定できます。特定の名前空間にアドオンをインストールした後で、その名前空間を変更するには、いったんアドオンを削除してから再作成する必要があります。
名前空間を指定しないと、アドオンには事前定義された名前空間が使用されます。
カスタム名前空間を使用すると、EKS クラスター内でアドオンオブジェクトを効率よく分類整理できるようになります。この柔軟性により、アドオンを運用上のニーズや既存の名前空間戦略に合わせて整理できます。
アドオンを作成するときに、カスタム名前空間を設定できます。詳細については、Amazon EKS アドオンを作成する を参照してください。
アドオン向けに事前定義された名前空間を取得する
アドオン向けに事前定義された名前空間は、名前空間を指定しない場合にアドオンがインストールされる名前空間です。
アドオン向けに事前定義された名前空間を取得するには、次のコマンドを使用します。
aws eks describe-addon-versions --addon-name <addon-name> --query "addons[].defaultNamespace"
出力の例:
[ "kube-system" ]
Amazon EKS 自動モードの考慮事項
Amazon EKS 自動モードには以下のような重要なクラスター機能を提供する機能が含まれています:
-
ポッドネットワーキング
-
サービスネットワーキング
-
クラスター DNS
-
自動スケーリング
-
ブロックストレージ
-
ロードバランサーコントローラー
-
Pod Identity エージェント
-
ノードモニタリングエージェント
自動モードコンピューティングでは以下に示すような、一般的に使用される多くの EKS アドオンが冗長になります:
-
Amazon VPC CNI
-
kube-proxy
-
CoreDNS
-
Amazon EBS CSI ドライバー
-
EKS Pod Identity エージェント
ただし、クラスターが自動モードをセルフマネージド EC2 インスタンス、マネージド型ノードグループ、AWS Fargate などの他のコンピューティングオプションと組み合わせる場合、これらのアドオンは引き続き必要です。AWS はアンチアフィニティルールを用いて EKS アドオンを強化し、アドオンポッドがサポートされているコンピュートタイプのみに自動的にスケジュールされるようにしています。さらに、ユーザーは EKS アドオン DescribeAddonVersions API を活用して、各アドオンとその特定のバージョンでサポートされている computeTypes を検証できるようになりました。加えて EKS 自動モードでは上記のコントローラーは AWS の所有するインフラストラクチャで実行されます。そのため、EKS 自動モードを他のタイプのコンピューティングと組み合わせて使用している場合をのぞいて、これらのコントローラーをアカウントで見ることすらないかもしれません。組み合わせて使用している場合はクラスターにインストールしたコントローラーが表示されます。
既存のクラスターで EKS 自動モードを有効にする予定がある場合は、特定のアドオンのバージョンアップグレードが必要になる場合があります。詳細については「EKS 自動モードの 必要なアドオンバージョン」を参照してください。
サポート
AWS はサポートレベルが異なる複数のタイプのアドオンを発行します。
-
AWS アドオン: これらのアドオンは によって構築され、完全にサポートされていますAWS。
-
AWS アドオンを使用して、Amazon EFS などのAWS 他のサービスと連携します。
-
詳細については、AWS アドオン を参照してください。
-
-
AWS マーケットプレイス アドオン: これらのアドオンは独立したAWSパートナーによってスキャンAWSされ、サポートされます。
-
マーケットプレイス アドオンを使用して、Splunk によるモニタリングなど、クラスターに価値のある高度な機能を追加します。
-
詳細については、AWS マーケットプレイス アドオン を参照してください。
-
-
コミュニティアドオン: これらのアドオンは によってスキャンされますAWSが、オープンソースコミュニティによってサポートされます。
-
コミュニティアドオンを使用すると、Kubernetes メトリクスサーバーなどの一般的なオープンソースソフトウェアのインストールの複雑さを軽減できます。
-
コミュニティアドオンは AWS によってソースからパッケージ化され、AWS はバージョンの互換性についてのみコミュニティアドオンを検証します。
-
詳細については、コミュニティアドオン を参照してください。
-
次の表は各アドオンタイプのサポート範囲の詳細を示しています:
| Category | 機能 | AWSアドオン | AWS マーケットプレイス アドオン | コミュニティアドオン |
|---|---|---|---|---|
|
開発 |
AWS によって構築されました |
はい |
いいえ |
はい |
|
開発 |
AWS によって検証済み |
はい |
いいえ |
はい* |
|
開発 |
AWS パートナーによって検証済み |
いいえ |
はい |
いいえ |
|
メンテナンス |
AWS によってスキャンされました |
はい |
はい |
はい |
|
メンテナンス |
AWS によって修正されました |
はい |
いいえ |
はい |
|
メンテナンス |
AWS パートナーによってパッチが適用されました |
いいえ |
はい |
いいえ |
|
ディストリビューション |
AWS によって公開 |
はい |
いいえ |
はい |
|
ディストリビューション |
AWS パートナーによって公開 |
いいえ |
はい |
いいえ |
|
サポート |
AWSによる基本インストールサポート |
はい |
はい |
はい |
|
サポート |
フルAWSサポート |
はい |
いいえ |
いいえ |
|
サポート |
完全なAWSパートナーサポート |
いいえ |
はい |
いいえ |
*: コミュニティアドオンの検証には、Kubernetes バージョンの互換性のみが含まれます。例えば、クラスターにコミュニティアドオンをインストールすると、AWS はクラスターの Kubernetes バージョンと互換性があるかどうかを確認します。
AWS マーケットプレイス アドオンは AWS の外部ソースから追加のソフトウェア依存関係をダウンロードできます。これらの外部依存関係は によってスキャンまたは検証されませんAWS。外部の依存関係を取得する AWS マーケットプレイス アドオンをデプロイするときはセキュリティ要件を考慮してください。