スポットキャパシティの作成
スポットインスタンスを作成するマネージドノードグループをデプロイし、その後、アプリケーションの既存の catalog コンポーネントを新しく作成したスポットインスタンス上で実行するように変更しましょう。
既存のEKSクラスタ内のすべてのノードをリストすることから始めましょう。kubectl get nodes コマンドを使用してKubernetesクラスタ内のノードをリストできますが、キャパシティタイプに関する追加の詳細情報を取得するために、-L eks.amazonaws.com/capacityType パラメータを使用します。
以下のコマンドは、現在のノードがオンデマンドインスタンスであることを示しています。
NAME STATUS ROLES AGE VERSION CAPACITYTYPE
ip-10-42-103-103.us-east-2.compute.internal Ready <none> 133m v1.33-eks-036c24b ON_DEMAND
ip-10-42-142-197.us-east-2.compute.internal Ready <none> 133m v1.33-eks-036c24b ON_DEMAND
ip-10-42-161-44.us-east-2.compute.internal Ready <none> 133m v1.33-eks-036c24b ON_DEMAND
on-demandインスタンスなど、特定のキャパシティタイプに基づいてノードを取得したい場合は、「ラベル セレクター」を利用できます。この特定のシナリオでは、ラベルセレクターをcapacityType=ON_DEMANDに設定することでこれを実現できます。
NAME STATUS ROLES AGE VERSION
ip-10-42-10-119.us-east-2.compute.internal Ready <none> 3d10h v1.33-eks-036c24b
ip-10-42-10-200.us-east-2.compute.internal Ready <none> 3d10h v1.33-eks-036c24b
ip-10-42-11-94.us-east-2.compute.internal Ready <none> 3d10h v1.33-eks-036c24b
ip-10-42-12-235.us-east-2.compute.internal Ready <none> 4h34m v1.33-eks-036c24b
以下の図では、クラスタ内のマネージドノードグループを表す2つの別個の「ノードグループ」があります。最初のノードグループボックスは、オンデマンドインスタンスを含むノードグループを表し、2番目はスポットインスタンスを含むノードグループを表します。どちらも指定されたEKSクラスタに関連付けられています。

スポットインスタンスを持つノードグループを作成しましょう。次のコマンドは、新しいノードグループ managed-spot を作成します。
--capacity-type SPOT引数は、このマネージドノードグループのすべてのキャパシティがスポットであることを示しています。
aws eks wait nodegroup-activeコマンドを使用して、特定のEKSノードグループがアクティブになり、使用準備が整うまで待機できます。このコマンドはAWS CLIの一部であり、指定されたノードグループが正常に作成され、関連するすべてのインスタンスが実行中で準備ができていることを確認するために使用できます。
新しいマネージドノードグループがアクティブになったら、以下のコマンドを実行します。
NAME STATUS ROLES AGE VERSION CAPACITYTYPE NODEGROUP
ip-10-42-103-103.us-east-2.compute.internal Ready <none> 3h38m v1.33-eks-036c24b ON_DEMAND default
ip-10-42-142-197.us-east-2.compute.internal Ready <none> 3h38m v1.33-eks-036c24b ON_DEMAND default
ip-10-42-161-44.us-east-2.compute.internal Ready <none> 3h38m v1.33-eks-036c24b ON_DEMAND default
ip-10-42-178-46.us-east-2.compute.internal Ready <none> 103s v1.33-eks-036c24b SPOT managed-spot
ip-10-42-97-19.us-east-2.compute.internal Ready <none> 104s v1.33-eks-036c24b SPOT managed-spot
出力は、ノードグループ managed-spot の下に2つの追加ノードがプロビジョニングされ、キャパシティタイプが SPOT であることを示しています。