このページでは、高速起動ノードを使用して、Google Kubernetes Engine(GKE)クラスタでワークロードをより迅速にデプロイしてスケーリングする方法について説明します。高速起動ノードは、ワークロードが互換性のある構成を使用している場合、GKE の Autopilot モードでベスト エフォート ベースで使用されます。
高速起動 GKE ノードは、互換性のあるマシン ファミリーの起動時間が大幅に短縮されます。起動時間の短縮には、次のようなメリットがあります。
- コールド スタートの高速化
- 自動スケーリングの高速化
- Pod のスケジューリングのロングテール レイテンシを改善
- インフラストラクチャの費用対効果の向上
高速起動ノードを使用すると、GKE はハードウェア リソースを事前初期化して起動時間を短縮します。事前初期化されたリソースは、ベスト エフォートで利用できます。サージ リクエストは一部のみが処理される場合があります。高速起動ノードがない場合、リソースはオンデマンドで初期化され、ノードは通常の起動時間で提供されます。
要件
高速起動ノードでは、追加の構成は必要ありません。ワークロードが互換性のある構成を使用している場合、GKE は自動的に高速起動ノードを使用します。高速起動ノードを使用するには、次の要件をすべて満たす必要があります。
- Autopilot クラスタを使用する。
- Rapid リリース チャンネルの任意のバージョンを使用します。
次の互換性のあるコンピューティング リソースのいずれかを使用します。互換性のあるブートディスクの最大サイズは 500 GiB です。
- NVIDIA L4 GPU(G2 マシンシリーズ)
pd-balanced
ブートディスク タイプを使用します。高速起動ノードと互換性のない機能は使用しないでください。詳細については、制限事項をご覧ください。
制限事項
次の機能は、高速起動 GKE ノードと互換性がありません。これらの機能を使用すると、GKE は通常の起動時間でノードをプロビジョニングします。
Autopilot GPU ワークロード
Autopilot クラスタで互換性のある GPU をリクエストすると、Autopilot GPU ワークロードは高速起動ノードを使用できるため、GKE Standard クラスタでの同様のリクエストよりもノードの起動時間が最大 4 倍、Pod のスケジューリング時間が最大 2 倍短縮されます。
次のようなユースケースが例として挙げられます。ただし、要件セクションの条件を満たす Pod は、高速起動ノードと互換性があります。
ComputeClass
次の例に示すように、ComputeClass で互換性のあるアクセラレータ タイプと数をリクエストします。
apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
name: ACCELERATOR_COMPUTE_CLASS_NAME
spec:
priorities:
- gpu:
type: ACCELERATOR_TYPE
count: ACCELERATOR_COUNT
nodePoolAutoCreation:
enabled: true
次の例のように、Pod でこの ComputeClass を選択すると、GKE は高速起動ノードを使用します。
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
nodeSelector:
# Select a ComputeClass that requests compatible GPUs
cloud.google.com/compute-class: ACCELERATOR_COMPUTE_CLASS_NAME
containers:
- name: my-container
image: gcr.io/google_containers/pause
resources:
limits:
nvidia.com/gpu: ACCELERATOR_COUNT
次の値を置き換えます。
ACCELERATOR_COMPUTE_CLASS_NAME
: アクセラレータをリクエストする ComputeClass の名前。ACCELERATOR_TYPE
: アクセラレータのタイプ。ACCELERATOR_COUNT
: Pod に必要なアクセラレータの数。この値は、ComputeClass のspec.priorities.gpu.count
フィールドの値以下にする必要があります。POD_NAME
: Pod の名前。
ComputeClass の詳細については、カスタム コンピューティング クラスについてをご覧ください。
Pod の仕様
次の例のように、Pod 仕様で互換性のあるアクセラレータ タイプと数を選択します。
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
nodeSelector:
cloud.google.com/gke-accelerator: ACCELERATOR_NAME
containers:
- name: my-container
image: gcr.io/google_containers/pause
resources:
limits:
nvidia.com/gpu: ACCELERATOR_COUNT
次の値を置き換えます。
POD_NAME
: Pod の名前。ACCELERATOR_NAME
: Pod で必要なアクセラレータの名前。ACCELERATOR_COUNT
: Pod に必要なアクセラレータの数。
料金
高速起動ノードは、GKE Autopilot で追加料金なしで利用できます。GKE Autopilot の料金の詳細については、Google Kubernetes Engine の料金の Autopilot モードのセクションをご覧ください。