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

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

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

この入門ガイドは、AWS マネジメントコンソール を使用して Amazon EKS を開始するために必要な、すべてのリソースの作成に役立ちます。このガイドでは、Amazon EKS または AWS CloudFormation コンソールで各リソースを手動で作成します。このチュートリアルを完了すると、アプリケーションをデプロイできる実行中の Amazon EKS クラスターが作成されます。

このガイドの手順に従うと、各リソースがどのように作成され、リソース間でどのようにやり取りするかを全面的に把握できます。ほとんどのリソースを自動的に作成する場合は、 eksctl CLI を使用してクラスターとノードを作成します。詳細については、「eksctl の開始方法」を参照してください。

Prerequisites

このセクションは、Amazon EKS クラスターの作成と管理に必要な以下のツールとリソースをインストールして設定するのに役立ちます。

  • AWS CLI を含む のサービスを使用するためのコマンドラインツール。–AWSAmazon EKS

  • kubectl Kubernetes クラスターを操作するためのコマンドラインツール。–

  • クラスターの IAM ロール ロールは、– が管理する Kubernetes クラスターがユーザーに代わって他の Amazon EKS サービスを呼び出して、サービスで使用するリソースを管理できるようにします。AWS

AWS CLI をインストールする

最新バージョンの AWS CLI、macOS、Linux、または Windows をインストールできます。

[AWS CLI の macOS をインストールするには]

  1. 現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。

    aws --version
  2. バージョン 1.18.190 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.1.7 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「 での AWS CLI バージョン 2 のアップグレードmacOS」を参照してください。

    curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /

    AWS CLI バージョン 2 を使用できない場合は、次のコマンドを使用して、AWS CLI バージョン 1 の最新バージョンがインストールされていることを確認します。

    pip3 install awscli --upgrade --user

[Linux 用の AWS CLI をインストールするには]

  1. 現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。

    aws --version
  2. バージョン 1.18.190 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.1.7 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「Linux での AWS CLI バージョン 2 のインストール」の「アップグレード」を参照してください。

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install

    AWS CLI バージョン 2 を使用できない場合は、次のコマンドを使用して、AWS CLI バージョン 1 の最新バージョンがインストールされていることを確認します。

    pip3 install --upgrade --user awscli

[AWS CLI for Windows をインストールするには]

  1. 現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。

    aws --version
  2. バージョン 1.18.190 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、以下のステップを使用して 2.1.7 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「Windows での AWS CLI バージョン 2 のインストール」の「Windows でのアップグレード」を参照してください。

    1. Windows 用 AWS CLI MSI インストーラ (64 ビット) を https://awscli.amazonaws.com/AWSCLIV2.msi からダウンロードします。

    2. ダウンロードした MSI インストーラを実行し、画面の指示に従います。デフォルトでは、AWS CLI は C:\Program Files\Amazon\AWSCLIV2 にインストールされます。

  3. (オプション) AWS CLI バージョン 2 を使用できない場合は、次のコマンドを使用して、最新バージョンの AWS CLI バージョン 1 がインストールされていることを確認します。

    pip3 install --user --upgrade awscli

AWS CLI 認証情報を設定する

AWS CLI を使用するには、その環境に AWS の認証情報が設定されている必要があります。一般的な使用の場合、 aws configure コマンドは、AWS CLI インストールをセットアップするための最も簡単な方法です。

$ aws configure AWS Access Key ID [None]: <AKIAIOSFODNN7EXAMPLE> AWS Secret Access Key [None]: <wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY> Default region name [None]: <region-code> Default output format [None]: <json>

このコマンドを入力すると、AWS CLI によって 4 つの情報の入力が求められます。access keysecret access keyAWS Region、および output format。 この情報は、default という名前のプロファイル (設定の集合) に保存されます。 このプロファイルは、コマンドを実行するときに、別のプロファイルを指定しない限り、使用されます。

詳細については、『AWS CLI』の「AWS Command Line Interface ユーザーガイド の設定」 を参照してください。

kubectl のインストールと設定

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

コマンドラインユーティリティのバージョン 1.18 は、kubectl、macOSLinux、または Windows 用にインストールできます。

