關於使用快速啟動節點加快工作負載啟動速度

本頁說明如何使用快速啟動節點,在 Google Kubernetes Engine (GKE) 叢集中更快部署及擴充工作負載。如果工作負載使用相容的設定,GKE 會盡可能在 Autopilot 模式中使用快速啟動節點。

快速啟動 GKE 節點可大幅縮短相容機器系列的啟動時間。啟動時間縮短可帶來下列好處:

  • 冷啟動速度更快
  • 加快自動調度資源速度
  • 改善 Pod 排程的長尾延遲
  • 提升基礎架構成本效益

有了快速啟動節點,GKE 會預先初始化硬體資源,縮短啟動時間。預先初始化的資源會盡可能提供,系統可能只會部分放送熱門廣告。如果沒有快速啟動節點,系統會視需要初始化資源,並在正常啟動時間提供節點。

需求條件

快速啟動節點不需要額外設定。如果工作負載使用相容的設定,GKE 會自動使用快速啟動節點。如要使用快速啟動節點,必須符合下列所有條件:

  • 使用 Autopilot 叢集。
  • 使用快速發布管道中的任何版本。
  • 使用下列任一相容的運算資源,相容的開機磁碟大小上限為 500 GiB:

  • 使用 pd-balanced 開機磁碟類型。

  • 請勿使用與快速啟動節點不相容的功能。詳情請參閱「限制」一節。

限制

下列功能與快速啟動 GKE 節點不相容。如果您使用上述任一功能,GKE 會以一般啟動時間佈建節點:

Autopilot GPU 工作負載

在 Autopilot 叢集中要求相容的 GPU,節點啟動時間最多可加快四倍,Pod 排程時間最多可加快兩倍,因為 Autopilot GPU 工作負載可使用快速啟動的節點。

以下是一些使用範例。不過,只要 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 模式部分。

後續步驟