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

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

マネージド型ノードグループ

Amazon EKS マネージド型ノードグループは、Amazon EC2 Kubernetes クラスターのノード(Amazon EKS インスタンス)のプロビジョニングとライフサイクル管理を自動化します。

Amazon EKS マネージド型ノードグループでは、Kubernetes アプリケーションを実行するためのコンピューティング能力を提供する Amazon EC2 インスタンスを個別にプロビジョニングまたは登録する必要はありません。1 回の操作で、クラスターのノードを作成、更新、または終了できます。ノードは、Amazon EKS アカウント内の最新の AWS 最適化 AMI を使用して実行されます。ノードの更新と終了により、アプリケーションが常に利用できるように、ノードは適切にドレーンされます。

すべてのマネージド型ノードは、Amazon EC2 によって管理される Auto Scaling Amazon EKS グループの一部としてプロビジョニングされます。インスタンスや Auto Scaling グループを含むすべてのリソースは、AWS アカウント内で実行されます。各ノードグループは、Amazon EKS 最適化 Amazon Linux 2 AMI を使用し、定義した複数の アベイラビリティーゾーン で実行できます。

新規または既存のクラスターにマネージド型ノードグループを追加するには、Amazon EKS コンソール、eksctl、AWS CLI、AWS API、またはインフラストラクチャを AWS CloudFormation を含むコードツールとして使用します。マネージド型ノードグループの一部として起動されたノードは、Kubernetes クラスターオートスケーラーによって自動検出用に自動的にタグ付けされます。ノードグループを使用して、いつでも Kubernetes ラベルをノードに適用し、更新できます。

Amazon EKS マネージド型ノードグループの使用に追加料金はかかりません。お支払いいただくのはプロビジョニングした AWS リソースの分だけです。これには、Amazon EC2 インスタンス、Amazon EBS ボリューム、Amazon EKS クラスター時間、その他の AWS インフラストラクチャが含まれます。最低料金や前払いの義務は発生しません。

新しい Amazon EKS クラスターおよびマネージド型ノードグループの使用を開始するには、「Amazon EKS – および AWS マネジメントコンソール の開始方法AWS CLI.」を参照してください。

既存のクラスターにマネージド型ノードグループを追加するには、「」を参照してください。マネージド型ノードグループの作成.

マネージド型ノードグループの概念

  • Amazon EKS マネージド型ノードグループは、Amazon EC2 インスタンスの作成と管理を行います。

  • すべてのマネージド型ノードは、Amazon EC2 によって管理される Auto Scaling Amazon EKS グループの一部としてプロビジョニングされます。さらに、Amazon EC2 インスタンスや Auto Scaling グループを含むすべてのリソースが AWS アカウント内で実行されます。

  • マネージド型ノードグループの Auto Scaling グループは、グループの作成時に指定するすべてのサブネットにまたがります。

  • Amazon EKS は、マネージド型ノードグループリソースを Kubernetes Cluster Autoscaler を使用するように設定されるようにタグ付けします。

    重要

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

  • デフォルトでは、マネージド型ノードグループのインスタンスは、クラスターの Kubernetes バージョン用に最適化された Amazon EKS Amazon Linux 2 AMI の最新バージョンを使用します。最適化 Amazon EKS AMI の標準バリアントおよび GPU バリアントを選択できます。Amazon Linux 2起動テンプレートを使用してデプロイする場合は、カスタム AMI を使用することもできます。詳細については、「」を参照してください。起動テンプレートのサポート.

  • Amazon EKS は、マネージド型ノードグループで CVE およびセキュリティパッチの責任共有モデルに従います。マネージド型ノードが Amazon EKS 最適化 AMI を実行すると、バグや問題が報告されたときに、Amazon EKS は AMI のパッチ適用バージョンの構築を担当します。修正プログラムを発行できます。ただし、これらのパッチが適用された AMI バージョンのマネージド型ノードグループへのデプロイはユーザーが行います。マネージド型ノードがカスタム AMI を実行する場合、バグや問題が報告されたときにパッチが適用された AMI のバージョンを作成し、AMI をデプロイします。詳細については、「」を参照してください。マネージド型ノードグループの更新.

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

  • プライベートサブネットで VPC エンドポイントを使用する場合は、com.amazonaws.region.ecr.apicom.amazonaws.region.ecr.dkr のエンドポイントおよび Amazon S3. のゲートウェイエンドポイントを作成する必要があります。詳細については、「Amazon ECR インターフェイス VPC エンドポイント (AWS PrivateLink)).」を参照してください。

  • マネージド型ノードグループは、AWS Outposts のノードまたは AWS Wavelength または AWS ローカルゾーンにデプロイされたノードにデプロイすることはできません。

  • 1 つのクラスター内に複数のマネージド型ノードグループを作成できます。たとえば、一部のワークロード用に標準 Amazon EKS 最適化 Amazon Linux 2 AMI を使用するノードグループを作成し、GPU サポートを必要とするワークロード用に GPU バリアントを使用する別のノードグループを作成できます。

  • マネージド型ノードグループで正常性の問題が発生した場合は、Amazon EKS から問題の診断に役立つエラーメッセージが返されます。詳細については、「」を参照してください。マネージド型ノードグループのエラー.

  • Amazon EKS は、マネージド型ノードグループインスタンスに Kubernetes ラベルを追加します。これらの Amazon EKS 提供のラベルには、プレフィックス eks.amazonaws.com が付けられます。

  • Amazon EKS は、終了または更新時に Kubernetes API を使用してノードを自動的にドレーンします。更新は、ポッドに設定したポッド中断予算を優先します。

  • マネージド型ノードグループを使用しても追加コストは発生しません。Amazon EKSプロビジョニングした AWS リソースに対してのみ料金が発生します。

