Amazon EKS
ユーザーガイド

AWS マネジメントコンソール の開始方法

この入門ガイドは、AWS マネジメントコンソール での Amazon EKS の開始に必要なすべてのリソースを作成するのに役立ちます。このガイドでは、Amazon EKS または AWS CloudFormation コンソールで各リソースを手動で作成します。ここで説明するワークフローを使用すると、どのように各リソースが作成されて相互に通信するかを視覚的に把握できます。

eksctl CLI を使用してクラスターノードとワーカーノードを作成することもできます。詳細については、「eksctl の開始方法」を参照してください。

Amazon EKS の前提条件

Amazon EKS クラスターを作成する前に、Kubernetes が AWS リソースを作成するための IAM ロールを作成する必要があります。たとえば、ロードバランサーが作成されると、Kubernetes は、アカウントで Elastic Load Balancing ロードバランサーを作成するための Kubernetes ロールを引き受けます。この操作は 1 回のみ行う必要があり、複数の EKS クラスターに使用できます。

また、使用するクラスター用の VPC とセキュリティグループを作成する必要があります。VPC グループとセキュリティグループは複数の EKS クラスターで使用できますが、各 EKS クラスターに別々の VPC を使用して、ネットワークを分離することをお勧めします。

このセクションでは、kubectl バイナリをインストールし、Amazon EKS を使用するために設定する方法についても説明します。

Amazon EKS サービスロールを作成する

IAM コンソールで Amazon EKS サービスロールを作成する

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. [Roles] を選択してから [Create role] を選びます。

  3. サービスのリストから [EKS] を選択し、ユースケースの [Allows Amazon EKS to manage your clusters on your behalf (Amazon EKS によるクラスターの管理を許可)] を選択したら、[Next: Permissions (次へ: アクセス許可)] を選択します。

  4. [Next: Tags (次の手順: タグ)] を選択します。

  5. (オプション) タグをキーと値のペアとしてアタッチして、メタデータをロールに追加します。IAM でのタグの使用の詳細については、『IAM ユーザーガイド』の IAM エンティティのタグ付けを参照してください。

  6. [Next: Review] を選択します。

  7. [Role name (ロール名)] に、ロールの一意の名前 (例: eksServiceRole) を入力し、[ロールの作成] を選択します。

Amazon EKS クラスター VPC を作成する

このセクションでは、3 つのパブリックサブネット、または 2 つのパブリックサブネットと 2 つのプライベートサブネットを持つ VPC の作成を案内します。この VPC では、NAT ゲートウェイを介したインターネットアクセスが可能です。ワーカーノード用のプライベートサブネットと Kubernetes 用のパブリックサブネットを使用して、パブリックのロードバランサーを作成するネットワークアーキテクチャをお勧めします。

目的の VPC 設定を表すタブを下で選択します。

Only public subnetsPublic and private subnets
Only public subnets

パブリックサブネットのみを持つクラスター VPC を作成するには

  1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソールを開きます。

  2. ナビゲーションバーで、Amazon EKS をサポートするリージョンを選択します。

  3. [スタックの作成] を選択します。

  4. [Choose a template (テンプレートの選択)] で、[Specify an Amazon S3 template URL (Amazon S3 テンプレート URL の指定)] を選択します。

  5. 以下の URL をテキストエリアに貼り付けて、[次へ] を選択します。

    https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-11-15/amazon-eks-vpc-sample.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。たとえば、[eks-vpc] に呼び出します。

    • VpcBlock: VPC の CIDR 範囲を選択します。デフォルト値をそのまま使用できます。

    • Subnet01Block: サブネット 1 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

    • Subnet02Block: サブネット 2 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

    • Subnet03Block: サブネット 3 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

  7. (オプション) [オプション] ページで、スタックリソースをタグ付けします。[次へ] を選択します。

  8. [Review] ページで、[Create ] を選択します。

  9. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。これは、EKS クラスターを作成するときに必要です。このセキュリティグループは、Amazon EKS コントロールプレーンがワーカーノードと通信できるようにサブネット内に作成されたクロスアカウントの Elastic Network Interfaces に適用されます。

  11. 作成された VPC の [VpcId] を記録します。これは、ワーカーノードグループテンプレートを起動する際に必要になります。

  12. 作成されたサブネットの [SubnetIds] を記録します。これは、EKS クラスターを作成するときに必要です。これらは、ワーカーノードが起動するサブネットです。

