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

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.29 である場合、kubectl のバージョン 1.281.29、または 1.30 が使用できます。kubectl をインストールまたはアップグレードする方法については、「kubectl と eksctl のセットアップ」を参照してください。

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

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

ステップ 1: クラスター IAM ロールを作成する

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

  2. 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
  3. 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"
  4. Amazon EKS 管理のポリシーを割り当てるか、独自のカスタムポリシーを作成できます。カスタムポリシーで使用する必要がある最小限の許可については、「Amazon EKS クラスター の IAM ロール」を参照してください。

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

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole

ステップ 2: クラスターを作成する

以下を使用してクラスターを作成できます。

クラスターを作成します - eksctl

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

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

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

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

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

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

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

  7. 次のコマンドを実行します。

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

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

    [✓] EKS cluster "my-cluster" in "region-code" region is ready
  8. ステップ 3: kubeconfig を更新する」に進みます

オプション設定

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 コンソール

  1. Amazon EKS コンソールを開きます。

  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) からサービスアドレスを割り当てます。

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

      独自の範囲を指定すると、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 アドオンを検索できます。[カテゴリ][ベンダー]、または [料金モデル] でフィルタリングして、検索結果からアドオンを選択することもできます。クラスターを作成する際に、「EKS Pod Identity がポッドに AWS サービスへのアクセス権を付与する方法を学ぶ」で詳述されているように、EKS Pod Identity をサポートするアドオンを表示、選択、インストールできます。

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

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

  7. [選択したアドオン設定の構成] ページで、インストールするバージョンを選択し、[次へ] を選択します。クラスターを作成した後は、いつでも新しいバージョンに更新できます。

    EKS Pod Identity をサポートするアドオンの場合、コンソールを使用して、アドオン専用に事前入力された名前、AWS マネージドポリシー、信頼ポリシーを使用してロールを自動的に生成できます。既存のロールを再利用したり、サポートされているアドオン用の新しいロールを作成したりできます。コンソールを使用して EKS Pod Identity をサポートするアドオンのロールを作成するためのステップについては、「アドオンの作成 (AWS コンソール)」を参照してください。アドオンが EKS Pod Identity をサポートしていない場合、クラスターの作成後にウィザードを使用してサービスアカウント用の IAM ロール (IRSA) を作成する手順を示すメッセージが表示されます。

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

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

    注記

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

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

  9. ステップ 3: kubeconfig を更新する」に進みます

クラスターの作成 - AWS CLI

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

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

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

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

    • 1.30Amazon 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.30 \ --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> to the following command. を追加して指定する必要があります。独自の範囲を指定すると、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 アドレスではなく 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. ステップ 3: kubeconfig を更新する」に進みます

ステップ 3: kubeconfig を更新する

  1. 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
  2. 次のコマンドを実行して、クラスターとの通信を確認します。

    kubectl get svc

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

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h

ステップ 4: クラスターのセットアップ

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

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

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

  3. 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 アドオン」を参照してください。

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

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

次のステップ