マネージド型ノードグループの容量タイプ

マネージド型ノードグループを作成するときは、オンデマンドまたはスポットの容量タイプを選択できます。Amazon EKS は、オンデマンドのみ、または Amazon EC2 スポットインスタンスのみを含む Auto Scaling Amazon EC2 グループを持つマネージド型ノードグループをデプロイします。耐障害性を備えたアプリケーションのポッドをスポットマネージド型ノードグループに、耐障害性のあるアプリケーションを単一の Kubernetes クラスター内のオンデマンドノードグループにスケジュールできます。デフォルトでは、マネージド型ノードグループはオンデマンドの Amazon EC2 インスタンスをデプロイします。

オンデマンド

オンデマンドインスタンスでは、長期契約なしに、コンピューティング性能に対して秒単位で料金を支払います。

仕組み

デフォルトでは、[キャパシティータイプ] を指定しない場合、マネージド型ノードグループはオンデマンドインスタンスでプロビジョニングされます。マネージド型ノードグループは、以下の設定を適用して、ユーザーに代わって Amazon EC2 Auto Scaling グループを設定します。

  • オンデマンドキャパシティーをプロビジョニングするための配分戦略は、prioritized に設定されます。マネージド型ノードグループは、API で渡されるインスタンスタイプの順を使用して、オンデマンド容量を満たすときに最初に使用するインスタンスタイプを決定します。たとえば、3 つのインスタンスタイプを c5.largec4.largec3.large の順序で指定できます。オンデマンドインスタンスが起動されると、マネージド型ノードグループは c5.largec4.largec3.large の順でオンデマンド容量を満たします。詳細については、 の「Amazon EC2 Auto Scaling グループ」を参照してください。Amazon EC2 Auto Scaling ユーザーガイド

  • Amazon EKS は、キャパシティータイプを指定するマネージド型ノードグループ内のすべてのノードに、次の Kubernetes ラベルを追加します。eks.amazonaws.com/capacityType: ON_DEMANDこのラベルを使用して、オンデマンドノードでステートフルまたはフォールトトレラントなアプリケーションをスケジュールできます。

Spot

Amazon EC2 スポットインスタンスは、オンデマンド価格から大幅な割引を受ける予備の Amazon EC2 容量です。 Amazon EC2スポットインスタンスは、EC2 から容量の返却を求められると、2 分間の中断通知が表示される場合があります。詳細については、 の「スポットインスタンスLinux インスタンス用 Amazon EC2 ユーザーガイド」を参照してください。スポットインスタンスを使用してマネージド型ノードグループを設定することで、Amazon EC2 クラスターで実行されているコンピューティングノードのコストを最適化できます。Amazon EKS

仕組み