[kubectl を macOS にインストールするには]

  1. クラスターがあるリージョンに対応する Amazon EKS 提供の kubectl バイナリをダウンロードします。

    • リージョン以外のすべてのリージョン。中国

      curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/darwin/amd64/kubectl
    • 北京および寧夏 中国リージョン。

      curl -o kubectl https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/darwin/amd64/kubectl
  2. (オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。

    1. クラスターがあるリージョンに対応する SHA-256 sum をダウンロードします。

      • リージョン以外のすべてのリージョン。中国

        curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/darwin/amd64/kubectl.sha256
      • 北京および寧夏 中国リージョン。

        curl -o kubectl.sha256 https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/darwin/amd64/kubectl.sha256
    2. SHA-256 sum を確認します。

      openssl sha1 -sha256 kubectl
    3. コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。両者は一致する必要があります。

  3. バイナリへの実行アクセス権限を適用します。

    chmod +x ./kubectl
  4. パス内のフォルダに kubectl を移動します。

    • まだ kubectl のバージョンがインストールされていない場合は、PATH にすでに存在するフォルダにバイナリを移動します。

      sudo mv ./kubectl /usr/local/bin
    • 既に kubectl のバージョンがインストールされている場合は、$HOME/bin/kubectl フォルダを作成し、そのフォルダにバイナリを移動し、$HOME/bin$PATH の最初にあることを確認することをお勧めします。

      mkdir -p $HOME/bin && mv ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin

      (オプション) シェルを開いたときに設定されるように、シェルの初期化ファイルに $HOME/bin パスを追加します。

      echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
  5. kubectl をインストールしたら、以下のコマンドを使用してそのバージョンを確認できます。

    kubectl version --short --client

[Linux に kubectl をインストールするには]

  1. クラスターがあるリージョンに対応する Amazon EKS 提供の kubectl バイナリをダウンロードします。

    • リージョン以外のすべてのリージョン。中国

      curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
    • 北京および寧夏 中国リージョン。

      curl -o kubectl https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/linux/amd64/kubectl
  2. (オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。

    1. クラスターがあるリージョンに対応する SHA-256 sum をダウンロードします。

      • リージョン以外のすべてのリージョン。中国

        curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl.sha256
      • 北京および寧夏 中国リージョン。

        curl -o kubectl.sha256 https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/linux/amd64/kubectl.sha256
    2. SHA-256 sum を確認します。

      openssl sha1 -sha256 kubectl
    3. コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。両者は一致する必要があります。

  3. バイナリへの実行アクセス権限を適用します。

    chmod +x ./kubectl
  4. パス内のフォルダに kubectl を移動します。

    • のバージョンがインストールされていない場合は、バイナリを kubectl のフォルダに移動します。PATH

      sudo mv ./kubectl /usr/local/bin
    • 既に kubectl のバージョンがインストールされている場合は、$HOME/bin/kubectl フォルダを作成し、そのフォルダにバイナリを移動して、$HOME/bin の最初に $PATH があることを確認することをお勧めします。

      mkdir -p $HOME/bin && mv ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin

      (オプション) シェルを開いたときに設定されるように、シェルの初期化ファイルに $HOME/bin パスを追加します。

      echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
      注記

      このステップでは、Bash シェルを使用していることを前提としています。別のシェルを使用している場合は、特定のシェル初期化ファイルを使用するよう、コマンドを変更します。

  5. kubectl をインストールしたら、以下のコマンドを使用してそのバージョンを確認できます。

    kubectl version --short --client

[Windows に kubectl をインストールするには]

  1. ターミナルを開きます。PowerShell

  2. クラスターがあるリージョンに対応する Amazon EKS 提供の kubectl バイナリをダウンロードします。

    • リージョン以外のすべてのリージョン。中国

      curl -o kubectl.exe https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe
    • 北京および寧夏 中国リージョン。

      curl -o kubectl.exe https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe
  3. (オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。

    1. クラスターがあるリージョンに対応する SHA-256 sum をダウンロードします。

      • リージョン以外のすべてのリージョン。中国

        curl -o kubectl.exe.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe.sha256
      • 北京および寧夏 中国リージョン。

        curl -o kubectl.exe.sha256 https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe.sha256
    2. SHA-256 sum を確認します。

      Get-FileHash kubectl.exe
    3. コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。出力は大文字になりますが、2 つが一致する必要があります。PowerShell

  4. バイナリを PATH のフォルダにコピーします。 コマンドラインユーティリティで使用する PATH 内に既存のディレクトリがある場合、そのディレクトリにバイナリをコピーします。それ以外の場合は、以下のステップを完了します。

    1. コマンドラインのバイナリ用に新しいディレクトリ (C:\bin など) を作成します。

    2. kubectl.exe バイナリを新しいディレクトリにコピーします。

    3. ユーザーまたはシステムの PATH 環境変数を編集し、新しいディレクトリを PATH に追加します。

    4. 新しい PATH 変数を取得するには、PowerShell ターミナルを閉じ、新しいターミナルを開きます。

  5. kubectl をインストールしたら、以下のコマンドを使用してそのバージョンを確認できます。

    kubectl version --short --client

Amazon EKS クラスターの IAM ロールの作成

AWS マネジメントコンソール または AWS CloudFormation を使用してロールを作成できます。

[Amazon EKSコンソールでIAMクラスターロールを作成するには]

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

  2. [ロール] を選択してから [ロールの作成] を選びます。

  3. サービスのリストから EKS を選択し、ユースケースに合った EKS - クラスターを選択した後、[次へ] を選択します。アクセス許可。

  4. [Next (次へ)] を選択します。タグ.

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

  6. [Next (次へ)] を選択します。確認.

  7. [ロール名] に、ロールの一意の名前 (eksClusterRole など) を入力し、[ロールの作成] を選択します。

[ Amazon EKS を使用してAWS CloudFormationクラスターロールを作成するには

  1. 以下の AWS CloudFormation テンプレートをローカルシステムのテキストファイルに保存します。

    --- AWSTemplateFormatVersion: '2010-09-09' Description: 'Amazon EKS Cluster Role' Resources: eksClusterRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - eks.amazonaws.com Action: - sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonEKSClusterPolicy Outputs: RoleArn: Description: The role that Amazon EKS will use to create AWS resources for Kubernetes clusters Value: !GetAtt eksClusterRole.Arn Export: Name: !Sub "${AWS::StackName}-RoleArn"
    注記

    2020 年 4 月 16 日までは、 にエントリManagedPolicyArnsがありましたarn:aws:iam::aws:policy/AmazonEKSServicePolicyAWSServiceRoleForAmazonEKSサービスにリンクされたロールでは、このポリシーは必須でなくなりました。

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

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

  4. [テンプレートの指定] で、[テンプレートファイルのアップロード] を選択し、[ファイルの選択] を選択します。

  5. 作成したファイルを選択し、[Next (次へ)] を選択します。

  6. [スタックの名前] に eksClusterRole などのロール名を入力し、[次へ] を選択します。

  7. [スタックオプションの設定] ページで、[Next (次へ)] を選択します。

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

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

このセクションでは、以下のいずれかを使用して VPC を作成する手順について説明します。

Amazon EKS のクラスターの作成時には、使用するクラスターの VPC サブネットを指定します。Amazon EKS には、2 つ以上の アベイラビリティーゾーン にサブネットが必要です。パブリックサブネットとプライベートサブネットを含む VPC をお勧めします。これにより、Kubernetes がパブリックサブネットにパブリックロードバランサーを作成し、プライベートサブネットにあるノードで実行されているポッドへのトラフィックを負荷分散します。

VPC タイプの詳細については、「Amazon EKS クラスター用の VPC の作成」を参照してください。

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

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

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

  3. [スタックの作成] を選択し、[With new resources (standard) (新しいリソースの使用 (標準))] を選択します。

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

  5. クラスターがあるリージョンに対応する URL をテキストエリアに貼り付け、[Next] を選択します。

    • リージョン以外のすべてのリージョン。中国

      https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
    • 北京および寧夏 中国リージョン。

      https://s3.cn-north-1.amazonaws.com.cn/amazon-eks//cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

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

    • :VpcBlock VPC の CIDR 範囲を選択します。デプロイする各ワーカーノード、ポッド、ロードバランサーには、このブロックから IP アドレスが割り当てられます。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。詳細については、Amazon VPC ユーザーガイドの「VPC とサブネットのサイズ設定」を参照してください。VPC が作成されたら、さらなる CIDR ブロックを VPC に追加することもできます。

    • PublicSubnet01Block: パブリックサブネット 1 の CIDR ブロックを指定します。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • PublicSubnet02Block: パブリックサブネット 2 の CIDR ブロックを指定します。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • :PrivateSubnet01Block プライベートサブネット 1 の CIDR ブロックを指定します。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • :PrivateSubnet02Block プライベートサブネット 2 の CIDR ブロックを指定します。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

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

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

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

  10. 作成されたセキュリティグループの [SecurityGroups] の値を記録します。クラスターにノードを追加するときは、セキュリティグループの ID を指定する必要があります。セキュリティグループは、サブネットの Amazon EKS によって作成される Elastic Network Interface に適用され、コントロールプレーンがノードと通信できるようにします。これらのネットワークインターフェイスの説明には、Amazon EKS <cluster name> が含まれています。

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

  12. 作成されたサブネットの SubnetIds と、それらをパブリックサブネットとプライベートサブネットのどちらとして作成したかを記録します。クラスターにノードを追加する場合は、ノードを起動するサブネットの IDs を指定する必要があります。

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

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

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

  3. [スタックの作成] を選択し、[With new resources (standard) (新しいリソースの使用 (標準))] を選択します。

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

  5. クラスターがあるリージョンに対応する URL をテキストエリアに貼り付け、[Next] を選択します。

    • リージョン以外のすべてのリージョン。中国

      https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-sample.yaml
    • 北京および寧夏 中国リージョン。

      https://s3.cn-north-1.amazonaws.com.cn/amazon-eks//cloudformation/2020-10-29/amazon-eks-vpc-sample.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

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

    • VpcBlock: VPC の CIDR ブロックを選択します。デプロイする各ワーカーノード、ポッド、ロードバランサーには、このブロックから IP アドレスが割り当てられます。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。詳細については、Amazon VPC ユーザーガイドの「VPC とサブネットのサイズ設定」を参照してください。VPC が作成されたら、さらなる CIDR ブロックを VPC に追加することもできます。

    • Subnet01Block: サブネット 1 の CIDR ブロックを指定するデフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • Subnet02Block: サブネット 2 の CIDR ブロックを指定するデフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • Subnet03Block: サブネット 3 の CIDR ブロックを指定するデフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

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

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

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

  10. 作成されたセキュリティグループの [SecurityGroups] の値を記録します。クラスターにノードを追加するときは、セキュリティグループの ID を指定する必要があります。セキュリティグループは、サブネットの Amazon EKS によって作成される Elastic Network Interface に適用され、コントロールプレーンがノードと通信できるようにします。これらのネットワークインターフェイスの説明には、Amazon EKS <cluster name> が含まれています。

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

  12. 作成されたサブネットの [SubnetIds] を記録します。クラスターにノードを追加する場合は、ノードを起動するサブネットの IDs を指定する必要があります。

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

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

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

  3. [スタックの作成] を選択し、[With new resources (standard) (新しいリソースの使用 (標準))] を選択します。

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

  5. クラスターがあるリージョンに対応する URL をテキストエリアに貼り付け、[Next] を選択します。

    • リージョン以外のすべてのリージョン。中国

      https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-fully-private-vpc.yaml
    • 北京および寧夏 中国リージョン。

      https://s3.cn-north-1.amazonaws.com.cn/amazon-eks//cloudformation/2020-10-29/amazon-eks-fully-private-vpc.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

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

    • VpcBlock: VPC の CIDR ブロックを選択します。デプロイする各ワーカーノード、ポッド、ロードバランサーには、このブロックから IP アドレスが割り当てられます。デフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。詳細については、Amazon VPC ユーザーガイドの「VPC とサブネットのサイズ設定」を参照してください。VPC が作成されたら、さらなる CIDR ブロックを VPC に追加することもできます。

    • PrivateSubnet01Block: サブネット 1 の CIDR ブロックを指定するデフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • PrivateSubnet02Block: サブネット 2 の CIDR ブロックを指定するデフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

    • :PrivateSubnet03Block サブネット 3 の CIDR ブロックを指定するデフォルト値のままで、ほとんどの実装に十分な IP アドレスが提供されますが、提供されない場合は、その値を変更できます。

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

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

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

  10. 作成されたセキュリティグループの [SecurityGroups] の値を記録します。クラスターにノードを追加するときは、セキュリティグループの ID を指定する必要があります。セキュリティグループは、サブネットの Amazon EKS によって作成される Elastic Network Interface に適用され、コントロールプレーンがノードと通信できるようにします。これらのネットワークインターフェイスの説明には、Amazon EKS <cluster name> が含まれています。

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

  12. 作成されたサブネットの [SubnetIds] を記録します。クラスターにノードを追加する場合は、ノードを起動するサブネットの IDs を指定する必要があります。

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

このセクションは、Amazon EKS クラスターの作成に役立ちます。最新の Kubernetes と Amazon EKS の機能を利用できるように、Amazon EKS で使用可能な最新バージョンの Kubernetes がインストールされます。一部の機能は、Kubernetes の古いバージョンでは利用できません。

重要

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

AWS CLI をインストールして設定する場合は、ユーザーの IAM 認証情報を設定できます。AWS CLI バージョン 1.16.156 以降がユーザーに対して適切に設定されている場合は、eksctl はそれらの認証情報を検索できます。詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLI の設定」を参照してください。AWS CLI バージョン 1.16.156 以降をインストールできない場合は、aws-iam-authenticator をインストールする必要があります。

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

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

  2. [Create cluster] を選択します。

    注記

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

  3. [Configure cluster (クラスターの設定)] ページで、次のフィールドに入力します。

    • 名前 – クラスターの一意の名前。

    • Kubernetes version (Kubernetes バージョン) – クラスターで使用する Kubernetes のバージョン。

    • Cluster service role (クラスターサービスのロール) – 「Amazon EKS クラスターの IAM ロールの作成」で作成した IAM ロールを選択します 。

    • シークレットの暗号化 – (オプション) AWS Key Management Service (AWS KMS) を使用して Kubernetes シークレットのエンベロープ暗号化を有効にするよう選択します。エンベロープ暗号化を有効にすると、選択したカスタマーマスターキー (CMK) を使用して Kubernetes シークレットが暗号化されます。CMK は対称で、クラスターと同じリージョンで作成する必要があります。CMK が別のアカウントで作成されている場合は、ユーザーが CMK にアクセスできる必要があります。詳細については、『AWS Key Management Service 開発者ガイド』の「他のアカウントのユーザーに CMK の使用を許可する」を参照してください。

      AWS KMS CMK を使用した Kubernetes シークレット暗号化には、Kubernetes バージョン 1.13 以降が必要です。キーが一覧表示されていない場合は、最初にキーを作成する必要があります。詳細については、「キーの作成」を参照してください。

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

  4. [Next (次へ)] を選択します。

  5. [Specify networking (ネットワーキングの指定)] ページで、次のフィールドの値を選択します。

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

    • サブネット – デフォルトでは、前のフィールドで指定した VPC 内の利用可能なサブネットがあらかじめ選択されています。ワーカーノードやロードバランサーなど、クラスターリソースをホストしないサブネットを選択解除します。

      重要

      Do not select a subnet in AWS Outposts, AWS Wavelength or an AWS Local Zone when creating your cluster. After cluster creation, you can tag the AWS Outposts AWS Wavelength or AWS Local Zone subnets with the cluster name, which will then enable you to deploy self-managed nodes to the subnet. For more information, see サブネットのタグ付け要件.

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

      重要

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

    • (オプション) Kubernetes がサービス IP アドレスを割り当てる CIDR ブロックを指定する場合は、[Kubernetes サービスの IP アドレス 範囲を設定] を選択し、[サービス IPv4 の範囲] を指定します。CIDR ブロックは、次の要件を満たしている必要があります。

      • 10.0.0.0/8、172.16.0.0/12、または 192.168.0.0/16 のいずれかの範囲内であること。

      • /24 と /12 の間であること。

      • VPC で指定された CIDR ブロックと重複しません。

      VPC にピアリング、または接続されている他のネットワークと重複しない CIDR ブロックを指定することをお勧めします。これを有効にしない場合、Kubernetes は 10.100.0.0/16 または 172.20.0.0/16 CIDR ブロックのいずれかから、サービス IP アドレスを割り当てます。

      重要

      カスタム CIDR ブロックは、クラスターの作成時にのみ指定でき、クラスターの作成後にこの値を変更することはできません。

    • [Cluster endpoint access (クラスターエンドポイントのアクセス)] の場合 – 次のいずれかのオプションを選択します。

      • パブリック – クラスターの Kubernetes API サーバーエンドポイントへのパブリックアクセスのみを有効にします。クラスターの VPC の外部から送信される Kubernetes API リクエストは、パブリックエンドポイントを使用します。デフォルトでは、任意の送信元 IP アドレスからのアクセスが許可されます。たとえば、必要に応じて、[詳細設定] を選択し、次に [Add source (ソースの追加)] を選択して、192.168.0.0/16 などの 1 つ以上の CIDR 範囲へのアクセスを制限できます。

      • プライベート – クラスターの Kubernetes API サーバーエンドポイントへのプライベートアクセスのみを有効にします。クラスターの VPC 内から送信される Kubernetes API リクエストは、プライベート VPC エンドポイントを使用します。

        重要

        If you created a VPC without outbound internet access, then you must enable private access.

      • Public and private (パブリックおよびプライベート) – パブリックおよびプライベートアクセスを有効にします。

      前のオプションの詳細については、「クラスターエンドポイントのアクセスの変更」を参照してください。

  6. 前のページで Kubernetes バージョン 1.17 以前を選択した場合は、次のステップに進みます。バージョン 1.18 を選択した場合は、[ネットワークアドオン ] セクションのデフォルト値を受け入れ、最新バージョンの AWS VPC CNI Amazon EKS アドオンをインストールします。Amazon EKS アドオンにはサーバー側の Apply Kubernetes 機能が必要なため、1.18 クラスターでのみ Amazon EKS アドオンを使用できます。このアドオンは Kubernetes 1.18 までは使用できませんでした。クラスター用に別の Kubernetes バージョンを選択した場合、このオプションは表示されません。

    重要

    AWSVPC CNI アドオンは、Amazon EKS ノードの IAM ロール に割り当てられた IAM アクセス許可を使用するように設定されます。クラスターの作成後、クラスターに Amazon EC2 ノードをデプロイする前に、AmazonEKS_CNI_Policy IAM ポリシーがノードの IAM ロール、またはアドオンが実行される Kubernetes サービスアカウントに関連付けられた別のロールにアタッチされていることを確認する必要があります。サービスアカウントの IAM ロールを使用するように VPC CNI プラグインを設定する の手順に従って、ポリシーを、ノードの IAM ロールとは別の IAM ロールに割り当てることをお勧めします。クラスターと IAM ロールが作成されたら、作成した IAM ロールを使用するようにアドオンを更新できます。

  7. [Next (次へ)] を選択します。

  8. [ログ記録の構成] ページで、有効にするログタイプをオプションで選択できます。各ログタイプは、デフォルトで [無効] になっています。詳細については、「Amazon EKS コントロールプレーンのログ記録」を参照してください。

  9. [Next (次へ)] を選択します。

  10. [確認と作成] ページで、前のページで入力または選択した情報を確認します。選択内容を変更する必要がある場合は、[編集] を選択します。設定が適切であることを確認したら、[作成] を選択します。クラスターのプロビジョニングプロセスが完了するまで、[状況] フィールドには [作成中] と表示されます。

    注記

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

    クラスターのプロビジョニングが完了したら (通常 10 ~ 15 分)、[API サーバーエンドポイント] および [認証機関] 値を書き留めます。これらは、kubectl 設定で使用されます。

  11. (オプション) Amazon EKS アドオンを使用するか、個々の Kubernetes ワークロードに特定の IAM アクセス許可を付与するには、クラスター用に OpenID Connect (OIDC) プロバイダーを有効にする必要があります。クラスター用の OIDC プロバイダーを設定する方法については、「クラスターの IAM OIDC プロバイダーの作成」を参照してください。クラスター用の OIDC プロバイダーを有効にする必要があるのは、1 回だけです。Amazon EKS アドオンの詳細については、「アドオンの設定Amazon EKS」を参照してください。ワークロードへの特定の IAM アクセス許可の割り当ての詳細については、「技術概要」を参照してください。

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

このセクションでは、kubeconfig AWS CLI update-kubeconfig コマンドを使用して、クラスターの ファイルを作成します。

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

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

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

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

    • 詳細については、 aws eks update-kubeconfig help コマンドを使用してヘルプページを参照するか、『https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html』の「update-kubeconfigAWS CLI Command Reference」を参照してください。

    注記

    以下のコマンドを実行するには、指定したクラスターで eks:DescribeCluster API アクションを使用するアクセス許可が必要です。詳細については、「Amazon EKS アイデンティティベースのポリシーの例」を参照してください。

    aws eks --region <us-west-2> update-kubeconfig --name <cluster_name>
  2. 設定をテストします。

    kubectl get svc
    注記

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

    出力:

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

ステップ 3: コンピューティングを作成する

次のいずれかのコンピューティングオプションを選択します。各オプションの詳細については、「Amazon EKS 個のノード」を参照してください。クラスターがデプロイされたら、必要に応じて他のオプションを追加できます。

  • [ Fargate – Linux] – で Linux アプリケーションを実行する場合は、このオプションを選択します。AWS Fargate

  • [ – Managed nodes (AWS マネージドノード)] – インスタンスで Amazon Linux または Windows アプリケーションを実行する場合は、このオプションを選択します。Amazon EC2

このガイドでは説明しませんが、Bottlerocket ノードをクラスターに追加することもできます。詳細については、「セルフマネージド型の Bottlerocket ノードの起動」を参照してください。

[Fargate – Linux]

注記

一部のリージョンでは、AWS Fargate と Amazon EKS のみを使用できます。で Fargate を使用する前に、使用するリージョンがサポートされていることを確認してください。Amazon EKS詳細については、「Amazon EKS を使用した AWS Fargate の開始方法」を参照してください。

プロファイルを作成する前に、プロファイルで使用する AWS Fargate ポッド実行ロールを作成する必要があります。Fargate

を使用して AWS Fargateポッド実行ロールを作成するにはAWS マネジメントコンソール

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

  2. [ロール] を選択してから [ロールの作成] を選びます。

  3. サービスのリストから EKS を選択し、ユースケースに応じた EKS - Fargateポッドを選択してから、[次へ] を選択します。アクセス許可。

  4. [Next (次へ)] を選択します。タグ.

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

  6. [Next (次へ)] を選択します。確認.

  7. [ロール名] に、ロールの一意の名前 (AmazonEKSFargatePodExecutionRole など) を入力し、[ロールの作成] を選択します。

これで、作成した Fargate ロールを指定して、IAM プロファイルを作成できます。

AWS マネジメントコンソール でクラスターの Fargate プロファイルを作成するには

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

  2. Fargate プロファイルを作成するクラスターを選択します。

  3. [Fargate profiles (Fargate プロファイル)] で、[Add profile (Fargate プロファイルの追加)] を選択します。

  4. [Configure Fargate profile (Fargate プロファイルの設定] ページで、以下の情報を入力し、[Next (次へ)] を選択します。

    1. [Name (名前)] に Fargate プロファイルの一意の名前を入力します。

    2. [Pod execution role (ポッド実行ロール)] で、Fargate プロファイルで使用するポッド実行ロールを選択します。eks-fargate-pods.amazonaws.com サービスプリンシパルを持つ IAM ロールのみが表示されます。ここにロールが表示されない場合は、ロールを作成する必要があります。詳細については、を参照してください ポッド実行ロール

    3. [Subnets (サブネット)] で、ポッドに使用するサブネットを選択します。デフォルトでは、クラスターの VPC 内のすべてのサブネットが選択されます。Fargate で実行されているポッドでは、プライベートサブネットのみがサポートされるため、パブリックサブネットの選択を解除する必要があります。

    4. [Tags (タグ)] では、オプションで Fargate プロファイルにタグを付けることができます。これらのタグは、ポッドなど、プロファイルに関連付けられた他のリソースには伝達されません。

  5. [Configure pods selection (ポッドの設定)] ページで、以下の情報を入力し、[Next (次へ)] を選択します。

    1. [Namespace (名前空間)] に、kube-systemdefault など、ポッドと照合する名前空間を入力します。

    2. (オプション) 指定された名前空間のポッドがセレクタと一致する必要があるセレクタに Kubernetes ラベルを追加します。たとえば、infrastructure: fargate ラベルをセレクタに追加して、指定した名前空間に存在し、なおかつinfrastructure: fargate Kubernetes ラベルを持つポッドのみがセレクタに一致するようにできます。

  6. [Review and create (確認と作成)] ページで、Fargate プロファイルの情報を確認し、[Create (作成)] を選択します。

[ マネージド型ノード – Linux ]

ノード Amazon EKS デーモンは、kubelet AWS への呼び出しを実行します。APIsノードは、IAM インスタンスプロファイルおよび関連ポリシーを通じて、これらの API コールのアクセス許可を受け取ります。ノードを起動する前に、IAM ロールを作成する必要があります。AWS マネジメントコンソール または AWS CloudFormation を使用してロールを作成できます。

注記

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

コンソールで Amazon EKS ノードロールを作成するにはIAM

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

  2. [ロール] を選択してから [ロールの作成] を選びます。

  3. [Choose a use case (ユースケースの選択)] の [Common use cases (一般的ユースケース)] リストから [EC2] を選択し、[Next: (次へ:)] を選択します。アクセス許可。

  4. [Filter policies (ポリシーのフィルタ)] ボックスに「AmazonEKSWorkerNodePolicy」と入力します。 [AmazonEKSWorkerNodePolicy] の左側にあるチェックボックスをオンにします。

  5. [Filter policies (ポリシーのフィルタ)] ボックスに「AmazonEC2ContainerRegistryReadOnly」と入力します。 [AmazonEC2ContainerRegistryReadOnly] の左側にあるチェックボックスをオンにします。

  6. _CNI_PolicyAmazonEKS ポリシーは、このロール、または Kubernetes サービスアカウントにマッピングされている別のロールにアタッチする必要があります。aws-nodeこのロールにポリシーを割り当てるのではなく、Kubernetes サービスアカウントに関連付けられたロールにポリシーを割り当てることをお勧めします。詳細については、「サービスアカウントの IAM ロールを使用するように VPC CNI プラグインを設定する」を参照してください。

  7. [Next:] を選択します。 タグ

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

  9. [Next:] を選択します。 確認.

  10. [ロール名] に、ロールの一意の名前 (NodeInstanceRole など) を入力します。 [ロールの説明] で、現在のテキストを「Amazon EKS - ノードグループロール」などの説明テキストに置き換え、[ロールの作成] を選択します。

を使用して Amazon EKS ノードロールを作成するにはAWS CloudFormation

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

  2. [スタックの作成] を選択し、[With new resources (standard) 新しいリソースを使用 (標準)] を選択します。

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

  4. クラスターがあるリージョンに対応する URL を [ Amazon S3 URL] テキストエリアに貼り付け、[次へ] を 2 回選択します。

    • リージョン以外のすべてのリージョン。中国

      https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-nodegroup-role.yaml
    • 北京および寧夏 中国リージョン。

      https://s3.cn-north-1.amazonaws.com.cn/amazon-eks//cloudformation/2020-10-29/amazon-eks-nodegroup-role.yaml
  5. [Specify stack details (スタックの詳細の指定)] ページで、[スタックの名前] に「eks-node-group-instance-role」などの名前を入力し、[Next (次へ)] を選択します。

  6. (オプション) [Configure stack options (スタックオプションの設定)] ページで、スタックリソースをタグ付けできます。[Next] を選択します。

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

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

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

  10. (オプション、ただし推奨) 前のステップの IAM テンプレートによってロールにアタッチされた AWS CloudFormation ポリシーの 1 つは、_CNI_PolicyAmazonEKS 管理ポリシーです。ポリシーは、このロールまたは aws-node VPC CNI プラグインに使用される Kubernetes Amazon EKS サービスアカウントに関連付けられたロールにアタッチする必要があります。Kubernetes サービスアカウントに関連付けられたロールにポリシーを割り当てることをお勧めします。詳細については、「サービスアカウントの IAM ロールを使用するように VPC CNI プラグインを設定する」を参照してください。

マネージド型ノードグループを作成できるようになりました。

重要

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

を使用してマネージド型ノードグループを作成するにはAWS マネジメントコンソール

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

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

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

  4. [Configuration] タブを選択します。

  5. [Configuration] タブで、[Compute] タブを選択し、[Add Node Group] を選択します。

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

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

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

      重要

      セルフマネージドノードグループによって現在使用されていないロールを使用するか、新しいセルフマネージドノードグループで使用する予定のロールを使用することをお勧めします。詳細については、「マネージド型ノードグループの削除」を参照してください。

    • [ 起動テンプレートの使用–] (オプション) 既存の起動テンプレートを使用する場合、[起動テンプレートのバージョン] (オプション) を選択します。バージョンを選択しない場合、Amazon EKS はテンプレートのデフォルトバージョンを使用します。起動テンプレートを使用すると、カスタム AMI をデプロイできるなど、ノードグループをさらにカスタマイズできます。起動テンプレートは、「起動テンプレートのサポート」の要件を満たしている必要があります。独自の起動テンプレートを使用しない場合、Amazon EKS API はアカウントにデフォルトの Amazon EC2 起動テンプレートを作成し、デフォルトの起動テンプレートを使用してノードグループをデプロイします。サービスアカウントの ロールIAMを実装する場合は、 サービスへのアクセスを必要とするすべてのポッドに必要なアクセス許可を直接割り当てます。また、現在のリージョンを取得するなどの他の理由で IMDS へのアクセスを必要とするクラスターがない場合は、起動テンプレートでホストネットワーキングを使用しないポッドの IMDS へのアクセスを無効にすることもできます。AWS詳細については、「IMDS および Amazon EC2 インスタンスプロファイルの認証情報へのアクセスの制限」を参照してください。

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

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

  7. [Set compute and scaling configuration] ページで、必要に応じてパラメータを指定し、[Next] を選択します。

    ノードグループのコンピューティング設定

    • [ AMI type] – GPU 以外のインスタンスの場合は [Amazon Linux 2 (AL2_x86_64)]、GPU インスタンスの場合は [Amazon Linux 2 GPU Enabled (AL2_x86_64_GPU)]、または Arm の場合は [ (AL2_ARM_64)Amazon Linux 2] を選択します。

      Arm インスタンスをデプロイする場合は、デプロイする前に「Amazon EKS 最適化 Arm Amazon Linux AMIs」で考慮事項を確認してください。

      前のページで起動テンプレートを指定し、起動テンプレートで AMI を指定した場合、値を選択することはできません。テンプレートの値が表示されます。テンプレートで指定された AMI は、カスタム AMI の使用 の要件を満たしている必要があります。

    • [ Capacity type] – キャパシティータイプを選択します。キャパシティータイプの選択の詳細については、「マネージド型ノードグループの容量タイプ」を参照してください。同じノードグループ内で異なるキャパシティータイプを混在させることはできません。両方のキャパシティータイプを使用する場合は、それぞれ独自のキャパシティーとインスタンスタイプを持つ別々のノードグループを作成します。

    • [ インスタンスタイプ] – 1 つ以上のインスタンスタイプがデフォルトで指定されます。デフォルトのインスタンスタイプを削除するには、インスタンスタイプの右側にある [X] を選択します。マネージド型ノードグループで使用するインスタンスタイプを選択します。コンソールには、よく使用されるインスタンスタイプのセットが表示されます。表示されていないインスタンスタイプを持つマネージド型ノードグループを作成する必要がある場合は、eksctl、AWS CLI、AWS CloudFormation、または SDK を使用してノードグループを作成します。前のページで起動テンプレートを指定した場合、値を選択することはできません。起動テンプレートで指定する必要があるためです。起動テンプレートの値が表示されます。[キャパシティータイプ] で [スポット] を選択した場合は、可用性を強化するために複数のインスタンスタイプを指定することをお勧めします。インスタンスタイプの選択の詳細については、の「考慮事項マネージド型ノードグループの容量タイプ」を参照してください。

      各 Amazon EC2 インスタンスタイプは最大数の Elastic Network Interface (ENI) をサポートし、各 ENI は最大数の IP アドレスをサポートします。各ワーカーノードとポッドには独自の IP アドレスが割り当てられているため、重要なのは、各ワーカーノードで実行する最大数のポッドをサポートするインスタンスタイプを選択することです。インスタンスタイプがサポートする ENI と IP アドレスの数のリストについては、「各インスタンスタイプのネットワークインターフェイスあたりの IP アドレス数」を参照してください。たとえば、m5.large インスタンスタイプは、ワーカーノードとポッドに対して最大 30 個の IP アドレスをサポートします。リージョンによっては利用できないインスタンスタイプがあります。

      ポッドのセキュリティグループ を使用する予定がある場合は、サポートされている Amazon EC2 インスタンスタイプを必ず指定してください。詳細については、「Amazon EC2 でサポートされるインスタンスおよびブランチネットワークインターフェイス」を参照してください。 Arm Amazon EC2 インスタンスタイプを指定する場合は、デプロイする前に Amazon EKS 最適化 Arm Amazon Linux AMIs の考慮事項を確認してください。

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

      前のページで起動テンプレートを指定した場合、値を選択することはできません。起動テンプレートで指定する必要があるためです。

    ノードグループのスケーリング設定

    注記

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

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

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

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

  8. [Specify networking (ネットワーキングの指定)] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

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

      重要

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

      重要
      • パブリックサブネットを選択した場合、インスタンスがクラスターに正常に参加するには、そのサブネットの MapPublicIpOnLaunch を true に設定する必要があります。サブネットが eksctl 以降に または Amazon EKS から発行された AWS CloudFormation テンプレートを使用して作成されている場合、この設定はすでに true に設定されています。March 26, 2020サブネットが March 26, 2020 より前に eksctl または AWS CloudFormation テンプレートを使用して作成されている場合は、設定を手動で変更する必要があります。詳細については、「サブネットのパブリック IPv4 アドレス指定属性の変更」を参照してください。

      • AWS Outposts、AWS Wavelength、または AWS ローカルゾーンでサブネットを選択しないでください。AWS Outposts、AWS Wavelength、または AWS ローカルゾーンのサブネットにマネージドノードをデプロイすることはできません。セルフマネージドノードは AWS Outposts、AWS Wavelength、または AWS ローカルゾーンサブネットにのみデプロイできます。

    • Allow remote access to nodes (ノードへのリモートアクセスを許可します) (オプション、デフォルト)。SSH を有効にすることにより、インスタンスに接続し、問題がある場合に診断情報を収集できます。リモートアクセスを有効にするには、以下の手順に従います。ノードグループを作成するときは、リモートアクセスを有効にすることを強くお勧めします。ノードグループの作成後にリモートアクセスを有効にすることはできません。

      起動テンプレートを使用する場合、このオプションは表示されません。ノードへのリモートアクセスを有効にするには、起動テンプレートでキーペアを指定し、起動テンプレートで指定したセキュリティグループのノードに対して適切なポートが開いていることを確認します。詳細については、「カスタムセキュリティグループの使用」を参照してください。

    • [SSH キーペア] (オプション) で、使用する Amazon EC2 SSH キーを選択します。詳細については、 の「Amazon EC2 のキーペアLinux インスタンス用 Amazon EC2 ユーザーガイド」を参照してください。起動テンプレートの使用を選択した場合、起動テンプレートを選択することはできません。

    • [Allow remote access from] で、特定のインスタンスへのアクセスを制限する場合は、それらのインスタンスに関連付けられているセキュリティグループを選択します。特定のセキュリティグループを選択しない場合、SSH アクセスはインターネット上の任意の場所 (0.0.0.0/0) から許可されます。

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

    ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスターに参加できない」を参照してください。

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

    kubectl get nodes --watch
  11. (GPU ノードのみ) GPU インスタンスタイプと Amazon EKS 最適化高速 AMI を選択した場合は、NVIDIA device plugin for Kubernetes を、次のコマンドを使ってクラスターの DaemonSet として適用しなければなりません。

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.6.0/nvidia-device-plugin.yml
  12. (オプション) Linux ワークロードのサンプルをデプロイする – サンプルアプリケーションをデプロイして、クラスターと Linux ノードをテストします。

  13. (オプション) Linux ワーカーノードをクラスターに追加したら、「Windows サポート」の手順に従って Windows サポートをクラスターに追加し、Windows ワーカーノードを追加します。クラスターで Windows ワークロードのみを実行する場合でも、すべての Amazon EKS クラスターには 1 つ以上の Linux ワーカーノードが含まれている必要があります。

次のステップ

これでノードを含む Amazon EKS クラスターが動作するようになったので、Kubernetes アドオンのインストールとクラスターへのアプリケーションのデプロイを開始できます。以下のトピックは、クラスターの機能を拡張するのに役立ちます。