Amazon EKS クラスターを作成します。 - Amazon EKS

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

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

Amazon EKS クラスターを作成します。

このトピックでは、使用可能なオプションの概要と、Amazon EKS クラスターの作成時に考慮すべき点を説明します。AWS Outpost でクラスターを作成する必要がある場合は、「高可用性を実現するために AWS Outposts でローカル Amazon EKS クラスターを作成する」を参照してください。Amazon EKS クラスターを初めて作成する場合は、Amazon EKS の使用を開始する ガイドのいずれかに従うことをお勧めします。これらのガイドは、使用可能なすべてのオプションを展開することなく、シンプルでデフォルトのクラスターを作成するのに役立ちます。

前提条件
  • Amazon EKS の要件 を満たす既存の VPC とサブネット。本番用にクラスターをデプロイする前に、VPC とサブネットの要件を十分に理解しておくことをお勧めします。VPC とサブネットがない場合は、Amazon EKS に用意されている AWS CloudFormation テンプレート を使用して作成できます。

  • デバイスまたは AWS CloudShell に、kubectl コマンドラインツールがインストールされていること。バージョンは、ご使用のクラスターの Kubernetes バージョンと同じか、1 つ前のマイナーバージョン以前、あるいはそれより新しいバージョンが使用できます。例えば、クラスターのバージョンが 1.30 である場合、kubectl のバージョン 1.291.30、または 1.31 が使用できます。kubectl をインストールまたはアップグレードする方法については、「kubectl および eksctl のセットアップ」を参照してください。

  • ご使用のデバイスまたは AWS CloudShell で、バージョン 2.12.3 以降、または AWS Command Line Interface (AWS CLI) のバージョン 1.27.160 以降がインストールおよび設定されていること。現在のバージョンを確認するには、「aws --version | cut -d / -f2 | cut -d ' ' -f1」を参照してください。macOS の yumapt-get、または Homebrew などのパッケージマネージャは、AWS CLI の最新バージョンより数バージョン遅れることがあります。最新バージョンをインストールするには、「AWS Command Line Interface ユーザーガイド」の「AWS CLI のインストール、更新、およびアンインストール」と「aws configure でのクイック設定」を参照してください。AWS CloudShell にインストールされている AWS CLI バージョンは、最新バージョンより数バージョン遅れている可能性もあります。更新するには、「AWS CloudShell ユーザーガイド」の「ホームディレクトリへの AWS CLI のインストール」を参照してください。

  • Amazon EKS クラスターを create および describe するための許可を持つ IAM プリンシパル。詳細については、Outpost にローカル Kubernetes クラスターを作成しますおよびすべてのクラスターの一覧表示または説明を参照してください。