マネージド型ノードグループ内のスポットインスタンスを使用するには、キャパシティータイプを spot に設定してマネージド型ノードグループを作成する必要があります。マネージド型ノードグループは、以下のスポットベストプラクティスを適用して、ユーザーに代わって Amazon EC2 Auto Scaling グループを設定します。

  • スポット容量をプロビジョニングするための配分戦略は capacity-optimized に設定され、スポットノードが最適なスポット容量プールにプロビジョニングされるようにします。容量の割り当てに使用できるスポット容量プールの数を増やすには、複数のインスタンスタイプを使用するようにマネージド型ノードグループを設定することをお勧めします。

  • Amazon EC2 スポット容量の再分散を有効にすると、Amazon EKS はスポットノードを適切にドレーンおよび再分散し、スポットノードが中断のリスクが高いときのアプリケーションの中断を最小限に抑えることができます。詳細については、 の「Amazon EC2 Auto Scaling Capacity RebalancingAmazon EC2 Auto Scaling ユーザーガイド」を参照してください。

    • スポットノードが再分散レコメンデーションを受け取ると、Amazon EKS は自動的に新しい代替スポットノードを起動し、クラスターに正常に参加するまで待機します。

    • 代替スポットノードがブートストラップされ、Kubernetes の Ready 状態になると、Amazon EKS は再分散レコメンデーションを受け取ったスポットノードを遮断してドレインします。スポットノードをコード化することで、サービスコントローラーはこの新しいリクエストをこのスポットノードに送信しません。また、正常な、アクティブなスポットノードのリストから、それを削除します。スポットノードをドレーンすると、実行中のポッドが適切に削除されます。

    • 代替スポットノードが Ready 状態になる前にスポット 2 分の中断通知が到着すると、Amazon EKS は再分散の推奨を受け取ったスポットノードのドレインを開始します。

  • Amazon EKS は、キャパシティータイプを指定するマネージド型ノードグループ内のすべてのノードに、次の Kubernetes ラベルを追加します。eks.amazonaws.com/capacityType: SPOT。このラベルを使用して、スポットノードで耐障害性アプリケーションをスケジュールできます。

キャパシティータイプの選択に関する考慮事項

オンデマンド容量とスポット容量のどちらを持つノードグループをデプロイするかを決定するときは、次の条件を考慮する必要があります。

  • スポットインスタンスは、バッチや機械学習のトレーニングワークロードなどのステートレス、フォールトトレラント、柔軟なアプリケーション、Apache Spark などのビッグデータ ETL、キュー処理アプリケーション、ステートレス API エンドポイントに適しています。スポットは時間の経過とともに変化する可能性のある予備の Amazon EC2 容量であるため、必要な容量が利用できない期間を許容できる中断許容ワークロードにはスポット容量を使用することをお勧めします。

  • クラスター管理ツール (モニタリングや運用ツールなど)、StatefulSets を必要とするデプロイ、データベースなどのステートフルアプリケーションなど、耐障害性を持つアプリケーションにはオンデマンドを使用することをお勧めします。

  • スポットインスタンスの使用中にアプリケーションの可用性を最大化するには、複数のインスタンスタイプを使用するようにスポットマネージド型ノードグループを設定することをお勧めします。複数のインスタンスタイプを使用する場合は、以下のルールを適用することをお勧めします。

    • マネージド型ノードグループ内で、Cluster Autoscaler を使用している場合は、同じ量の vCPU とメモリリソースを備えた柔軟なインスタンスタイプのセットを使用して、クラスター内のノードが想定どおりにスケーリングされるようにすることをお勧めします。たとえば、4 つの vCPU と 8 GiB メモリが必要な場合は、c3.xlargec4.xlargec5.xlargec5d.xlargec5a.xlarge、c5n.xlarge、またはその他の同様のインスタンスタイプを使用することをお勧めします。

    • アプリケーションの可用性を高めるために、複数のスポットマネージド型ノードグループをデプロイすることをお勧めします。それぞれに、同じ vCPU とメモリリソースを持つ柔軟なインスタンスタイプのセットが使用されます。たとえば、4 個の vCPU と 8 GiB メモリが必要な場合は、c3.xlargec4.xlargec5.xlargec5d.xlargec5a.xlargec5n.xlarge、またはその他の同様のインスタンスタイプを持つ 1 つのマネージド型ノードグループを作成し、m3.xlargem4.xlargem5.xlargem5d.xlargem5a.xlargem5n.xlarge などの同様のインスタンスタイプを持つ 2 番目のマネージド型ノードグループを作成することをお勧めします。

    • カスタム起動テンプレートを使用するスポット容量タイプを使用してノードグループをデプロイする場合は、API を使用して、起動テンプレートを介して単一のインスタンスタイプを渡す代わりに、複数のインスタンスタイプを渡します。起動テンプレートを使用してノードグループをデプロイする方法の詳細については、「起動テンプレートのサポート」を参照してください。