Public and private subnets

パブリックサブネットとプライベートサブネットを持つクラスター VPC を作成するには

  1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソールを開きます。

  2. ナビゲーションバーで、Amazon EKS をサポートするリージョンを選択します。

  3. [スタックの作成] を選択します。

  4. [Choose a template (テンプレートの選択)] で、[Specify an Amazon S3 template URL (Amazon S3 テンプレート URL の指定)] を選択します。

  5. 以下の URL をテキストエリアに貼り付けて、[次へ] を選択します。

    https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-11-15/amazon-eks-vpc-private-subnets.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。たとえば、[eks-vpc] に呼び出します。

    • VpcBlock: VPC の CIDR 範囲を選択します。デフォルト値をそのまま使用できます。

    • PublicSubnet01Block: パブリックサブネット 1 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

    • PublicSubnet02Block: パブリックサブネット 2 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

    • PrivateSubnet01Block: プライベートサブネット 1 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

    • PrivateSubnet02Block: プライベートサブネット 2 の CIDR 範囲を指定します。ポッドで数多くの IP アドレスを使用できるよう、デフォルト値のままにしておくことをお勧めします。

  7. (オプション) [オプション] ページで、スタックリソースをタグ付けします。[次へ] を選択します。

  8. [Review] ページで、[Create ] を選択します。

  9. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。これは、EKS クラスターを作成するときに必要です。このセキュリティグループは、Amazon EKS コントロールプレーンがワーカーノードと通信できるようにサブネット内に作成されたクロスアカウントの Elastic Network Interfaces に適用されます。

  11. 作成された VPC の [VpcId] を記録します。これは、ワーカーノードグループテンプレートを起動する際に必要になります。

  12. 作成されたサブネットの [SubnetIds] を記録します。これは、EKS クラスターを作成するときに必要です。これらは、ワーカーノードが起動するサブネットです。

  13. Kubernetes で内部ロードバランサーに使用できるよう、プライベートサブネットにタグ付ける必要があります。

    1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

    2. 左側のナビゲーションで、[サブネット] を選択します。

    3. Amazon EKS クラスターの VPC のプライベートサブネットの 1 つを選択し (文字列 PrivateSubnet を使用して絞り込むことができます)、[タグ] タブを選択して、[Add/Edit Tags (タグの追加/編集)] を選択します。

    4. [タグの作成] を選択し、次のキーと値を追加して、[保存] を選択します。

      キー

      kubernetes.io/role/internal-elb

      1

    5. VPC 内のプライベートサブネットごとに、以下のサブステップを繰り返します。

Amazon EKS の kubectl をインストールして設定する

Kubernetes では、クラスター API サーバーとの通信に kubectl というコマンドラインユーティリティを使用します。

kubectl を Amazon EKS にインストールするには

  • オペレーティングシステムに kubectl をダウンロードしてインストールするには、複数のオプションがあります。

    • kubectl バイナリは、多数のオペレーティングシステムのパッケージで利用できます。このオプションは多くの場合、手動のダウンロードおよびインストールプロセスよりはるかに簡単です。Kubernetes のドキュメントにある個別のオペレーティングシステムやパッケージマネージャー用の手順に従えばインストールできます。

    • Amazon EKS では、同じバージョンのアップストリーム kubectl バイナリと同一の使用できる kubectl バイナリ が発行されています。Amazon EKS が発行したお使いのオペレーティングシステム用のバイナリをインストールするには、「kubectl のインストール」を参照してください。

最新の AWS CLI をインストールする

