

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

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

# Amazon EKS クラスターを作成します。
<a name="create-cluster"></a>

**注記**  
このトピックでは EKS 自動モードを使用しない Amazon EKS クラスターの作成を取り上げています。  
EKS 自動モードl クラスターの詳細な作成手順については「[Amazon EKS Auto Mode クラスターを作成する](create-cluster-auto.md)」を参照してください。  
EKS 自動モードl を使用して開始するには「[Amazon EKS – EKS Auto Mode の使用開始](getting-started-automode.md)」を参照してください。

このトピックでは使用可能なオプションの概要と、Amazon EKS クラスターの作成時に考慮すべき点を説明します。ノードのコンピューティングとしてオンプレミスインフラストラクチャを使用してクラスターを作成する必要がある場合は「[ハイブリッドノードを使用して Amazon EKS クラスターを作成する](hybrid-nodes-cluster-create.md)」を参照してください。Amazon EKS クラスターを初めて作成する場合は[Amazon EKS の使用を開始する](getting-started.md) のガイドのいずれかに従うことをお勧めします。これらのガイドは使用可能なすべてのオプションを展開することなく、シンプルでデフォルトのクラスターを作成するのに役立ちます。

## 前提条件
<a name="_prerequisites"></a>
+ [Amazon EKS の要件](network-reqs.md) を満たす既存の VPC とサブネット。本番用にクラスターをデプロイする前に、VPC とサブネットの要件を十分に理解しておくことをお勧めします。VPC とサブネットがない場合は[Amazon EKS に用意されている AWS クラウドフォーメーション テンプレート](creating-a-vpc.md)を使用して作成できます。
+ デバイスまたは AWS クラウドシェル に、`kubectl` コマンドラインツールがインストールされていること。バージョンはご使用のクラスターの Kubernetes バージョンと同じか、1 つ前のマイナーバージョン以前、あるいはそれより新しいバージョンが使用できます。`kubectl` をインストールまたはアップグレードする方法については「[`kubectl` および `eksctl` のセットアップ](install-kubectl.md)」を参照してください。
+ ご使用のデバイスまたは AWS クラウドシェル で、バージョン `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)」を参照してください。
+ Amazon EKS クラスターを `create` および `describe` するための許可を持つ [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)。詳細については[Outpost にローカル Kubernetes クラスターを作成する](security-iam-id-based-policy-examples.md#policy-create-local-cluster)および[すべてのクラスターの一覧表示または説明](security-iam-id-based-policy-examples.md#policy-example2)を参照してください。

## ステップ 1: クラスター IAM ロールを作成する
<a name="_step_1_create_cluster_iam_role"></a>

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

1. IAM 信頼ポリシー用の JSON ファイルを作成するには次のコマンドを実行してください。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Amazon EKS クラスターの IAM ロールを作成します。必要であれば、前のステップでファイルを書き込んだコンピュータ上のパスを *eks-cluster-role-trust-policy.json* の前につけます。このコマンドは前のステップで作成した信頼ポリシーをロールに関連付けます。IAM ロールを作成するにはロールを作成する [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)に `iam:CreateRole` アクション (許可) を割り当てる必要があります。

   ```
   aws iam create-role --role-name myAmazonEKSClusterRole --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
   ```

1. Amazon EKS 管理のポリシーを割り当てるか、独自のカスタムポリシーを作成できます。カスタムポリシーで使用する必要がある最小限の許可については「[Amazon EKS クラスター の IAM ロール](cluster-iam-role.md)」を参照してください。

   [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html#AmazonEKSClusterPolicy-json) という名前の Amazon EKS マネージド型ポリシーをロールにアタッチします。IAM ポリシーを [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)にアタッチするにはポリシーのアタッチを行っているプリンシパルに、次のいずれかの IAM アクション (許可) を割り当てる必要があります: `iam:AttachUserPolicy` または `iam:AttachRolePolicy`。

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

### サービスにリンクされたロール
<a name="_service_linked_role"></a>

Amazon EKS では､サービスにリンクされたロールが自動的に作成されます`AWSServiceRoleForAmazonEKS`。

これはクラスター IAM ロールに追加されます。サービスにリンクされたロールはAmazon EKS に直接リンクされた一意のタイプの IAM ロールです。このロールにより、Amazon EKS はアカウント内のクラスターを管理できます。詳細については「[Amazon EKS クラスターのロールの使用](using-service-linked-roles-eks.md)」を参照してください。

EKS クラスターの作成に使用する IAM アイデンティティには、サービスにリンクされたロールを作成するアクセス許可が必要です。これには `iam:CreateServiceLinkedRole` 権限が含まれます。

サービスにリンクされたロールがまだ存在せず、現在の IAM ロールに作成するための十分なアクセス許可がない場合、クラスター作成オペレーションは失敗します。

## ステップ 2: クラスターを作成する
<a name="_step_2_create_cluster"></a>

以下を使用してクラスターを作成できます：
+  [`eksctl`](#step2-eksctl) 
+  [の AWS マネジメントコンソール](#step2-console) 
+  [AWS CLI](#step2-cli) 

### クラスターを作成します - eksctl
<a name="step2-eksctl"></a>

1. デバイスまたは AWS クラウドシェル にインストールされている `eksctl` コマンドラインツールのバージョン `0.215.0` 以降が必要です。`eksctl` をインストールまたはアップグレードするには`eksctl` ドキュメントの「[インストール](https://eksctl.io/installation)」を参照してください。

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

1. *地域コード* はクラスターを作成する AWS リージョンに置き換えます。

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

1. *1.35* を [Amazon EKS がサポートする任意のバージョン](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)に置き換えます。

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

   選択するサブネットは [Amazon EKS サブネットの要件](network-reqs.md#network-requirements-subnets)を満たす必要があります。サブネットを選択する前に、[Amazon EKS VPC およびサブネットの要件と考慮事項](network-reqs.md)をすべて理解しておくことをお勧めします。

1. 次のコマンドを実行してください：

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

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

   ```
   [✓]  EKS cluster "my-cluster" in "region-code" region is ready
   ```

1. 「[ステップ 3: kubeconfig を更新する](#step3)」に進みます 

#### オプション設定
<a name="_optional_settings"></a>

`eksctl` を使用してクラスターを作成するときに指定できるほとんどのオプションを表示するには`eksctl create cluster --help` コマンドを使用します。使用可能なオプションをすべて表示するには`config` ファイルを使用します。詳細については「`eksctl` ドキュメント」の「[Using config files](https://eksctl.io/usage/creating-and-managing-clusters/#using-config-files)」(設定ファイルの使用） と「[設定ファイルのスキーマ](https://eksctl.io/usage/schema/)」を参照してください。[設定ファイルの例](https://github.com/weaveworks/eksctl/tree/master/examples)は、GitHub で見つけることができます。

必要に応じて前のコマンドに追加する必要があるオプションの設定を次に示します。これらのオプションはクラスターの作成時にのみ有効にすることができ、作成後は有効にできません。これらのオプションを指定する必要がある場合は前のコマンドを使用するのではなく、[eksctl config ファイル](https://eksctl.io/usage/creating-and-managing-clusters/#using-config-files)を使用してクラスターを作成し、設定を指定する必要があります。
+ Amazon EKS が作成するネットワークインターフェイスに割り当てる 1 つまたは複数のセキュリティグループを指定する場合は[securityGroup](https://eksctl.io/usage/schema/#vpc-securityGroup) オプションを指定します。

  セキュリティグループを選択するかどうかにかかわらず、Amazon EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。Amazon EKS はこのセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。Amazon EKS が作成するクラスターセキュリティグループの詳細については「[クラスターの Amazon EKS セキュリティグループ要件を表示する](sec-group-reqs.md)」を参照してください。Amazon EKS が作成するクラスターセキュリティグループのルールを変更できます。
+ どの `IPv4` Classless Inter-domain Routing (CIDR) ブロックから Kubernetes がサービス IP アドレスを割り当てるかを指定する場合、[serviceIPv4CIDR](https://eksctl.io/usage/schema/#kubernetesNetworkConfig-serviceIPv4CIDR) オプションを指定します。

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

  この　CIDR ブロックでは以下の要件を満たす必要があります：
  + `10.0.0.0/8`、`172.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` アドレスを Pod とサービスに割り当てるようにする場合は、[ipFamily](https://eksctl.io/usage/schema/#kubernetesNetworkConfig-ipFamily) オプションを指定します。

  デフォルトで、Kubernetes は `IPv4` アドレスを Pod とサービスに割り当てます。`IPv6` ファミリーの使用を決定する前に、「[VPC の要件と考慮事項](network-reqs.md#network-requirements-vpc)」、「[サブネットの要件と考慮事項](network-reqs.md#network-requirements-subnets)」、「[クラスターの Amazon EKS セキュリティグループ要件を表示する](sec-group-reqs.md)」、および「[クラスター、Pod、サービスに対する IPv6 アドレスの説明](cni-ipv6.md)」のトピックの考慮事項と要件をすべて理解していることを確認します。`IPv6` ファミリーを選択すると、Kubernetes が `IPv6` サービスアドレスを割り当てる範囲を `IPv4` ファミリーで指定できるようには指定できません。Kubernetes は、一意のローカルアドレス範囲 (`fc00::/7`) からサービスにアドレスを割り当てます。

### クラスターの作成 - AWS コンソール
<a name="step2-console"></a>

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

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

1. **[設定オプション]** で **[カスタム設定]** を選択してください。
   + EKS 自動モードl でクラスターをすばやく作成する方法については「[AWS マネジメントコンソール を使用して EKS Auto Mode クラスターを作成する](automode-get-started-console.md)」を参照してください。

1. **[EKS 自動モードl]** で、**[EKS 自動モードl を使用する]** をオフに切り替えます。
   + カスタム設定で EKS 自動モードl クラスターを作成する方法については「[Amazon EKS Auto Mode クラスターを作成する](create-cluster-auto.md)」を参照してください。

1. **[クラスターの設定]** ページで、次のフィールドに入力します：
   +  **[名前]** - クラスターの名前。この名前には英数字 (大文字と小文字が区別されます)、ハイフン、下線のみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。
   +  **[クラスター IAM ロール]** – ユーザーに代わって AWS リソースを管理することを Kubernetes コントロールプレーンに許可するために作成した Amazon EKS クラスター IAM ロールを選択します。
   +  **[Kubernetes バージョン]** – クラスターで使用する Kubernetes のバージョン。以前のバージョンが必要でない限り、最新バージョンを選択することをお勧めします。
   +  **[サポートタイプ]** — クラスターに設定する Kubernetes バージョンポリシー。クラスターを標準サポートバージョンでのみ実行する場合は**[標準サポート]** を選択できます。バージョンの標準サポート終了時にクラスターで延長サポートに入る場合は**[延長サポート]** を選択できます。現在延長サポートを利用中の Kubernetes バージョンを選択した場合、オプションとして標準サポートを選択することはできません。
   +  **[Secret encryption]** (シークレット暗号化) – (オプション) KMS キーを使用して Kubernetes シークレットのシークレット暗号化を有効にするよう選択します。クラスターを作成した後で、これを有効にすることもできます。この機能を有効にする前に、[既存のクラスターで KMS を使用して Kubernetes シークレットを暗号化する](enable-kms.md) の情報をよく理解していることを確認してください。
   +  **[タグ]** - (オプション) クラスターにタグを追加します。詳細については「[タグを使用して Amazon EKS リソースを整理する](eks-using-tags.md)」を参照してください。
   +  **[ARC ゾーンシフト]** – (任意 Route53 アプリケーションリカバリコントローラー を使用して、アベイラビリティーゾーンの障害を軽減できます。詳細については「[Amazon EKS での Amazon Application Recovery Controller (ARC) のゾーンシフトの詳細](zone-shift.md)」を参照してください。

1. [クラスターの設定] ページの **[クラスターアクセス]** セクションで、次のフィールドに入力します：
   +  **[クラスター管理者アクセスをブートストラップ]** – クラスター作成者は自動的に Kubernetes 管理者になります。これを無効にする場合は**[クラスター管理者アクセスを拒否]** を選択してください。
   +  **[クラスター認証モード]** – IAM ユーザーおよびロールに Kubernetes API へのアクセスを許可する方法を決定します。詳細については「[クラスター認証モードを設定する](grant-k8s-access.md#set-cam)」を参照してください。

     このページを読み終えたら、**[次へ]** を選択してください。

1. **[ネットワーキングの指定]** ページで、次のフィールドの値を選択してください：
   +  **[VPC]** – [Amazon EKS VPC 要件](network-reqs.md#network-requirements-vpc)を満たす既存の VPC を選択し、そこでクラスターを作成します。VPC を選択する前に、「[VPC とサブネットの Amazon EKS ネットワーキング要件を表示する](network-reqs.md)」の要件と考慮事項をすべて理解しておくことをお勧めします。クラスターの作成後は使用する VPC を変更できません。VPC が表示されていない場合はまず作成する必要があります。詳細については「[Amazon EKS クラスターの Amazon VPC を作成する](creating-a-vpc.md)」を参照してください。
   +  **[サブネット]** - デフォルトで、前のフィールドで指定した VPC 内の利用可能なすべてのサブネットがあらかじめ選択されています。少なくとも 2 つ選択する必要があります。

     選択するサブネットは [Amazon EKS サブネットの要件](network-reqs.md#network-requirements-subnets)を満たす必要があります。サブネットを選択する前に、[Amazon EKS VPC およびサブネットの要件と考慮事項](network-reqs.md)をすべて理解しておくことをお勧めします。

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

     セキュリティグループを選択するかどうかにかかわらず、Amazon EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。Amazon EKS はこのセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。Amazon EKS が作成するクラスターセキュリティグループの詳細については「[クラスターの Amazon EKS セキュリティグループ要件を表示する](sec-group-reqs.md)」を参照してください。Amazon EKS が作成するクラスターセキュリティグループのルールを変更できます。
   +  **クラスターの IP アドレスファミリーの選択** – **IPv4** と **IPv6** のどちらかを選択できます。

     デフォルトで、Kubernetes は `IPv4` アドレスを Pod とサービスに割り当てます。`IPv6` ファミリーの使用を決定する前に、[VPC の要件と考慮事項](network-reqs.md#network-requirements-vpc)、[サブネットの要件と考慮事項](network-reqs.md#network-requirements-subnets)、[クラスターの Amazon EKS セキュリティグループ要件を表示する](sec-group-reqs.md)、および [クラスター、Pod、サービスに対する IPv6 アドレスの説明](cni-ipv6.md) のトピックの考慮事項と要件をすべて理解していることを確認します。`IPv6` ファミリーを選択すると、Kubernetes が `IPv6` サービスアドレスを割り当てる範囲を `IPv4` ファミリーで指定できるようには指定できません。Kubernetes は、一意のローカルアドレス範囲 (`fc00::/7`) からサービスにアドレスを割り当てます。
   + (オプション) **[Kubernetes サービス IP アドレスの範囲を設定する]** を選択し、**[サービスの `IPv4` 範囲]** を指定します。

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

     この　CIDR ブロックでは以下の要件を満たす必要があります：
     + `10.0.0.0/8`、`172.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 サーバーエンドポイント](cluster-endpoint.md)」を参照してください。

     このページを読み終えたら、**[次へ]** を選択してください。

