Amazon EKS
ユーザーガイド

Amazon EKS ワーカーノードを起動する

このトピックは、Amazon EKS クラスターに登録されているワーカーノードの Auto Scaling グループの起動に役立ちます。ノードがクラスターと結合されたら、Kubernetes アプリケーションをデプロイできます。

Amazon EKS ワーカーノードを初めて起動する場合は、代わりに「Amazon EKS の使用開始」ガイドに従うことをお勧めします。このガイドでは、Amazon EKS クラスターの作成からサンプルの Kubernetes アプリケーションのデプロイまでの詳細なチュートリアルを提供します。

重要

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

このトピックには、次のような前提条件があります。

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

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

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

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

    注記

    Amazon EKS は現在、以下のリージョンで使用できます。

    • 米国西部 (オレゴン) (us-west-2)

    • 米国東部 (バージニア北部) (us-east-1)

    • 米国東部 (オハイオ) (us-east-2)

    • 欧州 (アイルランド) (eu-west-1)

  4. [Create stack] を選択します。

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

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

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

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

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

      重要

      この名前は、Amazon EKS クラスター名と完全に一致する必要があります。それ以外の場合、ワーカーノードは結合することができません。

    • ClusterControlPlaneSecurityGroup: Amazon EKS クラスターを作成した際に使用したセキュリティグループ (複数可) を入力します。この AWS CloudFormation テンプレートでは、指定されたクラスターコントロールプレーンセキュリティグループ間で送受信されるトラフィックを許可するワーカーノードセキュリティグループを作成します。

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

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

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

    • NodeAutoScalingGroupMaxSize: ワーカーノードの Auto Scaling グループがスケールアウトする最大ノード数を入力します。更新時にノード数を減らさずにワーカーノードのローリング更新を実行できるように、この値は、必要なキャパシティーよりも 1 ノード少なくする必要があります。

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

    • NodeImageId: リージョンの最新の Amazon EKS ワーカーノードの AMI ID を入力します。最新の Amazon EKS 最適化 AMI ( GPU 対応 あり/なし) の AMI ID を次の表に示します。適切な AMI ID が、必要な Kubernetes バージョンと AWS リージョンで選択されていることを確認します。

      注記

      Amazon EKS 最適化 AMI (GPU 対応) では、P2 および P3 のインスタンスタイプのみサポートしています。これらのインスタンスタイプは必ず、ワーカーノードの AWS CloudFormation テンプレートで指定してください。この AMI には、エンドユーザーライセンス契約 (EULA) が必要なサードパーティーソフトウェアが含まれているため、AWS Marketplace の AMI にサブスクライブし、EULA に同意してからワーカーノードグループで AMI を使用する必要があります。AMI にサブスクライブするには、「AWS Marketplace」を参照してください。

      リージョン Amazon EKS 最適化 AMI (GPU 対応)
      米国西部 (オレゴン) (us-west-2)
      米国東部 (バージニア北部) (us-east-1)
      米国東部 (オハイオ) (us-east-2)
      欧州 (アイルランド) (eu-west-1)

      注記

      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: ワーカーノードで起動する VPC の ID を入力します。

    • Subnets: ワーカーノードで起動する上記の VPC 内のサブネットを選択します。

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

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

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

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

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

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

    1. 設定マップをダウンロードします。

      curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-01-09/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 に設定されていません。詳細については、「」を参照してください。

  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/v1.11/nvidia-device-plugin.yml