Amazon EKS クラスターで kubectl を使用するには、クラスター API サーバー通信に必要なクライアントセキュリティトークンを作成できるバイナリをインストールする必要があります。AWS CLI のバージョン 1.16.283 以上で使用可能な aws eks get-token コマンドは、クライアントセキュリティトークンの作成をサポートしています。AWS CLI をインストールまたはアップグレードするには、AWS Command Line Interface ユーザーガイド の「AWS コマンドラインインターフェイスのインストール」を参照してください。

重要

yumapt-get、または macOS の Homebrew は、AWS CLI より数バージョン遅れることがあります。最新バージョンを確実に入手するには、AWS Command Line Interface ユーザーガイド の 「AWS コマンドラインインターフェイスのインストール」を参照してください。

AWS CLI のバージョンは、以下のコマンドを使用して確認できます。

aws --version

注記

システムの Python のバージョンは 2.7.9 以上であることが必要です。そうでない場合は、AWS CLI で Amazon EKS を呼び出すと hostname doesn't match エラーが発生します。詳細については、Python Requests FAQ の「What are "hostname doesn't match" errors?」 を参照してください。

システムにバージョン 1.16.283 以上の AWS CLI をインストールできない場合は、AWS IAM Authenticator for Kubernetes がシステムにインストールされていることを確認する必要があります。詳細については、「aws-iam-authenticator のインストール」を参照してください。

ステップ 1: Amazon EKS クラスターを作成する

Amazon EKS クラスターを作成できるようになりました。このセクションでは、最新機能をすべて利用するために Amazon EKS で利用可能な Kubernetes の最新バージョンでクラスターを作成する方法について説明します。一部の機能は、Kubernetes の古いバージョンでは利用できません。

重要

Amazon EKS クラスターが作成されたら、クラスターを作成する IAM エンティティ (ユーザーまたはロール) は、管理者 (system:master アクセス許可が付与されている) として Kubernetes RBAC 認証テーブルに追加されます。最初は、その IAM ユーザーだけが kubectl を使用して Kubernetes API サーバーを呼び出すことができます。詳細については、「クラスターのユーザーまたは IAM ロールの管理」を参照してください。コンソールを使用してクラスターを作成する場合は、クラスター上で kubectl コマンドを実行する際、同じ IAM ユーザー認証情報が AWS SDK 認証情報チェーンにあることを確認する必要があります。

AWS CLI をインストールして設定する場合は、ユーザーの IAM 認証情報を設定できます。AWS CLI がユーザーに対して適切に設定されている場合は、eksctl および AWS IAM Authenticator for Kubernetes でこれらの認証情報も検索できます。詳細については、AWS Command Line Interface ユーザーガイド の「AWS CLI の設定」を参照してください。

