Amazon VPC CNI plugin for Kubernetes Amazon EKS アドオンの作成 - Amazon EKS

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

本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

Amazon VPC CNI plugin for Kubernetes Amazon EKS アドオンの作成

Amazon VPC CNI plugin for Kubernetes Amazon EKS アドオンを作成するには、次のステップに従います。

開始する前に、考慮事項を確認してください。詳細については、「考慮事項」を参照してください。

前提条件

Amazon VPC CNI plugin for Kubernetes Amazon EKS アドオンの前提条件を次に示します。

  • 既存の Amazon EKS クラスター。デプロイするには、「Amazon EKS の使用を開始する」を参照してください。

  • クラスター用の既存 AWS Identity and Access Management IAM OpenID Connect (OIDC) プロバイダー。既に存在しているかどうかを確認する、または作成するには「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。

  • AmazonEKS_CNI_Policy IAM ポリシー (クラスターが IPv4 ファミリーを使用している場合)、または IPv6 ポリシー (クラスターが IPv6 ファミリーを使用している場合) がアタッチされた IAM ロール。詳細については、「IRSA を使用するように Amazon VPC CNI プラグインを設定する」を参照してください。

  • ‭Amazon VPC CNI plugin for Kubernetes のバージョン ‭1.7.0‬ 以降の CNI プラグインを使用しており、カスタム‬ Pod セキュリティポリシーを使用する場合は、「‭デフォルトの Amazon EKS Pod セキュリティポリシーを削除するAmazon EKS 作成のポッドセキュリティポリシー (PSP) の説明」を参照してください。

  • 重要

    Amazon VPC CNI plugin for Kubernetes バージョン v1.16.0 から v1.16.1 では、Kubernetes バージョン 1.23 以前との互換性を削除されています。VPC CNI バージョン v1.16.2 では、 Kubernetes バージョン 1.23 以前、および CNI 仕様 v0.4.0 との互換性が復元されています。

    Amazon VPC CNI plugin for Kubernetes バージョン v1.16.0 から v1.16.1 では CNI 仕様バージョン v1.0.0 が実装されています。CNI 仕様 v1.0.0 は、Kubernetes バージョン v1.24 以降を実行する EKS クラスターでサポートされています。VPC CNI バージョン v1.16.0 から v1.16.1 および CNI 仕様 v1.0.0 は、Kubernetes バージョン v1.23 以前ではサポートされていません。CNI 仕様の v1.0.0 の詳細については、「Container Network Interface (CNI) Specification」を参照してください

手順

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

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

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

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

    v1.16.4-eksbuild.2
  2. クラスターにインストールされているアドオンのタイプを確認します。クラスターを作成するために使用したツールによっては、現在クラスターに 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 タイプのアドオンがインストールされていません。インストールするには、この手順の残りのステップを完了します。

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

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. AWS CLI を使用してアドオンを作成します。AWS Management Console または eksctl を使用してアドオンを作成する場合は、「Amazon EKS アドオンの作成」を参照して、アドオン名の vpc-cni を指定します。デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行します。

    • my-cluster を自分のクラスター名に置き換えます。

    • v1.18.3-eksbuild.2 を、クラスターバージョンの最新バージョンの表に記載されている最新バージョンに置き換えます。

    • 111122223333 を、アカウント ID に置き換えます。また、AmazonEKSVPCCNIRole を、作成した既存の IAM ロールの名前に置き換えます。ロールを指定するには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。

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

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

  5. クラスターの Kubernetes バージョン用のアドオンの最新バージョンがクラスターに追加されたことを確認します。my-cluster を自分のクラスター名に置き換えます。

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

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

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

    v1.18.3-eksbuild.2
  6. 元のアドオンに対してカスタム設定を行った場合は、Amazon EKS アドオンを作成する前に、前のステップで保存した設定を使用して、カスタム設定で Amazon EKS アドオンを更新します。

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