Amazon EKS クラスターを作成するには
  1. 既にクラスター IAM ロールがある場合、または eksctl を使用してクラスターを作成する場合は、このステップはスキップできます。デフォルトでは、eksctl により、ロールが自動的に作成されます。

    Amazon EKS クラスター IAM ロールを作成するには
    1. IAM 信頼ポリシー用の JSON ファイルを作成するには、次のコマンドを実行します。

      cat >eks-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
    2. Amazon EKS クラスターの IAM ロールを作成します。必要であれば、前のステップでファイルを書き込んだコンピュータ上のパスを eks-cluster-role-trust-policy.json の前につけます。このコマンドは、前のステップで作成した信頼ポリシーをロールに関連付けます。IAM ロールを作成するには、ロールを作成する IAM プリンシパルiam:CreateRole アクション (許可) を割り当てる必要があります。

      aws iam create-role --role-name myAmazonEKSClusterRole --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    3. Amazon EKS 管理のポリシーを割り当てるか、独自のカスタムポリシーを作成できます。カスタムポリシーで使用する必要がある最小限の許可については、「Amazon EKS クラスター の IAM ロール」を参照してください。

      このロールに、Amazon EKS 管理の IAM ポリシー (AmazonEKSClusterPolicy) をアタッチします。IAM ポリシーを IAM プリンシパルにアタッチするには、ポリシーのアタッチを行っているプリンシパルに、次のいずれかの IAM アクション (許可) を割り当てる必要があります: iam:AttachUserPolicy または iam:AttachRolePolicy

      aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
  2. Amazon EKS クラスターを作成します。

    eksctl、AWS Management Console、または AWS CLI を使用してクラスターを作成できます。

    eksctl
    前提条件

    デバイスまたは AWS CloudShell にインストールされている eksctl コマンドラインツールのバージョン 0.191.0 以降。eksctl をインストールまたはアップグレードするには、eksctl ドキュメントの「インストール」を参照してください。

    クラスターを作成するには

    デフォルトの AWS リージョン に、Amazon EKS デフォルトの Kubernetes バージョンを使用して、Amazon EKS IPv4 クラスターを作成します。コマンドを実行する前に、次の置き換えを行います。

    • region-code を、クラスターを作成する AWS リージョン に置き換えます。

    • my-cluster をクラスターの名前に置き換えます。この名前には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前は、クラスターを作成する AWS リージョン および AWS アカウント 内で一意である必要があります。

    • 1.31Amazon EKS がサポートする任意のバージョンに置き換えます。

      注記

      この時点で 1.31 クラスターをデプロイするには、AWS Management Console または AWS CLI を使用する必要があります。

    • 要件を満たすように vpc-private-subnets の値を変更します。さらに ID を追加することもできます。少なくとも 2 つのサブネット ID を指定する必要があります。パブリックサブネットを指定する場合は、--vpc-private-subnets--vpc-public-subnets に変更できます。パブリックサブネットには、インターネットゲートウェイへのルートに関連付けられたルートテーブルがありますが、プライベートサブネットには関連付けられたルートテーブルがありません。可能な限り、プライベートサブネットを使用することをお勧めします。

      選択するサブネットは Amazon EKS サブネットの要件を満たす必要があります。サブネットを選択する前に、Amazon EKS VPC およびサブネットの要件と考慮事項をすべて理解しておくことをお勧めします。

    eksctl create cluster --name my-cluster --region region-code --version 1.31 --vpc-private-subnets subnet-ExampleID1,subnet-ExampleID2 --without-nodegroup

    クラスターのプロビジョニングには数分かかります。クラスターの作成中は、数行の出力が表示されます。出力の最後の行は、次のサンプル行のようになります。

    [✓] EKS cluster "my-cluster" in "region-code" region is ready
    ヒント

    eksctl を使用してクラスターを作成するときに指定できるほとんどのオプションを表示するには、eksctl create cluster --help コマンドを使用します。使用可能なオプションをすべて表示するには、config ファイルを使用します。詳細については、「eksctl ドキュメント」の「Using config files」(設定ファイルの使用) と「設定ファイルのスキーマ」を参照してください。設定ファイルの例は、GitHub で見つけることができます。

    オプション設定

    必要に応じて前のコマンドに追加する必要があるオプションの設定を次に示します。これらのオプションは、クラスターの作成時にのみ有効にすることができ、作成後は有効にできません。これらのオプションを指定する必要がある場合は、前のコマンドを使用するのではなく、eksctl config ファイルを使用してクラスターを作成し、設定を指定する必要があります。

    • Amazon EKS が作成するネットワークインターフェイスに割り当てる 1 つまたは複数のセキュリティグループを指定する場合は、securityGroup オプションを指定します。

      セキュリティグループを選択するかどうかにかかわらず、Amazon EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。Amazon EKS は、このセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。Amazon EKS が作成するクラスターセキュリティグループの詳細については、「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。Amazon EKS が作成するクラスターセキュリティグループのルールを変更できます。

    • Kubernetes がサービス IP アドレスを割り当てる IPv4 Classless Inter-Domain Routing (CIDR) ブロックを指定する場合は、serviceIPv4CIDR オプションを指定します。

      独自の範囲を指定すると、Kubernetes サービスと VPC にピアリングまたは接続されたその他のネットワークとの間の競合を防ぐことができます。CIDR 表記で範囲を入力します。例: 10.2.0.0/16

      この CIDR ブロックでは、以下の要件を満たす必要があります。

      • 10.0.0.0/8172.16.0.0/12、または 192.168.0.0/16 のいずれかの範囲内にある。

      • 最小サイズが /24、最大サイズが /12

      • Amazon EKS リソースの VPC の範囲と重複しない。

      このオプションを指定できるのは、IPv4 アドレスファミリーを使用してクラスターを作成するときのみです。これを指定しない場合、Kubernetes は、10.100.0.0/16 または 172.20.0.0/16 のいずれかの CIDR ブロックからサービス IP アドレスを割り当てます。

    • クラスターを作成していて、そのクラスターで IPv4 アドレスではなく IPv6 アドレスを Pods とサービスに割り当てるようにする場合は、ipFamily オプションを指定します。

      Kubernetes は、デフォルトで IPv4 アドレスを Pods とサービスに割り当てます。IPv6 ファミリーの使用を決定する前に、VPC の要件と考慮事項サブネットの要件と考慮事項クラスターの Amazon EKS セキュリティグループ要件を表示する、および クラスター、pods、サービスに IPv6 アドレスを割り当てる のトピックの考慮事項と要件をすべて理解していることを確認します。IPv6 ファミリーを選択すると、Kubernetes が IPv6 サービスアドレスを割り当てる範囲を IPv4 ファミリーで指定できるようには指定できません。Kubernetes は特定のローカルアドレス範囲 (fc00::/7) からサービスアドレスを割り当てます。

    AWS Management Console
    クラスターを作成するには
    1. Amazon EKS コンソール (https://console.aws.amazon.com/eks/home#/clusters) を開きます。

    2. [クラスターを追加][作成] の順にクリックします。

    3. [クラスターの設定] ページで、次のフィールドに入力します。

      • [名前] - クラスターの名前。この名前には、英数字 (大文字と小文字が区別されます)、ハイフン、下線のみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前は、クラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。

      • Kubernetes バージョン - クラスターに使用する Kubernetes のバージョン。以前のバージョンが必要でない限り、最新バージョンを選択することをお勧めします。

      • [サポートタイプ] — クラスターに設定する Kubernetes バージョンポリシー。クラスターを標準サポートバージョンでのみ実行する場合は、[標準サポート] を選択できます。バージョンの標準サポート終了時にクラスターで延長サポートに入る場合は、[延長サポート] を選択できます。現在延長サポートを利用中の Kubernetes バージョンを選択した場合、オプションとして標準サポートを選択することはできません。

      • [クラスターサービスロール] - ユーザーに代わって AWS リソースを管理することを Kubernetes コントロールプレーンに許可するために作成した Amazon EKS クラスター IAM ロールを選択します。

      • [シークレット暗号化] - (オプション) KMS キーを使用して Kubernetes シークレットのシークレット暗号化を有効にするよう選択します。クラスターを作成した後で、これを有効にすることもできます。この機能を有効にする前に、既存のクラスターで AWS KMS を使用して Kubernetes シークレットを暗号化する の情報をよく理解していることを確認してください。

      • [タグ] - (オプション) クラスターにタグを追加します。詳細については、「タグを使用して Amazon EKS リソースを整理する」を参照してください。

        このページを読み終えたら、[次へ] を選択します。

    4. [ネットワーキングの指定] ページで、次のフィールドの値を選択します。

      • [VPC]Amazon EKS VPC 要件を満たす既存の VPC を選択し、そこでクラスターを作成します。VPC を選択する前に、VPC とサブネットの Amazon EKS ネットワーキング要件を表示する の要件と考慮事項をすべて理解しておくことをお勧めします。クラスターの作成後は、使用する VPC を変更できません。VPC が表示されていない場合は、まず作成する必要があります。詳細については、「Amazon EKS クラスターの Amazon VPC を作成する」を参照してください。

      • [サブネット] - デフォルトで、前のフィールドで指定した VPC 内の利用可能なすべてのサブネットがあらかじめ選択されています。少なくとも 2 つ選択する必要があります。

        選択するサブネットは Amazon EKS サブネットの要件を満たす必要があります。サブネットを選択する前に、Amazon EKS VPC およびサブネットの要件と考慮事項をすべて理解しておくことをお勧めします。

        [セキュリティグループ] - (オプション) Amazon EKS が作成するネットワークインターフェイスに関連付ける 1 つまたは複数のセキュリティグループを指定します。

        セキュリティグループを選択するかどうかにかかわらず、Amazon EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。Amazon EKS は、このセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。Amazon EKS が作成するクラスターセキュリティグループの詳細については、「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。Amazon EKS が作成するクラスターセキュリティグループのルールを変更できます。

      • クラスターの IP アドレスファミリーの選択 – IPv4 と IPv6 のどちらかを選択できます。

        Kubernetes は、デフォルトで IPv4 アドレスを Pods とサービスに割り当てます。IPv6 ファミリーの使用を決定する前に、VPC の要件と考慮事項サブネットの要件と考慮事項クラスターの Amazon EKS セキュリティグループ要件を表示する、および クラスター、pods、サービスに IPv6 アドレスを割り当てる のトピックの考慮事項と要件をすべて理解していることを確認します。IPv6 ファミリーを選択すると、Kubernetes が IPv6 サービスアドレスを割り当てる範囲を IPv4 ファミリーで指定できるようには指定できません。Kubernetes は特定のローカルアドレス範囲 (fc00::/7) からサービスアドレスを割り当てます。

      • (オプション) [Configure Kubernetes Service IP address range] ( サービス IP アドレスの範囲を設定する) を選択し、[Service IPv4 range] (サービスの 範囲) を指定します。

        独自の範囲を指定すると、Kubernetes サービスと VPC にピアリングまたは接続されたその他のネットワークとの間の競合を防ぐことができます。CIDR 表記で範囲を入力します。例: 10.2.0.0/16

        この CIDR ブロックでは、以下の要件を満たす必要があります。

        • 10.0.0.0/8172.16.0.0/12、または 192.168.0.0/16 のいずれかの範囲内にある。

        • 最小サイズが /24、最大サイズが /12

        • Amazon EKS リソースの VPC の範囲と重複しない。

        このオプションを指定できるのは、IPv4 アドレスファミリーを使用してクラスターを作成するときのみです。これを指定しない場合、Kubernetes は、10.100.0.0/16 または 172.20.0.0/16 のいずれかの CIDR ブロックからサービス IP アドレスを割り当てます。

      • [クラスターエンドポイントのアクセス] で、オプションを選択します。クラスターを作成した後で、このオプションを変更できます。デフォルト以外のオプションを選択する前に、オプションとその意味を理解しておいてください。詳細については、「クラスター API サーバーエンドポイントへのネットワークアクセスを制御する」を参照してください。

        このページを読み終えたら、[次へ] を選択します。

    5. (オプション) [オブザーバビリティの設定] ページで、有効にする [メトリクス][コントロールプレーンのロギング] オプションを選択します。デフォルトでは、それぞれのログタイプは無効化されています。

      このページを読み終えたら、[次へ] を選択します。

    6. [アドオンの選択] ページで、クラスターに追加するアドオンを選択します。[Amazon EKS アドオン][AWS Marketplace アドオン] は必要な数だけ選択できます。インストールする [AWS Marketplace アドオン] が一覧にない場合は、検索ボックスにテキストを入力して、利用可能な [AWS Marketplace アドオン] を検索できます。[カテゴリ][ベンダー]、または [価格モデル] で検索し、検索結果からアドオンを選択することもできます。このページを読み終えたら、[次へ] を選択します。

      Amazon VPC CNI、CoreDNS、kube-proxy などの一部のアドオンは、デフォルトでインストールされます。デフォルトのアドオンのいずれかを無効にすると、Kubernetes アプリケーションを実行する機能に影響する場合があります。

    7. [選択したアドオン設定の構成] ページで、インストールするバージョンを選択し、[次へ] を選択します。クラスターを作成した後は、いつでも新しいバージョンに更新できます。クラスターの作成後に、各アドオンの設定を更新できます。アドオンの設定の詳細については、「Amazon EKS アドオンの更新」を参照してください。このページを読み終えたら、[次へ] を選択します。

    8. [確認と作成] ページで、前のページで入力または選択した情報を確認します。変更する必要がある場合は、[編集] を選択します。そのままでよければ、[作成] を選択します。クラスターがプロビジョニングされている間、[ステータス] フィールドに [作成中] と表示されます。

      注記

      リクエストで指定したアベイラビリティーゾーンのいずれかに、Amazon EKS クラスターの作成に十分な容量がない場合には、エラーが表示されることがあります。このエラー出力には、新しいクラスターをサポートできるアベイラビリティーゾーンが表示されます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については、「容量不足」を参照してください。

      クラスターのプロビジョニングには数分かかります。

    AWS CLI
    クラスターを作成するには
    1. 下記のコマンドを使用して、クラスターを作成します。コマンドを実行する前に、次の置き換えを行います。

      • region-code を、クラスターを作成する AWS リージョン に置き換えます。

      • my-cluster をクラスターの名前に置き換えます。この名前には、英数字 (大文字と小文字が区別されます)、ハイフン、下線のみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前は、クラスターを作成する AWS リージョン および AWS アカウント 内で一意である必要があります。

      • 1.31Amazon EKS がサポートする任意のバージョンに置き換えます。

      • 111122223333 をアカウント ID に置き換え、myAmazonEKSClusterRole をクラスター IAM ロールに置き換えます。

      • subnetIds の値を独自の値に置き換えます。さらに ID を追加することもできます。少なくとも 2 つのサブネット ID を指定する必要があります。

        選択するサブネットは Amazon EKS サブネットの要件を満たす必要があります。サブネットを選択する前に、Amazon EKS VPC およびサブネットの要件と考慮事項をすべて理解しておくことをお勧めします。

      • セキュリティグループ ID を指定しない場合は、コマンドから ,securityGroupIds=sg-ExampleID1 を削除します。1 つまたは複数のセキュリティグループ ID を指定する場合は、securityGroupIds の値を独自の値に置き換えます。さらに ID を追加することもできます。

        セキュリティグループを選択するかどうかにかかわらず、Amazon EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。Amazon EKS は、このセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。Amazon EKS が作成するクラスターセキュリティグループの詳細については、「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。Amazon EKS が作成するクラスターセキュリティグループのルールを変更できます。

      aws eks create-cluster --region region-code --name my-cluster --kubernetes-version 1.31 \ --role-arn arn:aws:iam::111122223333:role/myAmazonEKSClusterRole \ --resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1
      注記

      リクエストで指定したアベイラビリティーゾーンのいずれかに、Amazon EKS クラスターの作成に十分な容量がない場合には、エラーが表示されることがあります。このエラー出力には、新しいクラスターをサポートできるアベイラビリティーゾーンが表示されます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については、「容量不足」を参照してください。

      オプション設定

      必要に応じて前のコマンドに追加する必要があるオプションの設定を次に示します。これらのオプションは、クラスターの作成時にのみ有効にすることができ、作成後は有効にできません。

      • デフォルトでは、EKS はクラスターの作成時に複数のネットワーキングアドオンをインストールします。これには、Amazon VPC CNI、CoreDNS、kube-proxy が含まれます。

        これらのデフォルトのネットワーキングアドオンのインストールを無効にする場合は、以下のパラメータを使用します。これは、Cilium などの代替 CNI に使用できます。詳細については、「EKS API リファレンス」を参照してください。

        aws eks create-cluster --bootstrapSelfManagedAddons false

      • Kubernetes がサービス IP アドレスを割り当てる IPv4 Classless Inter-Domain Routing (CIDR) ブロックを指定する場合は、次のコマンドに --kubernetes-network-config serviceIpv4Cidr=CIDR block を追加して指定する必要があります。

        独自の範囲を指定すると、Kubernetes サービスと VPC にピアリングまたは接続されたその他のネットワークとの間の競合を防ぐことができます。CIDR 表記で範囲を入力します。例: 10.2.0.0/16

        この CIDR ブロックでは、以下の要件を満たす必要があります。

        • 10.0.0.0/8172.16.0.0/12、または 192.168.0.0/16 のいずれかの範囲内にある。

        • 最小サイズが /24、最大サイズが /12

        • Amazon EKS リソースの VPC の範囲と重複しない。

        このオプションを指定できるのは、IPv4 アドレスファミリーを使用してクラスターを作成するときのみです。これを指定しない場合、Kubernetes は、10.100.0.0/16 または 172.20.0.0/16 のいずれかの CIDR ブロックからサービス IP アドレスを割り当てます。

      • クラスターを作成していて、そのクラスターで IPv4 アドレスではなく IPv6 アドレスを Pods とサービスに割り当てるようにする場合は、次のコマンドに --kubernetes-network-config ipFamily=ipv6 を追加します。

        Kubernetes は、デフォルトで IPv4 アドレスを Pods とサービスに割り当てます。IPv6 ファミリーの使用を決定する前に、VPC の要件と考慮事項サブネットの要件と考慮事項クラスターの Amazon EKS セキュリティグループ要件を表示する、および クラスター、pods、サービスに IPv6 アドレスを割り当てる のトピックの考慮事項と要件をすべて理解していることを確認します。IPv6 ファミリーを選択すると、Kubernetes が IPv6 サービスアドレスを割り当てる範囲を IPv4 ファミリーで指定できるようには指定できません。Kubernetes は特定のローカルアドレス範囲 (fc00::/7) からサービスアドレスを割り当てます。

    2. クラスターがプロビジョニングされるまでに数分かかります。クラスターのステータスのクエリを実行するには、次のコマンドを使用します。

      aws eks describe-cluster --region region-code --name my-cluster --query "cluster.status"

      出力が「ACTIVE」を返すまで、次のステップに進まないでください。

  3. eksctl を使用してクラスターを作成した場合、このステップはスキップできます。eksctl によってこのステップはすでに完了しているからです。新しいコンテキストを kubectl config ファイルに追加して、kubectl がクラスターと通信できるようにします。ファイルを作成および更新する方法の詳細については、「kubeconfig ファイルを作成して kubectl を EKS クラスターに接続する」を参照してください。

    aws eks update-kubeconfig --region region-code --name my-cluster

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

    Added new context arn:aws:eks:region-code:111122223333:cluster/my-cluster to /home/username/.kube/config
  4. 次のコマンドを実行して、クラスターとの通信を確認します。

    kubectl get svc

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

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
  5. (推奨) Amazon EKS アドオンを使用するか、固有の AWS Identity and Access Management (IAM) アクセス許可を個々の Kubernetes ワークロードに付与できるようにするには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーを作成します。クラスター用に IAM OIDC プロバイダーを作成する必要があるのは 1 回だけです。Amazon EKS アドオンの詳細については、「Amazon EKS アドオン」を参照してください。ワークロードに特定の IAM アクセス許可を割り当てる方法については、「サービスアカウントの IAM ロール」を参照してください。

  6. (推奨) Amazon EC2 ノードをクラスターにデプロイする前に Amazon VPC CNI plugin for Kubernetes プラグイン用にクラスターを設定します。デフォルトでは、プラグインはクラスターとともにインストールされています。Amazon EC2 ノードをクラスターに追加すると、プラグインは追加する各 Amazon EC2 ノードに自動的にデプロイされます。プラグインでは、次の IAM ポリシーのいずれかを IAM ロールにアタッチする必要があります。

    AmazonEKS_CNI_Policy マネージド IAM ポリシー

    クラスターが IPv4 ファミリーを使用している場合

    ユーザーが作成する IAM ポリシー

    クラスターが IPv6 ファミリーを使用している場合

    ポリシーをアタッチする IAM ロールは、ノード IAM ロール、またはプラグインにのみ使用される専用ロールです。このロールにポリシーをアタッチすることをお勧めします。ロールの作成の詳細については、「IRSA を使用するように Amazon VPC CNI プラグインを設定する」または「Amazon EKS ノードの IAM ロール」を参照してください。

  7. AWS Management Console を使用してクラスターをデプロイした場合、このステップはスキップできます。AWS Management Console では、デフォルトで、Amazon VPC CNI plugin for Kubernetes、CoreDNS、および kube-proxy Amazon EKS アドオンがデプロイされます。

    eksctl または AWS CLI のいずれかを使用してクラスターをデプロイする場合、Amazon VPC CNI plugin for Kubernetes、CoreDNS、および kube-proxy セルフマネージド型アドオンがデプロイされます。クラスターとともに Amazon EKS アドオンにデプロイされる Amazon VPC CNI plugin for Kubernetes、CoreDNS、および kube-proxy セルフマネージド型アドオンを移行できます。詳細については、「Amazon EKS アドオン」を参照してください。

  8. (任意) まだそのようにしていない場合は、クラスターの Prometheus メトリクスを有効にできます。詳細については、「Amazon Managed Service for Prometheus ユーザーガイド」の「スクレイパーの作成」を参照してください。

  9. Prometheus メトリクスを有効にした場合は、aws-auth ConfigMap スクレイパーにクラスター内のアクセス権限を付与するように設定する必要があります。詳細については、「Amazon Managed Service for Prometheus ユーザーガイド」の「Amazon EKS クラスターの設定」を参照してください。

  10. Amazon EBS ボリュームを使用するクラスターにワークロードをデプロイする予定で、1.23 以降のクラスターを作成した場合、ワークロードをデプロイする前に、Amazon EBS を利用して Kubernetes ボリュームを保存する をクラスターにインストールする必要があります。

推奨される次の手順は以下の通りです。