1. (オプション) **[オブザーバビリティの設定]** ページで、有効にする **[メトリクス]** と **[コントロールプレーンのロギング]** オプションを選択してください。デフォルトではそれぞれのログタイプは無効化されています。
   + Prometheus メトリクスの詳細については、「[ステップ 1: Prometheus メトリクスを有効にする](prometheus.md#turn-on-prometheus-metrics)」を参照してください。
   + **[トラフィック設定]** のオプションの詳細については「[コントロールプレーンログを CloudWatch Logs に送信する](control-plane-logs.md)」を参照してください。

   このページを読み終えたら、**[次へ]** を選択してください。

1. **[アドオンの選択]** ページで、クラスターに追加するアドオンを選択してください。特定のアドオンが事前に選択されています。**[Amazon EKS アドオン]** と **[AWS マーケットプレイス アドオン]** は必要な数だけ選択できます。インストールする **AWS マーケットプレイス アドオン**がリストされていない場合はページ番号をクリックして追加のページ結果を表示するか、または検索ボックスにテキストを入力して使用可能な **AWS マーケットプレイス アドオン**を検索できます。**[カテゴリ]**、**[ベンダー]**、または **[料金モデル]** でフィルタリングして、検索結果からアドオンを選択することもできます。クラスターを作成する際に、「[EKS Pod Identity が Pod に AWS サービスへのアクセス権を付与する仕組みを学ぶ](pod-identities.md)」で詳述されているように、EKS ポッドアイデンティティー をサポートするアドオンを表示、選択、インストールできます。

   このページを読み終えたら、**[次へ]** を選択してください。

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

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

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

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

1. **[確認と作成]** ページで、前のページで入力または選択した情報を確認します。変更する必要がある場合は**[編集]** を選択してください。そのままでよければ、**[作成]** を選択してください。クラスターがプロビジョニングされている間、**[ステータス]** フィールドに **[作成中]** と表示されます。
**注記**  
リクエストで指定したアベイラビリティーゾーンのいずれかに、Amazon EKS クラスターの作成に十分な容量がない場合にはエラーが表示されることがあります。このエラー出力には新しいクラスターをサポートできるアベイラビリティーゾーンが表示されます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については「[容量不足](troubleshooting.md#ice)」を参照してください。

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

1. 「[ステップ 3: kubeconfig を更新する](#step3)」に進みます 

### クラスターの作成 - AWS CLI
<a name="step2-cli"></a>

1. 下記のコマンドを使用して、クラスターを作成します。コマンドを実行する前に、次の置き換えを行います：
   + *地域コード* はクラスターを作成する AWS リージョンに置き換えます。
   + *マイクラスター* の部分は自分のクラスター名に置き換えます。この名前には英数字 (大文字と小文字が区別されます)、ハイフン、下線のみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。
   + *1.35* を [Amazon EKS がサポートする任意のバージョン](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)に置き換えます。
   + *111122223333* をアカウント ID に、*myAmazonEKSClusterRole* をクラスター IAM ロールの名前に置き換えます。
   + `subnetIds` の値を独自の値に置き換えます。さらに ID を追加することもできます。少なくとも 2 つのサブネット ID を指定する必要があります。

     選択するサブネットは [Amazon EKS サブネットの要件](network-reqs.md#network-requirements-subnets)を満たす必要があります。サブネットを選択する前に、[Amazon EKS VPC およびサブネットの要件と考慮事項](network-reqs.md)をすべて理解しておくことをお勧めします。
   + セキュリティグループ ID を指定しない場合はコマンドから `,securityGroupIds=sg-<ExampleID1>` を削除します。1 つまたは複数のセキュリティグループ ID を指定する場合は`securityGroupIds` の値を独自の値に置き換えます。さらに ID を追加することもできます。

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

     ```
     aws eks create-cluster --region region-code --name my-cluster --kubernetes-version 1.35 \
        --role-arn arn:aws:iam::111122223333:role/myAmazonEKSClusterRole \
        --resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1
     ```
**注記**  
リクエストで指定したアベイラビリティーゾーンのいずれかに、Amazon EKS クラスターの作成に十分な容量がない場合にはエラーが表示されることがあります。このエラー出力には新しいクラスターをサポートできるアベイラビリティーゾーンが表示されます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については「[容量不足](troubleshooting.md#ice)」を参照してください。

     必要に応じて前のコマンドに追加する必要があるオプションの設定を次に示します。これらのオプションはクラスターの作成時にのみ有効にすることができ、作成後は有効にできません。
   + デフォルトではEKS はクラスターの作成時に複数のネットワーキングアドオンをインストールします。これには Amazon VPC CNI、CoreDNS、kube-proxy が含まれます。

     これらのデフォルトのネットワーキングアドオンのインストールを無効にする場合は以下のパラメータを使用します。これはCilium などの代替 CNI に使用できます。詳細については「[EKS API リファレンス](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html)」を参照してください。

      `aws eks create-cluster --no-bootstrap-self-managed-addons …​` 
   + どの `IPv4` Classless Inter-domain Routing (CIDR) ブロックから Kubernetes がサービス IP アドレスを割り当てるかを指定する場合、`--kubernetes-network-config serviceIpv4Cidr=<cidr-block>` を次のコマンドに追加することによって指定する必要があります。

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

     この　CIDR ブロックでは以下の要件を満たす必要があります：
     + `10.0.0.0/8`、`172.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` アドレスを Pod とサービスに割り当てるようにする場合は、次のコマンドに `--kubernetes-network-config ipFamily=ipv6` を追加します。

     デフォルトで、Kubernetes は `IPv4` アドレスを Pod とサービスに割り当てます。`IPv6` ファミリーの使用を決定する前に、[VPC の要件と考慮事項](network-reqs.md#network-requirements-vpc)、[サブネットの要件と考慮事項](network-reqs.md#network-requirements-subnets)、[クラスターの Amazon EKS セキュリティグループ要件を表示する](sec-group-reqs.md)、および [クラスター、Pod、サービスに対する IPv6 アドレスの説明](cni-ipv6.md) のトピックの考慮事項と要件をすべて理解していることを確認します。`IPv6` ファミリーを選択すると、Kubernetes が `IPv6` サービスアドレスを割り当てる範囲を `IPv4` ファミリーで指定できるようには指定できません。Kubernetes は、一意のローカルアドレス範囲 (`fc00::/7`) からサービスにアドレスを割り当てます。

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

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

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

1. 「[ステップ 3: kubeconfig を更新する](#step3)」に進みます 

## ステップ 3: kubeconfig を更新する
<a name="step3"></a>

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

   ```
   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
   ```

1. 次のコマンドを実行して、クラスターとの通信を確認します。

   ```
   kubectl get svc
   ```

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

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

## ステップ 4: クラスターのセットアップ
<a name="_step_4_cluster_setup"></a>

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

1. (推奨) Amazon EC2 ノードをクラスターにデプロイする前に Amazon VPC CNI plugin for Kubernetes プラグイン用にクラスターを設定します。デフォルトではプラグインはクラスターとともにインストールされています。Amazon EC2 ノードをクラスターに追加すると、プラグインは追加する各 Amazon EC2 ノードに自動的にデプロイされます。プラグインでは次の IAM ポリシーのいずれかを IAM ロールにアタッチする必要があります。クラスターが `IPv4` ファミリーを使用する場合は[AmazonEKS\$1CNI\$1Policy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) マネージド IAM ポリシーを使用します。クラスターが `IPv6` ファミリーを使用している場合、[自ら作成した IAM ポリシー](cni-iam-role.md#cni-iam-role-create-ipv6-policy)を使用します。

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

1. AWS マネジメントコンソール を使用してクラスターをデプロイした場合、このステップはスキップできます。AWS マネジメントコンソールでは、デフォルトで、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 アドオン](eks-add-ons.md)」を参照してください。

1. (オプション) まだ作成していない場合は、クラスターの Prometheus メトリクスを有効にできます。詳細については「Amazon Managed Service for Prometheus ユーザーガイド」の「[スクレイパーの作成](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-create)」を参照してください。

1. Amazon EBS ボリュームを使用するクラスターにワークロードをデプロイする予定の場合、ワークロードをデプロイする前に、[Amazon EBS CSI](ebs-csi.md) をクラスターにインストールする必要があります。

## 次のステップ
<a name="_next_steps"></a>
+ クラスターを作成した [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)はクラスターにアクセスできる唯一のプリンシパルです。[他の IAM プリンシパルに許可を付与](grant-k8s-access.md)して、クラスターにアクセスできるようにします。
+ クラスターを作成した IAM プリンシパルが、前提条件で参照されている最低限の IAM 許可しか持たない場合、そのプリンシパルに Amazon EKS 許可を追加することができます。Amazon EKS 許可を IAM プリンシパルに付与する方法については「[Amazon EKS の Identity and Access Management](security-iam.md)」を参照してください。
+ クラスターを作成した IAM プリンシパル、またはその他のプリンシパルに Amazon EKS コンソールで Kubernetes リソースを表示させる場合は、[必要なアクセス許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)をエンティティに付与します。
+ ノードと IAM プリンシパルが VPC 内からクラスターにアクセスできるようにする場合、クラスターのプライベートエンドポイントを有効にします。デフォルトではパブリックエンドポイントは有効です。プライベートエンドポイントを有効にした後、必要に応じてパブリックエンドポイントを無効にできます。詳細については「[クラスター API サーバーエンドポイント](cluster-endpoint.md)」を参照してください。
+  [クラスターのシークレット暗号化を有効にする](enable-kms.md)。
+  [クラスターのログ記録を設定する](control-plane-logs.md)。
+  [クラスターにノードを追加する](eks-compute.md)。