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

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

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

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

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

Prerequisites

このセクションでは、 Amazon EKS クラスタ。

  • [ AWS CLI – で作業するためのコマンドラインツール AWS サービス( Amazon EKS.

  • kubectl – Kubernetesクラスタと連携するためのコマンドラインツール。

  • クラスター IAM 役割 – 役割によって、Kubernetesクラスタは、 Amazon EKS 他の人に電話をかけたり AWS サービスを代理して、サービスで使用するリソースを管理します。

AWS CLI をインストールする

最新バージョンの AWS CLI、 用 macOS(マクロス)Linux(Linux)、または .

[ AWS CLI macOSの場合]

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

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

    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

[ AWS CLI (Linux の場合)

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

    aws --version
  2. バージョン 1.18.149 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.0.52 バージョン 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 (Windows 用)

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

    aws --version
  2. バージョン 1.18.149 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、以下のステップを使用して 2.0.52 バージョン 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 最新バージョンの 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.17 の kubectl コマンド ライン ユーティリティ macOS(マクロス)Linux(Linux)、または .

【インストール方法】 kubectl macOS の場合]

  1. 以下をダウンロード Amazon EKS ブended(vended) kubectl バイナリです。

    curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/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.17.9/2020-08-04/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

【インストール方法】 kubectl (Linux の場合)

  1. 以下をダウンロード Amazon EKS ブended(vended) kubectl バイナリです。

    curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/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.17.9/2020-08-04/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

【インストール方法】 kubectl Windows の場合]

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

  2. 以下をダウンロード Amazon EKS ブended(vended) kubectl バイナリです。

    curl -o kubectl.exe https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/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.17.9/2020-08-04/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 - クラスタ 使用例について 次へ: アクセス許可。

  4. 選択 次へ: タグ.

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

  6. 選択 次へ: レビュー.

  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/AmazonEKSServicePolicy. と AWSServiceRoleForAmazonEKS そのポリシーは不要になりました。

  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 (Amazon S3 テンプレート URL の指定)] を選択します。

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

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

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

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

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

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

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

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

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

  8. [Review (確認)] ページで、[ Create (作成)] を選択します。

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

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。クラスタにノードを追加する場合、セキュリティグループの ID を指定する必要があります。セキュリティグループは、 Amazon EKS コントロールプレーンを使用してノードと通信します。

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

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

[パブリック サブネットのみを使用してクラスタ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 (Amazon S3 テンプレート URL の指定)] を選択します。

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

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

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

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

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

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

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

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

  8. [Review (確認)] ページで、[ Create (作成)] を選択します。

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

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。クラスタにノードを追加する場合、セキュリティグループの ID を指定する必要があります。セキュリティグループは、 Amazon EKS コントロールプレーンを使用してノードと通信します。

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

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

[プライベート サブネットのみを使用してクラスタ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 (Amazon S3 テンプレート URL の指定)] を選択します。

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

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

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

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

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

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

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

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

  8. [Review (確認)] ページで、[ Create (作成)] を選択します。

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

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。クラスタにノードを追加する場合、セキュリティグループの ID を指定する必要があります。セキュリティグループは、 Amazon EKS コントロールプレーンを使用してノードと通信します。

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

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

ステップ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.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. [Next (次へ)] を選択します。

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

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

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

    注記

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

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

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

このセクションでは、 kubeconfig ファイルを AWS CLI update-kubeconfig コマンド。

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

  1. [ AWS CLI update-kubeconfig 作成または更新するためのコマンド kubeconfig 参照できます。

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

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

    • 詳細については、 aws eks update-kubeconfig help コマンドまたは参照 更新-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) – Linux アプリケーションを実行する場合は、このオプションを選択します。 AWS Fargate.

  • 管理対象ノード – Linux(Linux) – 実行するには、このオプションを選択します。 Amazon Linux またはWindowsアプリケーション Amazon EC2 インスタンス

このガイドでは説明されていませんが、 ボトルロケット ノードをクラスタに接続します。詳細については、自己管理の 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. 選択 イーケーエス サービス一覧から イーケーエス= Fargate ポッド 使用例について 次へ: アクセス許可。

  4. 選択 次へ: タグ.

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

  6. 選択 次へ: レビュー.

  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 APIを代理で使用します。ノードは、 IAM インスタンス プロファイルと関連づけられたポリシー。_を作成する必要があります。 IAM ノードを起動する前に、役割を選択します。AWS マネジメントコンソール または AWS CloudFormation を使用してロールを作成できます。