コンソールを使用してクラスターを作成するには

  1. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters.

  2. [クラスターの作成] を選択します。

    注記

    IAM ユーザーに管理者権限がない場合は、Amazon EKS API オペレーションを呼び出すために、そのユーザーのアクセス権限を明示的に追加する必要があります。詳細については、「Amazon EKS アイデンティティベースのポリシーの例」を参照してください。

  3. [クラスターを作成] ページで、以下のフィールドに入力し、[作成] を選択します。

    • Cluster name: クラスターの一意の名前。

    • Kubernetes version: クラスターで使用する Kubernetes のバージョン。デフォルトでは、入手可能な最新バージョンが選択されます。

      重要

      この入門ガイドでは、利用可能な最新の Kubernetes バージョンを選択する必要があります。

    • [ロール名]: 「Amazon EKS サービスロールを作成する」で作成した IAM ロールを選択します。

    • VPC: 「Amazon EKS クラスター VPC を作成する」で作成した VPC。ドロップダウンリストで VPC の名前を検索できます。

    • Subnets (サブネット): 「Amazon EKS クラスター VPC を作成する」で生成した AWS CloudFormation 出力の「SubnetId」の値 (カンマ区切り)。クラスターのリソースをホストするすべてのサブネットを指定します (ワーカーノード用のプライベートサブネットやロードバランサー用のパブリックサブネットなど)。デフォルトでは、前のフィールドで指定した VPC 内の利用可能なサブネットがあらかじめ選択されています。

    • Security Groups (セキュリティグループ): 「Amazon EKS クラスター VPC を作成する」で生成した AWS CloudFormation 出力の [SecurityGroups] 値。このセキュリティグループのドロップダウン名は [ControlPlaneSecurityGroup] です。

      重要

      ここで指定するセキュリティグループは、ワーカーノード AWS CloudFormation テンプレートによって変更されるため、Amazon EKS では、クラスターコントロールプレーンごとに専用のセキュリティグループを使用することを強くお勧めします (クラスターごとに 1 つ)。セキュリティグループが他のリソースと共有されている場合は、これらのリソースへの接続をブロックまたは妨害する可能性があります。

    • Endpoint private access (エンドポイントへのプライベートアクセス): クラスターの Kubernetes API サーバーエンドポイントに対するプライベートアクセスを有効にするか無効にするかを選択します。プライベートアクセスを有効にした場合、クラスターの VPC 内から送信される Kubernetes API リクエストは、プライベート VPC エンドポイントを使用します。詳細については、「Amazon EKS クラスターエンドポイントのアクセスコントロール」を参照してください。

    • Endpoint public access (エンドポイントへのパブリックアクセス): クラスターの Kubernetes API サーバーエンドポイントに対するパブリックアクセスを有効にするか無効にするかを選択します。パブリックアクセスを無効にすると、クラスターの Kubernetes API サーバーはクラスター VPC 内からのみリクエストを受信できます。詳細については、「Amazon EKS クラスターエンドポイントのアクセスコントロール」を参照してください。

    • ログ記録 – ログタイプごとに、そのログタイプを [有効] にするか [無効] にするかを選択します。各ログタイプは、デフォルトで [無効] になっています。詳細については、「Amazon EKS コントロールプレーンのログ記録」を参照してください。

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

    注記

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

  4. [クラスター] ページで、新しく作成したクラスターの名前を選択してクラスター情報を表示します。

  5. クラスターのプロビジョニングプロセスが完了するまで、[状況] フィールドには [作成中] と表示されます。クラスターのプロビジョニングには通常、10 ~ 15 分かかります。

ステップ 2: kubeconfig ファイルを作成する

このセクションでは、クラスターの kubeconfig ファイルを AWS CLI update-kubeconfig コマンドを使って作成します。AWS CLI をインストールしない場合、または kubeconfig を手作業で作成または更新する場合は、「kubeconfig を Amazon EKS 用に作成します。」を参照してください。

kubeconfig ファイルを AWS CLI で作成するには

  1. 1.16.283 以上の AWS CLI がインストールされていることを確認します。AWS CLI をインストールまたはアップグレードするには、AWS Command Line Interface ユーザーガイド の「AWS コマンドラインインターフェイスのインストール」を参照してください。

    注記

    システムの Python のバージョンは 2.7.9 以上であることが必要です。そうでない場合は、AWS CLI で Amazon EKS を呼び出すと hostname doesn't match エラーが発生します。詳細については、Python Requests FAQ の「What are "hostname doesn't match" errors?」 を参照してください。

    AWS CLI のバージョンは、以下のコマンドを使用して確認できます。

    aws --version

    重要

    yumapt-get、または macOS の Homebrew は、AWS CLI より数バージョン遅れることがあります。最新バージョンを確実に入手するには、AWS Command Line Interface ユーザーガイド の 「AWS コマンドラインインターフェイスのインストール」を参照してください。

  2. クラスターの kubeconfig を作成または更新するには、AWS CLI update-kubeconfig コマンドを使用します。

    • デフォルトでは、最終的な設定ファイルは、ホームディレクトリのデフォルト kubeconfig パス (.kube/config) に作成されるか、その場所で既存 kubeconfig とマージされます。別のパスは --kubeconfig オプションを使用して指定できます。

    • kubectl コマンドを実行するときに、認証に使用する --role-arn オプションを指定して IAM ロール ARN を指定できます。それ以外の場合は、デフォルトの AWS CLI または SDK の認証情報チェーン の中の IAM エンティティが使用されます。デフォルトの AWS CLI または SDK の ID を表示するには、 aws sts get-caller-identity コマンドを実行します。

    • 詳細については、aws eks update-kubeconfig help コマンドを使用するか、AWS CLI Command Reference の「update-kubeconfig」を参照してください。

    aws eks --region region update-kubeconfig --name cluster_name
  3. 設定をテストします。

    kubectl get svc

    注記

    "aws-iam-authenticator": executable file not found in $PATH エラーが発生した場合、kubectl は、Amazon EKS に設定されていません。詳細については、「aws-iam-authenticator のインストール」を参照してください。

    その他の認可またはリソースタイプのエラーが発生した場合は、トラブルシューティングセクションの 許可されていないか、アクセスが拒否されました (kubectl) を参照してください。

    出力:

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

