Amazon EKS
ユーザーガイド

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

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

よりシンプルで自動化された開始方法については、「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-02-11/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-02-11/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.156 以上で使用可能な 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.156 以上の AWS CLI をインストールできない場合は、AWS IAM Authenticator for Kubernetes がシステムにインストールされていることを確認する必要があります。詳細については、「aws-iam-authenticator のインストール」を参照してください。

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

Amazon EKS クラスターを作成できるようになりました。

重要

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 のバージョン。デフォルトでは、入手可能な最新バージョンが選択されます。

    • Role ARN (ロールの ARN): 「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 クラスターを作成するのに十分なキャパシティーがないというエラーが表示される場合があります。この場合、エラー出力には、新しいクラスターをサポートできるアベイラビリティーゾーンが含まれます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については、「容量不足」を参照してください。

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

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

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

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

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

  1. 1.16.156 以上の 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: Amazon EKS ワーカーノードを起動して設定する

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

重要

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

ワーカーノードを起動するには

  1. クラスターステータスが ACTIVE と表示されるまで待ちます。クラスターがアクティブである前にワーカーノードを起動した場合、ワーカーノードはクラスターへの登録に失敗し、再起動する必要があります。

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

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

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

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

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

    https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-nodegroup.yaml

    注記

    ワーカーノードのみをプライベートサブネットにデプロイする予定の場合、AWS CloudFormation デザイナーでこのテンプレートを編集し、NodeLaunchConfigAssociatePublicIpAddress パラメータを false に変更します。

    AssociatePublicIpAddress: 'false'
  7. [詳細の指定] ページで、必要に応じて以下のパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。たとえば、<cluster-name>- ワーカーノードと呼ぶことができます。

    • ClusterName: Amazon EKS クラスター用に作成した際に使用した名前を入力します。

      重要

      この名前は、「ステップ 1: Amazon EKS クラスターを作成する」で使用した名前と完全一致する必要があります。それ以外の場合、ワーカーノードにクラスターを結合できません。

    • ClusterControlPlaneSecurityGroup: 「Amazon EKS クラスター VPC を作成する」で生成した AWS CloudFormation 出力の [SecurityGroups] 値を選択します。

    • NodeGroupName: ノードグループの名前を入力します。この名前は、ワーカーノードに対して作成される Auto Scaling ノードグループを識別するために後で使用できます。

    • NodeAutoScalingGroupMinSize: ワーカーノードの Auto Scaling グループがスケールインする最小ノード数を入力します。

    • NodeAutoScalingGroupDesiredCapacity: スタック作成時にスケーリングする必要のあるノード数を入力します。

    • NodeAutoScalingGroupMaxSize: ワーカーノードの Auto Scaling グループがスケールアウトする最大ノード数を入力します。

    • NodeInstanceType: ワーカーノードのインスタンスタイプを選択します。

      重要

      リージョンによっては使用できないインスタンスタイプがあります。

    • NodeImageId: リージョンの最新の Amazon EKS ワーカーノードの AMI ID を入力します。最新の Amazon EKS 最適化 AMI (GPU 対応あり/なし) の AMI ID を次の表に示します。

      注記

      Amazon EKS 最適化 AMI (GPU 対応) では、P2 および P3 のインスタンスタイプのみサポートしています。これらのインスタンスタイプは必ず、ワーカーノードの AWS CloudFormation テンプレートで指定してください。GPU 対応の Amazon EKS 最適化 AMI を使用することで、NVIDIA のエンドユーザーライセンス契約 (EULA) に同意したものとみなされます。

      Kubernetes version 1.13.7Kubernetes version 1.12.7Kubernetes version 1.11.9
      Kubernetes version 1.13.7
      リージョン Amazon EKS 最適化 AMI (GPU 対応)
      米国東部 (オハイオ) (us-east-2) ami-0485258c2d1c3608f ami-0ccac9d9b57864000
      米国東部 (バージニア北部) (us-east-1) ami-0f2e8e5663e16b436 ami-0017d945a10387606
      米国西部 (オレゴン) (us-west-2) ami-03a55127c613349a7 ami-08335952e837d087b
      アジアパシフィック (香港) (ap-east-1) ami-032850771ac6f8ae2 N/A*
      アジアパシフィック (ムンバイ) (ap-south-1) ami-0a9b1c1807b1a40ab ami-005b754faac73f0cc
      アジアパシフィック (東京) (ap-northeast-1) ami-0fde798d17145fae1 ami-04cf69bbd6c0fae0b
      アジアパシフィック (ソウル) (ap-northeast-2) ami-07fd7609df6c8e39b ami-0730e699ed0118737
      アジアパシフィック (シンガポール) (ap-southeast-1) ami-0361e14efd56a71c7 ami-07be5e97a529cd146
      アジアパシフィック (シドニー) (ap-southeast-2) ami-0237d87bc27daba65 ami-0a2f4c3aeb596aa7e
      欧州 (フランクフルト) (eu-central-1) ami-0b7127e7a2a38802a ami-0fbbd205f797ecccd
      欧州 (アイルランド) (eu-west-1) ami-00ac2e6b3cb38a9b9 ami-0f9571a3e65dc4e20
      欧州 (ロンドン) (eu-west-2) ami-0147919d2ff9a6ad5 ami-032348bd69c5dd665
      欧州 (パリ) (eu-west-3) ami-0537ee9329c1628a2 ami-053962359d6859fec
      欧州 (ストックホルム) (eu-north-1) ami-0fd05922165907b85 ami-0641def7f02a4cac5
      Kubernetes version 1.12.7
      リージョン Amazon EKS 最適化 AMI (GPU 対応)
      米国東部 (オハイオ) (us-east-2) ami-0fe61ae4c397e710d ami-067d88fb64d3d7990
      米国東部 (バージニア北部) (us-east-1) ami-0e380e0a62d368837 ami-06e46a15650294dfa
      米国西部 (オレゴン) (us-west-2) ami-0355c210cb3f58aa2 ami-084e8e620163aa50e
      アジアパシフィック (香港) (ap-east-1) ami-03885e0a7493b073f N/A*
      アジアパシフィック (ムンバイ) (ap-south-1) ami-01b6a163133c31994 ami-09ad3a49fb13389a0
      アジアパシフィック (東京) (ap-northeast-1) ami-0a9b3f8b4b65b402b ami-0cd09d7293f31df8a
      アジアパシフィック (ソウル) (ap-northeast-2) ami-069f6a654a8795f72 ami-006549812c03748cb
      アジアパシフィック (シンガポール) (ap-southeast-1) ami-03737a1ac334a5767 ami-01be8fddd9b16320c
      アジアパシフィック (シドニー) (ap-southeast-2) ami-07580768e8538626f ami-0a1bf783357dd8492
      欧州 (フランクフルト) (eu-central-1) ami-0ee5ca4231511cafc ami-0ae5976723472b6d4
      欧州 (アイルランド) (eu-west-1) ami-0404d23c7e8188740 ami-042f9abf2f96a0097
      欧州 (ロンドン) (eu-west-2) ami-07346d8553f83f9d6 ami-0b87e9246afd42760
      欧州 (パリ) (eu-west-3) ami-038cb36289174bac4 ami-0d9405868a6e9ee11
      欧州 (ストックホルム) (eu-north-1) ami-03e60b5a990893129 ami-0122b7e2a6736e3c5
      Kubernetes version 1.11.9
      リージョン Amazon EKS 最適化 AMI (GPU 対応)
      米国東部 (オハイオ) (us-east-2) ami-03c6648b74285020f ami-0b87186dda80931ee
      米国東部 (バージニア北部) (us-east-1) ami-0a5f5d5b0f6f58199 ami-07207754196c1a8fc
      米国西部 (オレゴン) (us-west-2) ami-057d1c0dcb254a878 ami-052da6a4e0ae156ad
      アジアパシフィック (香港) (ap-east-1) ami-006e7a52666ab7494 N/A*
      アジアパシフィック (ムンバイ) (ap-south-1) ami-00f1adebe5ab9a431 ami-04645af6384529c5d
      アジアパシフィック (東京) (ap-northeast-1) ami-0a0b6606652f9b3b9 ami-0a8f4e1f9bf09a81f
      アジアパシフィック (ソウル) (ap-northeast-2) ami-0c84b3f055cda1afb ami-01db6bb089f6adfcf
      アジアパシフィック (シンガポール) (ap-southeast-1) ami-05e92412054db3f87 ami-0e001196bd450aa0c
      アジアパシフィック (シドニー) (ap-southeast-2) ami-07eb76498b1ba6cd6 ami-0c7132a332aa55aa6
      欧州 (フランクフルト) (eu-central-1) ami-0234bc9c2b341aa02 ami-05cb4f6e8be8b83f1
      欧州 (アイルランド) (eu-west-1) ami-06902949103360023 ami-02f337476a5c33f1b
      欧州 (ロンドン) (eu-west-2) ami-0db100ad46c7966d2 ami-0aa2208dbb9bb7cc5
      欧州 (パリ) (eu-west-3) ami-052046d313576d0ba ami-0f6ea479cb4e7a4d2
      欧州 (ストックホルム) (eu-north-1) ami-02ebf24da505128f9 ami-078c260b9a737fc35

      * GPU インスタンスタイプは、アジアパシフィック (香港) (ap-east-1) リージョンでは利用できないため、そのリージョンで Amazon EKS は Amazon EKS 最適化 AMI (GPU 対応) を公開しません。

      注記

      Amazon EKS ワーカーノード AMI は、Amazon Linux 2 に基づいています。Amazon Linux 2 のセキュリティまたはプライバシーイベントは、Amazon Linux セキュリティセンターで追跡するか、関連付けられた RSS フィードでサブスクライブできます。セキュリティおよびプライバシーイベントには、問題の概要、影響を受けるパッケージ、および問題を修正するためにインスタンスを更新する方法などがあります。

    • KeyName: 起動後に、SSH を使用してワーカーノードに接続するときに使用できる Amazon EC2 SSH キーペアの名前を入力します。Amazon EC2 キーペアをまだ持っていない場合は、AWS マネジメントコンソール で作成できます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のキーペア」を参照してください。

      注記

      ここでキーペアを与えないと、AWS CloudFormation スタックの作成は失敗します。

    • BootstrapArguments: kubelet の追加引数など、ワーカーノードブートストラップスクリプトに渡すオプションの引数を指定します。詳細については、https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh でブートストラップスクリプトの使用情報をご覧ください。

    • VpcId: 「Amazon EKS クラスター VPC を作成する」で作成した VPC の ID を入力します。

    • Subnets (サブネット): 「Amazon EKS クラスター VPC を作成する」で作成したサブネットを選択します。Amazon EKS クラスター用の VPC の作成 で説明されているステップを使用して VPC を作成した場合は、ワーカーノードの VPC 内で、起動するプライベートサブネットのみを指定します。

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

  9. [Review (レビュー)] ページで、情報を確認して、スタックで IAM リソースが作成されることを認識し、[Create (作成)] を選択します。

  10. スタックの作成が完了したら、コンソールで選択し、[出力] タブを選択します。

  11. 作成されたノードグループの [NodeInstanceRole] を記録します。これは、Amazon EKS ワーカーノードを設定する際、必要になります。

ワーカーノードをクラスターと結合するには

  1. AWS オーセンティケーター設定マップをダウンロード、編集、適用します。

    1. 次のコマンドを使用して設定マップをダウンロードします。

      curl -o aws-auth-cm.yaml https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/aws-auth-cm.yaml
    2. 任意のテキストエディタでファイルを開きます。インスタンスロールの <インスタンスのロールの ARN (インスタンスプロファイルではない)> スニペットを、前の手順で記録した [NodeInstanceRole] の値に置き換え、ファイルを保存します。

      重要

      このファイルの他の行は変更しないでください。

      apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: <ARN of instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes
    3. 設定を適用します。このコマンドが完了するまで数分かかることがあります。

      kubectl apply -f aws-auth-cm.yaml

      注記

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

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

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

    kubectl get nodes --watch
  3. (GPU ワーカーのみ) P2 または P3 インスタンスタイプと 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

次のステップ

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