注記

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

作成するには Amazon EKS ノードの役割( IAM コンソール

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

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

  3. 選択 EC2 のリストから 一般的な使用例 以下 使用例を選択し、 次に 次へ: アクセス許可。

  4. [ フィルタポリシー ]ボックスで、 AmazonEKSWorkerNodePolicy. の左にあるボックスをチェックします。 AmazonEKSWorkerNodePolicy。

  5. [ フィルタポリシー ]ボックスで、 AmazonEKS_CNI_Policy. の左にあるボックスをチェックします。 AmazonEKS_CNI_Policy。

  6. [ フィルタポリシー ]ボックスで、 AmazonEC2ContainerRegistryReadOnly. の左にあるボックスをチェックします。 AmazonEC2ContainerRegistryReadOnly。

  7. 選択 次へ: タグ.

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

  9. 選択 次へ: レビュー.

  10. 対象 役割名のように、役割の一意の名前を入力します。 NodeInstanceRole. 対象 役割の説明、現在のテキストを次のような説明テキストに置き換えます。 Amazon EKS - Node Group Roleを選択し、 役割を作成.

作成するには 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(URL) テキスト領域を選択し、 次へ 2回:

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

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

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

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

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

管理対象ノードグループを作成できるようになりました。

重要

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. クラスターページで、[計算] タブを選択し、[ノードグループの追加] を選択します。

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

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

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

      重要

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

    • 起動テンプレートを使用 – (オプション)既存の起動テンプレートを使用するかどうかを選択し、 テンプレートバージョンの起動 (オプション)。バージョンを選択しない場合は、 Amazon EKS は、テンプレートのデフォルトバージョンを使用します。起動テンプレートを使用すると、カスタム AMI の導入など、ノードグループをさらにカスタマイズできます。起動テンプレートは、 テンプレートサポートの起動.

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

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

  6. [ コンピューティングとスケーリングの構成の設定 該当のパラメータを入力して、 次へ.

    ノード グループ コンピューティング構成

    • AMIタイプ – 選択 Amazon Linux 2(AL2_x86_64) 非 GPU インスタンスの場合、 Amazon Linux 2 GPU 有効 (AL2_x86_64_GPU) GPUインスタンスの場合、または Amazon Linux 2 (AL2_ARM_64) アーム用です。

      Armインスタンスを配置する場合は、 Amazon EKS 最適化されたアーム Amazon Linux AMI(AMI) 展開する前に。

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

    • インスタンスタイプ – 管理対象ノードグループで使用するインスタンスタイプを選択します。 各 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 最適化されたアーム Amazon Linux AMI(AMI) の考慮事項を確認してください。

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

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

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

    ノードグループのスケーリング構成

    注記

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

    • 最小サイズ – 管理ノードグループがスケールインできるノードの最小数を指定します。

    • 最大サイズ – 管理対象ノードグループがスケールアウトできるノードの最大数を指定します。

    • 希望サイズ – 管理ノードグループが起動時に維持するノードの現在の数を指定します。

  7. [ ネットワーキングの指定 該当のパラメータを入力して、 次へ.

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

      重要

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

      重要

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

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

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

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

    • 対象 からのリモート アクセスを許可特定のインスタンスへのアクセスを制限する場合は、それらのインスタンスに関連付けられているセキュリティグループを選択します。特定のセキュリティグループを選択しない場合、インターネット上のどこからでも SSH アクセスが許可されます (0.0.0.0/0)。

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

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

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

    kubectl get nodes --watch
  10. (GPU ノードのみ)GPU インスタンスタイプを選択し、 Amazon EKS 最適化された高速化AMIを適用し、 Kubernetes用NVIDIAデバイスプラグイン を、次のコマンドを使用してクラスタ上のDaemonSetとして使用します。

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.6.0/nvidia-device-plugin.yml
  11. (オプション) サンプル Linux アプリケーションの導入 – サンプル・アプリケーションを展開して、クラスタおよび Linux ノードをテストします。

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

次のステップ

これで、 Amazon EKS Kubernetesアドオンをインストールし、アプリケーションをクラスタに導入する準備ができました。以下のトピックは、クラスターの機能を拡張するのに役立ちます。