ステップ 3: マネージド型ノードグループの起動

これで、VPC および Kubernetes コントロールプレーンが作成され、マネージド型ノードグループを起動し、設定できるようになりました。

重要

Amazon EKS ワーカーノードは標準の Amazon EC2 インスタンスであり、通常の Amazon EC2 インスタンス価格に基づいて請求されます。詳細については、「Amazon EC2 料金表」を参照してください。

Amazon EKS ワーカーノード kubelet デーモンは、ユーザーに代わって AWS API への呼び出しを実行します。ワーカーノードは、IAM インスタンスプロファイルおよび関連ポリシーを通じて、これらの API コールのアクセス許可を受け取ります。ワーカーノードを起動してクラスターに登録する前に、起動するときに使用するワーカーノード用の IAM ロールを作成する必要があります。詳細については、「Amazon EKS ワーカーノード IAM ロール」を参照してください。

注記

クラスターごとに新しいワーカーノード IAM ロールを作成することをお勧めします。そうしない場合、あるクラスターのノードが、属していない別のクラスターで認証される可能性があります。

Amazon EKS ワーカーノード IAM ロールを作成するには

  1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソールを開きます。

  2. [スタックの作成] を選択します。

  3. [Choose a template (テンプレートの選択)] で、[Specify an Amazon S3 template URL (Amazon S3 テンプレート URL の指定)] を選択します。

  4. 以下の URL をテキストエリアに貼り付けて、[次へ] を選択します。

    https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-11-15/amazon-eks-nodegroup-role.yaml
  5. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。たとえば、eks-node-group-instance-roe と呼ぶことができます。

  6. (オプション)[オプション] ページで、スタックリソースをタグ付けできます。[次へ] を選択します。

  7. [確認] ページで、[機能] セクションのチェックボックスをオンにして、[スタックの作成] を選択します。

  8. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  9. 作成された IAM ロールの [NodeInstanceRole] 値を記録します。これは、ノードグループを作成するときに必要です。

