このページでは、高速起動ノードを使用して Google Kubernetes Engine(GKE)クラスタでワークロードをより迅速にデプロイしてスケーリングする方法について説明します。高速起動ノードは、ワークロードが互換性のある構成を使用している場合、Autopilot モードがベスト エフォート ベースでの GKE で使用されます。
GKE の高速起動ノードでは、互換性のあるマシン ファミリーの起動時間が大幅に短縮されます。起動時間が加速すると、次のようなメリットがあります。
- コールド スタートの高速化
- 自動スケーリングの高速化
- Pod のスケジューリングのロングテール レイテンシを改善
- インフラストラクチャの費用対効果の向上
高速起動ノードを使用すると、GKE によりハードウェア リソースが事前に初期化され起動時間が加速します。事前に初期化されたリソースはベスト エフォートで利用できます。サージ リクエストは部分的にしか処理されない場合があります。高速起動ノードを使用しない場合、リソースはオンデマンドで初期化され、ノードは通常の起動時間で提供されます。
要件
高速起動ノードでは、追加の構成は必要ありません。ワークロードで互換性のある構成を使用している場合、GKE は高速起動ノードを自動的に使用します。高速起動ノードを使用するには、次の要件をすべて満たす必要があります。
- Autopilot クラスタを使用するか、Standard クラスタで Autopilot モードのワークロードを実行します。
- 高速起動ノードと互換性のない機能は使用しないでください。詳細については、制限事項をご覧ください。
- 次の表に示すいずれかの構成を使用します。
| コンピューティング リソース | リリース チャンネルとバージョンのサポート | 対応のブートディスクのタイプとサイズ |
|---|---|---|
| Autopilot コンテナ最適化コンピューティング プラットフォーム |
|
最大 100 GiB の pd-balanced ディスク |
| G2 マシンシリーズ |
|
最大 500 GiB の pd-balanced ディスク |
制限事項
次の機能は、GKE の高速起動ノードと互換性がありません。これらの機能を使用した場合、GKE は一般的な起動時間でノードをプロビジョニングします。
- GKE バージョン 1.33.0-gke.1304000 より前の
DEFAULTGPU ドライバ バージョンの G2。1.33.0-gke.1304000 以降では、LATESTとDEFAULTの両方が高速起動ノードで機能します。 - 1.33.2-gke.1015000 より前のバージョンのセカンダリ ブートディスク。
- 顧客管理の暗号鍵(CMEK)
- Spot VM
- ローカル SSD
- プレースメント ポリシー
- マルチネットワークのサポート
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 モードのセクションをご覧ください。