マネージド型ノードグループの作成 - Amazon EKS

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

マネージド型ノードグループの作成

このトピックは、Amazon EKSクラスターに登録されている Linux ノードのAmazon EKSマネージド型ノードグループの起動に役立ちます。ノードがクラスターに参加したら、それらのノードに Kubernetes アプリケーションをデプロイ可能になります。

マネージド型ノードグループ は、Kubernetes バージョン 1.14 およびプラットフォームバージョンで始まる Amazon EKS クラスターでサポートされていますeks.3。既存のクラスターは、この機能を利用するために、バージョン 1.14 以降に更新できます。詳細については、「Amazon EKS クラスターの Kubernetes バージョンの更新」を参照してください。

Amazon EKS マネージド型ノードグループを初めて起動する場合は、代わりに Amazon EKS の開始方法 ガイドに従うことをお勧めします。これらのガイドは、 ノードを含む Amazon EKSクラスターを作成するための完全なエンドツーエンドのチュートリアルを提供します。

重要

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

マネージド型ノードグループは、 eksctlまたは で作成できますAWS マネジメントコンソール

を使用してマネージド型ノードグループを作成するにはeksctl

この手順には、eksctl バージョン 0.31.0-rc.0 以降が必要です。お使いのバージョンは、以下のコマンドを使用して確認できます。

eksctl version

eksctl のインストールまたはアップグレードの詳細については、eksctl のインストールまたはアップグレード を参照してください。

AWS Outposts、AWS Wavelength、または AWS ローカルゾーンが有効になっている AWS リージョンに、クラスターまたはノードを作成するときは、eksctl を使用しないでください。代わりに、Amazon EC2 API または AWS CloudFormation を使用して、クラスターとセルフマネージドノードを作成します。詳細については、「を使用してセルフマネージド型ノードを起動するにはAWS マネジメントコンソール」および「を使用してセルフマネージド Windows ノードを起動するにはAWS マネジメントコンソール」を参照してください。

起動テンプレートの有無にかかわらずノードグループを作成できます。起動テンプレートを使用すると、カスタム AMI のデプロイを含めて、ノードグループをより高度にカスタマイズできます。以下のいずれかのステップを実行します。ポッドのセキュリティグループ を使用する予定がある場合は、サポートされている Amazon EC2 インスタンスタイプを必ず指定してください。詳細については、「Amazon EC2でサポートされるインスタンスとブランチネットワークインターフェイス」を参照してください。Arm Amazon EC2 インスタンスタイプを指定する場合は、デプロイする前に Amazon EKS最適化 ArmAmazon LinuxAMIs の考慮事項を確認してください。

  1. 以下のコマンドを使用して、起動テンプレートなしでマネージド型ノードグループを作成します。これには、 eksctl ( <example values> を含む) を独自の値に置き換えます。<>独自の起動テンプレートを指定しない場合、Amazon EKSAPI はアカウントにデフォルトのAmazon EC2起動テンプレートを作成し、デフォルトの起動テンプレートを使用してノードグループをデプロイします。

    eksctl create nodegroup \ --cluster <my-cluster> \ --region <us-west-2> \ --name <my-mng> \ --node-type <m5.large> \ --nodes <3> \ --nodes-min <2> \ --nodes-max <4> \ --ssh-access \ --ssh-public-key <my-public-key.pub> \ --managed
  2. 起動テンプレートを使用してマネージド型ノードグループを作成します。起動テンプレートが既に存在しており、 起動テンプレート設定の基本 で指定された要件を満たしている必要があります。

    1. 次の内容<node-group-lt.yaml>で という名前のファイルを作成し、 <example values> ( <> を含む) を独自の値に置き換えます。起動テンプレートなしでデプロイするときに指定するいくつかの設定は、起動テンプレートに移動されます。を指定しない場合、テンプレートのデフォルトバージョンが使用されます。version

      apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: <my-cluster> region: <region-code> managedNodeGroups: - name: <node-group-lt> launchTemplate: id: lt-<id> version: "<1>"
    2. 次のコマンドを使用して、ノードグループをデプロイします。

      eksctl create nodegroup --config-file node-group-lt.yaml

を使用してマネージド型ノードグループを作成するには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 をデプロイすることを含め、ノードグループをさらにカスタマイズできます。起動テンプレートは、 の要件を満たしている必要があります起動テンプレートのサポート。独自の起動テンプレートを使用しない場合、Amazon EKSAPI はアカウントにデフォルトのAmazon EC2起動テンプレートを作成し、デフォルトの起動テンプレートを使用してノードグループをデプロイします。

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

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

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

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

    • AMI タイプ GPU 以外のインスタンスの場合は – Amazon Linux 2 (AL2_x86_64)、GPU インスタンスの場合は Amazon Linux 2 GPU 対応 (AL2_x86_64_GPU)、Arm の場合は (AL2_ARM_64) を選択します。Amazon Linux 2

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

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

    • [インスタンスタイプ] – マネージド型ノードグループで使用するインスタンスタイプを選択します。コンソールには、よく使用されるインスタンスタイプのセットが表示されます。表示されていないインスタンスタイプを持つマネージド型ノードグループを作成する必要がある場合は、 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最適化 ArmAmazon LinuxAMIs の考慮事項を確認してください。

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

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

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

    注記

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

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

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

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

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

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

      重要

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

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

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

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

    • [Allow remote access from ( からのリモートアクセスを許可する)] で、特定のインスタンスへのアクセスを制限する場合は、それらのインスタンスに関連付けられているセキュリティグループを選択します。特定のセキュリティグループを選択しない場合、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 ワーカーノードが含まれている必要があります。

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