マネージド型ノードグループを起動するには

  1. クラスターステータスが ACTIVE と表示されるまで待ちます。まだ ACTIVE ではないクラスターにはマネージド型ノードグループを作成できません。

  2. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters.

  3. マネージド型ノードグループを作成するクラスターの名前を選択します。

  4. [クラスター] ページで、[Add node group (ノードグループの追加)] を選択します。

  5. [Configure node group (ノードグループの設定)] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • [名前] — マネージド型ノードグループの一意の名前を入力します。

    • [ノード IAM ロール名] — ノードグループで使用するノードインスタンスロールを選択します。詳細については、「Amazon EKS ワーカーノード IAM ロール」を参照してください。

    • [サブネット] — マネージド型ノードを起動するサブネットを選択します。

      重要

      Amazon EBS ボリュームによってバックアップされ、Kubernetes Cluster Autoscaler を使用する複数のアベイラビリティーゾーンにわたってステートフルアプリケーションを実行している場合、それぞれが単一のアベイラビリティーゾーンにスコープされる複数のノードグループを設定する必要があります。また、--balance-similar-node-groups 機能を有効にする必要があります。

    • [リモートアクセス] —(オプション)マネージド型ノードグループ内のノードへの SSH アクセスを有効にすることができます。これにより、インスタンスに接続し、問題がある場合に診断情報を収集できます。リモートアクセスを有効にするには、以下の手順に従います。

      注記

      ノードグループを作成するときは、リモートアクセスを有効にすることを強くお勧めします。ノードグループの作成後にリモートアクセスを有効にすることはできません。

      1. [Allow remote access to nodes (ノードへのリモートアクセスを許可する)] チェックボックスをオンにします。

      2. [SSH キーペア] の場合は、使用する Amazon EC2 SSH キーを選択します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 のキーペア」を参照してください。

      3. [Allow remote access from (許可するリモートアクセス元)] で、[すべて] を選択してインターネット上の任意の場所 (0.0.0.0/0) から SSH アクセスを許可するか、セキュリティグループを選択して、そのセキュリティグループに属するインスタンスからの SSH アクセスを許可します。

    • [タグ] —(オプション)Amazon EKS マネージド型ノードグループにタグを付けるように選択できます。これらのタグは、Auto Scaling グループやインスタンスなど、ノードグループ内の他のリソースには伝達されません。詳細については、「Amazon EKS リソースにタグを付ける」を参照してください。

    • [Kubernetes labels (Kubernetes ラベル)] —(オプション)マネージド型ノードグループ内のノードに Kubernetes ラベルを適用するように選択できます。

  6. [Set compute configuration (コンピューティング構成の設定)] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • [AMI タイプ] — GPU 以外のインスタンスの場合は [Amazon Linux 2 (AL2_x86_64)] を選択し、GPU インスタンスの場合は [Amazon Linux 2 GPU Enabled (AL2_x86_64_GPU) (Amazon Linux 2 GPU 有効 (AL2_x86_64_GPU))] を選択します。

    • [インスタンスタイプ] — マネージド型ノードグループで使用するインスタンスタイプを選択します。大きいインスタンスタイプほど、多くのポッドに対応できます。

    • [ディスクサイズ] — ワーカーノードのルートボリュームに使用するディスクサイズ(GiB 単位)を入力します。

  7. [Setup scaling policies (スケーリングポリシーの設定)] ページで、必要に応じてパラメータを入力し、[次へ] を選択します。

    注記

    Amazon EKS は、ノードグループを自動的にスケールインまたはスケールアウトしません。ただし、これを行うように Kubernetes Cluster Autoscaler を設定することはできます。

    • [最小サイズ] — マネージド型ノードグループがスケールインできるワーカーノードの最小数を指定します。

    • [最大サイズ] — マネージド型ノードグループがスケールアウトできるワーカーノードの最大数を指定します。

    • [必要なサイズ] — マネージド型ノードグループが起動時に保持する必要があるワーカーノードの現在の数を指定します。

  8. [確認と作成] ページで、マネージド型ノードグループの設定を確認し、[作成] を選択します。

  9. ノードのステータスを監視し、Ready ステータスになるまで待機します。

    kubectl get nodes --watch
  10. (GPU ワーカーのみ) GPU インスタンスタイプと Amazon EKS 最適化 AMI GPU 対応を選択した場合は、NVIDIA device plugin for Kubernetes を、次のコマンドを使ってクラスターに設定されたデーモンセットとして適用しなければなりません。

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta/nvidia-device-plugin.yml

(オプション) Windows ワーカーノードを起動するには

クラスターに Windows サポートを追加し、Windows ワーカーノードを起動します。詳細については、「Windows サポート」を参照してください。クラスターで Windows ワークロードのみを実行する場合でも、すべての Amazon EKS クラスターには 1 つ以上の Linux ワーカーノードが含まれている必要があります。

次のステップ

ワーカーノードが関連付けられた Amazon EKS クラスターが実行中になったところで、Kubernetes アドオンのインストールとクラスターへのアプリケーションのデプロイを開始できます。以下のトピックは、クラスターの機能を拡張するのに役立ちます。