このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
注記
このトピックではEKS 自動モードl を使用しない EKS クラスターの作成を取り上げています。
EKS 自動モードl クラスターの詳細な作成手順については「Amazon EKS Auto Mode クラスターを作成する」を参照してください。
EKS 自動モードl を使用して開始するには「Amazon EKS – EKS Auto Mode の使用開始」を参照してください。
このトピックでは使用可能なオプションの概要と、アマゾン EKS クラスターの作成時に考慮すべき点を説明します。ノードのコンピューティングとしてオンプレミスインフラストラクチャを使用してクラスターを作成する必要がある場合は「ハイブリッドノードでEKSクラスタを作成する」を参照してください。アマゾン EKS クラスターを初めて作成する場合はAmazon EKS の使用を開始する のガイドのいずれかに従うことをお勧めします。これらのガイドは使用可能なすべてのオプションを展開することなく、シンプルでデフォルトのクラスターを作成するのに役立ちます。
前提条件
-
アマゾン EKS の要件 を満たす既存の VPC とサブネット。本番用にクラスターをデプロイする前に、VPC とサブネットの要件を十分に理解しておくことをお勧めします。VPC とサブネットがない場合はアマゾン EKS に用意されている AWS クラウドフォーメーション テンプレートを使用して作成できます。
-
デバイスまたは AWS クラウドシェル に、
kubectl
コマンドラインツールがインストールされていること。バージョンはご使用のクラスターの Kubernetes バージョンと同じか、1 つ前のマイナーバージョン以前、あるいはそれより新しいバージョンが使用できます。例えば、クラスターのバージョンが1.29
である場合、kubectl
のバージョン1.28
、1.29
、または1.30
が使用できます。kubectl
をインストールまたはアップグレードする方法については「kubectl および eksctl のセットアップ」を参照してください。 -
ご使用のデバイスまたは AWS クラウドシェル で、バージョン
2.12.3
以降、または AWS コマンドラインインターフェイス (AWS CLI のバージョン1.27.160
以降がインストールおよび設定されていること。現在のバージョンを確認するには「aws --version | cut -d / -f2 | cut -d ' ' -f1
」を参照してください。macOS のyum
、apt-get
、または Homebrew などのパッケージマネージャーはAWS CLI の最新バージョンより数バージョン遅れることがあります。最新バージョンをインストールするには「AWS コマンドラインインターフェイスユーザーガイド」の「インストール」および「aws configure を使用したクイック設定」を参照してください。AWS クラウドシェル にインストールされている AWS CLI バージョンも最新バージョンより数バージョン遅れることがあります。更新するには「AWS クラウドシェル ユーザーガイド」の「ホームディレクトリへの AWS CLI のインストール」を参照してください。 -
アマゾン EKS クラスターを
create
およびdescribe
するための許可を持つ IAM プリンシパル。詳細についてはOutpost にローカル Kubernetes クラスターを作成しますおよびすべてのクラスターの一覧表示または説明を参照してください。
ステップ 1: クラスター IAM ロールを作成する
-
既にクラスター IAM ロールがある場合、または
eksctl
を使用してクラスターを作成する場合はこのステップはスキップできます。デフォルトではeksctl
により、ロールが自動的に作成されます。 -
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
-
アマゾン 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"
-
アマゾン EKS 管理のポリシーを割り当てるか、独自のカスタムポリシーを作成できます。カスタムポリシーで使用する必要がある最小限の許可については「Amazon EKS クラスター の IAM ロール」を参照してください。
アマゾンEKSクラスターポリシー という名前の アマゾン EKS マネージド型ポリシーをロールにアタッチします。IAM ポリシーを IAM プリンシパルにアタッチするにはポリシーのアタッチを行っているプリンシパルに、次のいずれかの IAM アクション (許可) を割り当てる必要があります:
iam:AttachUserPolicy
またはiam:AttachRolePolicy
。aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
サービスにリンクされたロール
Amazon EMR では、サービスにリンクされたロールが自動的に作成されますAWSServiceRoleForAmazonEKS
。
これはクラスター IAM ロールに追加されます。サービスにリンクされたロールはアマゾン EKS に直接リンクされた一意のタイプの IAM ロールです。このロールにより、アマゾン EKS はアカウント内のクラスターを管理できます。詳細については「Amazon EKS クラスターのロールの使用」を参照してください。
EKS クラスターの作成に使用する IAM ID にはサービスにリンクされたロールを作成するアクセス許可が必要です。これには iam:CreateServiceLinkedRole
権限が含まれます。
サービスにリンクされたロールがまだ存在せず、現在の IAM ロールに作成するための十分なアクセス許可がない場合、クラスター作成オペレーションは失敗します。
ステップ 2: クラスターを作成する
以下を使用してクラスターを作成できます:
クラスターを作成します - eksctl
-
デバイスまたは AWS クラウドシェル にインストールされている
eksctl
コマンドラインツールのバージョン0.199.0
以降が必要です。eksctl
をインストールまたはアップグレードするにはeksctl
ドキュメントの「インストール」を参照してください。 -
デフォルトの AWS リージョンに、アマゾン EKS デフォルトの Kubernetes バージョンを使用して、アマゾン EKS
IPv4
クラスターを作成します。コマンドを実行する前に、次の置き換えを行います: -
地域コード
はクラスターを作成する AWS リージョンに置き換えます。 -
マイクラスター
の部分は自分のクラスター名に置き換えます。この名前には英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。 -
1.29
を アマゾン EKS がサポートする任意のバージョンに置き換えます。 -
要件を満たすように
vpc-private-subnets
の値を変更します。さらに ID を追加することもできます。少なくとも 2 つのサブネット ID を指定する必要があります。パブリックサブネットを指定する場合は--vpc-private-subnets
を--vpc-public-subnets
に変更できます。パブリックサブネットにはインターネットゲートウェイへのルートに関連付けられたルートテーブルがありますが、プライベートサブネットには関連付けられたルートテーブルがありません。可能な限り、プライベートサブネットを使用することをお勧めします。選択するサブネットは アマゾン EKS サブネットの要件を満たす必要があります。サブネットを選択する前に、アマゾン EKS VPC およびサブネットの要件と考慮事項をすべて理解しておくことをお勧めします。
-
次のコマンドを実行してください:
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
-
「ステップ 3: kubeconfig を更新する」に進みます
オプション設定
eksctl
を使用してクラスターを作成するときに指定できるほとんどのオプションを表示するにはeksctl create cluster --help
コマンドを使用します。使用可能なオプションをすべて表示するにはconfig
ファイルを使用します。詳細については「eksctl
ドキュメント」の「Using config files
必要に応じて前のコマンドに追加する必要があるオプションの設定を次に示します。これらのオプションはクラスターの作成時にのみ有効にすることができ、作成後は有効にできません。これらのオプションを指定する必要がある場合は前のコマンドを使用するのではなく、eksctl config ファイル
-
アマゾン EKS が作成するネットワークインターフェイスに割り当てる 1 つまたは複数のセキュリティグループを指定する場合はsecurityGroup
オプションを指定します。 セキュリティグループを選択するかどうかにかかわらず、アマゾン EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。アマゾン EKS はこのセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。アマゾン EKS が作成するクラスターセキュリティグループの詳細については「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。アマゾン EKS が作成するクラスターセキュリティグループのルールを変更できます。
-
Kubernetes がサービス IP アドレスを割り当てる
IPv4
Classless Inter-Domain Routing (CIDR) ブロックを指定する場合は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
。 -
アマゾン 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 の要件と考慮事項、サブネットの要件と考慮事項、クラスターの アマゾン EKS セキュリティグループ要件を表示する、および クラスター、Pods、サービスに対する IPv6 アドレスの説明 のトピックの考慮事項と要件をすべて理解していることを確認します。IPv6
ファミリーを選択すると、Kubernetes がIPv6
サービスアドレスを割り当てる範囲をIPv4
ファミリーで指定できるようには指定できません。Kubernetes は特定のローカルアドレス範囲 (fc00::/7
) からサービスアドレスを割り当てます。
クラスターの作成 - AWS コンソール
-
アマゾン EKS コンソール
を開きます。 -
[クラスターを追加]、[作成] の順にクリックします。
-
[設定オプション] で [カスタム設定] を選択してください。
-
EKS 自動モードl でクラスターをすばやく作成する方法については「AWS マネジメントコンソールを使用して EKS Auto Mode クラスターを作成する」を参照してください。
-
-
[EKS 自動モードl] で、[EKS 自動モードl を使用する] をオフに切り替えます。
-
カスタム設定で EKS 自動モードl クラスターを作成する方法については「Amazon EKS Auto Mode クラスターを作成する」を参照してください。
-
-
[クラスターの設定] ページで、次のフィールドに入力します:
-
[名前] - クラスターの名前。この名前には英数字 (大文字と小文字が区別されます)、ハイフン、下線のみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。
-
[クラスター IAM ロール] – ユーザーに代わって AWS リソースを管理することを Kubernetes コントロールプレーンに許可するために作成した アマゾン EKS クラスター IAM ロールを選択してください。
-
[Kubernetes バージョン] - クラスターに使用する Kubernetes のバージョン。以前のバージョンが必要でない限り、最新バージョンを選択することをお勧めします。
-
[サポートタイプ] — クラスターに設定する Kubernetes バージョンポリシー。クラスターを標準サポートバージョンでのみ実行する場合は[標準サポート] を選択できます。バージョンの標準サポート終了時にクラスターで延長サポートに入る場合は[延長サポート] を選択できます。現在延長サポートを利用中の Kubernetes バージョンを選択した場合、オプションとして標準サポートを選択することはできません。
-
[シークレット暗号化] - (オプション) KMS キーを使用して Kubernetes シークレットのシークレット暗号化を有効にするよう選択してください。クラスターを作成した後で、これを有効にすることもできます。この機能を有効にする前に、既存のクラスターで AWS KMS を使用して Kubernetes シークレットを暗号化するの情報をよく理解していることを確認してください。
-
[タグ] - (オプション) クラスターにタグを追加します。詳細については「タグを使用して Amazon EKS リソースを整理する」を参照してください。
-
[ARC ゾーンシフト] – (任意 Route53 アプリケーションリカバリコントローラー を使用して、アベイラビリティーゾーンの障害を軽減できます。詳細については「Amazon EKS での Amazon Application Recovery Controller (ARC) のゾーンシフトの詳細」を参照してください。
-
-
[クラスターの設定] ページの [クラスターアクセス] セクションで、次のフィールドに入力します:
-
[クラスター管理者アクセスをブートストラップ] – クラスター作成者は自動的に Kubernetes 管理者になります。これを無効にする場合は[クラスター管理者アクセスを拒否] を選択してください。
-
[クラスター認証モード] – IAM ユーザーおよびロールに Kubernetes API へのアクセスを許可する方法を決定します。詳細については「クラスター認証モードを設定する」を参照してください。
このページを読み終えたら、[次へ] を選択してください。
-
-
[ネットワーキングの指定] ページで、次のフィールドの値を選択してください:
-
[VPC] – アマゾン EKS VPC 要件を満たす既存の VPC を選択し、そこでクラスターを作成します。VPC を選択する前に、VPC とサブネットの アマゾン EKS ネットワーキング要件を表示するの要件と考慮事項をすべて理解しておくことをお勧めします。クラスターの作成後は使用する VPC を変更できません。VPC が表示されていない場合はまず作成する必要があります。詳細については「Amazon EKS クラスターの Amazon VPC を作成する」を参照してください。
-
[サブネット] - デフォルトで、前のフィールドで指定した VPC 内の利用可能なすべてのサブネットがあらかじめ選択されています。少なくとも 2 つ選択する必要があります。
選択するサブネットは アマゾン EKS サブネットの要件を満たす必要があります。サブネットを選択する前に、アマゾン EKS VPC およびサブネットの要件と考慮事項をすべて理解しておくことをお勧めします。
[セキュリティグループ] - (オプション アマゾン EKS が作成するネットワークインターフェイスに関連付ける 1 つまたは複数のセキュリティグループを指定します。
セキュリティグループを選択するかどうかにかかわらず、アマゾン EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。アマゾン EKS はこのセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。アマゾン EKS が作成するクラスターセキュリティグループの詳細については「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。アマゾン 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/8
、172.16.0.0/12
、または192.168.0.0/16
のいずれかの範囲内にある。 -
最小サイズが
/24
、最大サイズが/12
。 -
アマゾン EKS リソースの VPC の範囲と重複しない。
-
このオプションを指定できるのは
IPv4
アドレスファミリーを使用してクラスターを作成するときのみです。これを指定しない場合、Kubernetes は10.100.0.0/16
または172.20.0.0/16
のいずれかの CIDR ブロックからサービス IP アドレスを割り当てます。-
[クラスターエンドポイントのアクセス] で、オプションを選択してください。クラスターを作成した後で、このオプションを変更できます。デフォルト以外のオプションを選択する前に、オプションとその意味を理解しておいてください。詳細については「クラスター API サーバーエンドポイントへのネットワークアクセスを制御する」を参照してください。
このページを読み終えたら、[次へ] を選択してください。
-
-
(オプション) [オブザーバビリティの設定] ページで、有効にする [メトリクス] と [コントロールプレーンのロギング] オプションを選択してください。デフォルトではそれぞれのログタイプは無効化されています。
-
Prometheus メトリクスの詳細については「ステップ 1: Prometheus メトリクスをオンにする」を参照してください。
-
[トラフィック設定] のオプションの詳細については「コントロールプレーンログを CloudWatch Logs に送信する」を参照してください。
このページを読み終えたら、[次へ] を選択してください。
-
-
[アドオンの選択] ページで、クラスターに追加するアドオンを選択してください。特定のアドオンが事前に選択されています。[アマゾン EKS アドオン] と [AWS マーケットプレイス アドオン] は必要な数だけ選択できます。インストールする AWS マーケットプレイス アドオンがリストされていない場合はページ番号をクリックして追加のページ結果を表示するか、または検索ボックスにテキストを入力して使用可能な AWS マーケットプレイス アドオンを検索できます。[カテゴリ]、[ベンダー]、または [料金モデル] でフィルタリングして、検索結果からアドオンを選択することもできます。クラスターを作成する際に、「EKS Pod Identity がポッドに AWS サービスへのアクセス権を付与する方法を学ぶ」で詳述されているように、EKS ポッドアイデンティティー をサポートするアドオンを表示、選択、インストールできます。
このページを読み終えたら、[次へ] を選択してください。
アマゾン VPC CNI、CoreDNS、kube-proxy などの一部のアドオンはデフォルトでインストールされます。デフォルトのアドオンのいずれかを無効にすると、Kubernetes アプリケーションを実行する機能に影響する場合があります。
-
[選択したアドオン設定の構成] ページで、インストールするバージョンを選択し、[次へ] を選択してください。クラスターを作成した後はいつでも新しいバージョンに更新できます。
EKS ポッドアイデンティティー をサポートするアドオンの場合、コンソールを使用して、アドオン専用に事前入力された名前、AWS マネージドポリシー、信頼ポリシーを使用してロールを自動的に生成できます。既存のロールを再利用したり、サポートされているアドオン用の新しいロールを作成したりできます。コンソールを使用して EKS ポッドアイデンティティー をサポートするアドオンのロールを作成するためのステップについては「アドオンの作成 (AWS コンソール)」を参照してください。アドオンが EKS Pod Identity をサポートしていない場合、クラスターの作成後にウィザードを使用してサービスアカウント用の IAM ロール (IRSA 作成する手順を示すメッセージが表示されます。
クラスターの作成後に、各アドオンの設定を更新できます。アドオンの設定の詳細については「アマゾン EKS アドオンを更新する」を参照してください。このページを読み終えたら、[次へ] を選択してください。
-
[確認と作成] ページで、前のページで入力または選択した情報を確認します。変更する必要がある場合は[編集] を選択してください。そのままでよければ、[作成] を選択してください。クラスターがプロビジョニングされている間、[ステータス] フィールドに [作成中] と表示されます。
注記
リクエストで指定したアベイラビリティーゾーンのいずれかに、アマゾン EKS クラスターの作成に十分な容量がない場合にはエラーが表示されることがあります。このエラー出力には新しいクラスターをサポートできるアベイラビリティーゾーンが表示されます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については「容量不足」を参照してください。
クラスターのプロビジョニングには数分かかります。
-
「ステップ 3: kubeconfig を更新する」に進みます
クラスターの作成 - AWS CLI
-
下記のコマンドを使用して、クラスターを作成します。コマンドを実行する前に、次の置き換えを行います:
-
地域コード
はクラスターを作成する AWS リージョンに置き換えます。 -
マイクラスター
の部分は自分のクラスター名に置き換えます。この名前には英数字 (大文字と小文字が区別されます)、ハイフン、下線のみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。 -
1.30
を アマゾン EKS がサポートする任意のバージョンに置き換えます。 -
111122223333
をアカウント ID に、マイアマゾンEKSクラスター役割
をクラスター IAM ロールの名前に置き換えます。 -
subnetIds
の値を独自の値に置き換えます。さらに ID を追加することもできます。少なくとも 2 つのサブネット ID を指定する必要があります。選択するサブネットは アマゾン EKS サブネットの要件を満たす必要があります。サブネットを選択する前に、アマゾン EKS VPC およびサブネットの要件と考慮事項をすべて理解しておくことをお勧めします。
-
セキュリティグループ ID を指定しない場合はコマンドから
,securityGroupIds=sg-<ExampleID1>
を削除します。1 つまたは複数のセキュリティグループ ID を指定する場合はsecurityGroupIds
の値を独自の値に置き換えます。さらに ID を追加することもできます。セキュリティグループを選択するかどうかにかかわらず、アマゾン EKS はクラスターと VPC 間の通信を可能にするセキュリティグループを作成します。アマゾン EKS はこのセキュリティグループおよびユーザーが選択したセキュリティグループを、作成するネットワークインターフェイスに関連付けます。アマゾン EKS が作成するクラスターセキュリティグループの詳細については「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。アマゾン 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
注記
リクエストで指定したアベイラビリティーゾーンのいずれかに、アマゾン EKS クラスターの作成に十分な容量がない場合にはエラーが表示されることがあります。このエラー出力には新しいクラスターをサポートできるアベイラビリティーゾーンが表示されます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については「容量不足」を参照してください。
必要に応じて前のコマンドに追加する必要があるオプションの設定を次に示します。これらのオプションはクラスターの作成時にのみ有効にすることができ、作成後は有効にできません。
-
デフォルトではEKS はクラスターの作成時に複数のネットワーキングアドオンをインストールします。これにはアマゾン 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/8
、172.16.0.0/12
、または192.168.0.0/16
のいずれかの範囲内にある。 -
最小サイズが
/24
、最大サイズが/12
。 -
アマゾン 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
) からサービスアドレスを割り当てます。
-
-
クラスターがプロビジョニングされるまでに数分かかります。クラスターのステータスのクエリを実行するには次のコマンドを使用します。
aws eks describe-cluster --region region-code --name my-cluster --query "cluster.status"
出力が「
ACTIVE
」を返すまで、次のステップに進まないでください。 -
「ステップ 3: kubeconfig を更新する」に進みます
ステップ 3: kubeconfig を更新する
-
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
-
次のコマンドを実行して、クラスターとの通信を確認します。
kubectl get svc
出力例は次のとおりです。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
ステップ 4: クラスターのセットアップ
-
(推奨 アマゾン EKS アドオンを使用するか、固有の AWS アイデンティティとアクセス管理 (IAM アクセス許可を個々の Kubernetes ワークロードに付与できるようにするにはクラスター用に IAM OpenID コネクト (OIDC プロバイダーを作成します。クラスター用に IAM OIDC プロバイダーを作成する必要があるのは 1 回だけです。アマゾン EKS アドオンの詳細については「アマゾン EKS アドオン」を参照してください。ワークロードに特定の IAM アクセス許可を割り当てる方法については「サービスアカウントの IAM ロール」を参照してください。
-
(推奨 アマゾン EC2 ノードをクラスターにデプロイする前に Amazon VPC CNI plugin for Kubernetes プラグイン用にクラスターを設定します。デフォルトではプラグインはクラスターとともにインストールされています。アマゾン EC2 ノードをクラスターに追加すると、プラグインは追加する各 アマゾン EC2 ノードに自動的にデプロイされます。プラグインでは次の IAM ポリシーのいずれかを IAM ロールにアタッチする必要があります。クラスターが
IPv4
ファミリーを使用する場合はアマゾンEKS_CNI_Policy マネージド IAM ポリシーを使用します。クラスターがIPv6
ファミリーを使用している場合、自ら作成した IAM ポリシーを使用します。ポリシーをアタッチする IAM ロールはノード IAM ロール、またはプラグインにのみ使用される専用ロールです。このロールにポリシーをアタッチすることをお勧めします。ロールの作成の詳細については「IRSA を使用するように アマゾン VPC CNI プラグインを設定する」または「アマゾン EKS ノードの IAM ロール」を参照してください。
-
AWS Management Console を使用してクラスターをデプロイした場合、このステップはスキップできます。AWS Management Console ではデフォルトで、Amazon VPC CNI plugin for Kubernetes、CoreDNS、および
kube-proxy
アマゾン EKS アドオンがデプロイされます。eksctl
または AWS CLI のいずれかを使用してクラスターをデプロイする場合、Amazon VPC CNI plugin for Kubernetes、CoreDNS、、およびkube-proxy
セルフマネージドアドオンがデプロイされます。クラスターとともに アマゾン EKS アドオンにデプロイされる Amazon VPC CNI plugin for Kubernetes、CoreDNS、およびkube-proxy
セルフマネージド型アドオンを移行できます。詳細については「アマゾン EKS アドオン」を参照してください。 -
(オプション) まだ作成していない場合はクラスターの Prometheus メトリクスを有効にできます。詳細については「アマゾン プロメテウスのマネージドサービス ユーザーガイド」の「スクレイパーの作成」を参照してください。
-
アマゾン EBS ボリュームを使用するクラスターにワークロードをデプロイする予定で、
1.23
以降のクラスターを作成した場合、ワークロードをデプロイする前に、アマゾン EBS CSI をクラスターにインストールする必要があります。
次のステップ
-
クラスターを作成した IAM プリンシパルはクラスターにアクセスできる唯一のプリンシパルです。他の IAM プリンシパルに許可を付与して、クラスターにアクセスできるようにします。
-
クラスターを作成した IAM プリンシパルが、前提条件で参照されている最低限の IAM 許可しか持たない場合、そのプリンシパルに アマゾン EKS 許可を追加することができます。アマゾン EKS 許可を IAM プリンシパルに付与する方法については「Amazon EKS の Identity and Access Management」を参照してください。
-
クラスターを作成した IAM プリンシパル、またはその他のプリンシパルに アマゾン EKS コンソールで Kubernetes リソースを表示させる場合は必要なアクセス許可をエンティティに付与します。
-
ノードと IAM プリンシパルが VPC 内からクラスターにアクセスできるようにする場合、クラスターのプライベートエンドポイントを有効にします。デフォルトではパブリックエンドポイントは有効です。プライベートエンドポイントを有効にした後、必要に応じてパブリックエンドポイントを無効にできます。詳細については「クラスター API サーバーエンドポイントへのネットワークアクセスを制御する」を参照してください。