Autopilot 中的資源要求


本頁說明 Google Kubernetes Engine (GKE) Autopilot 如何管理工作負載資源要求的值,例如 CPU、記憶體或臨時儲存空間。這個頁面包含下列資訊,可協助您規劃有效率、穩定且經濟實惠的工作負載:

  • Autopilot 套用至未指定值的 Pod 的預設值。
  • Autopilot 強制執行的資源要求最小值和最大值。
  • 預設、最小值和最大值會因 Pod 要求使用的硬體而異。

本頁面適用於佈建及設定雲端資源,並部署工作負載的運算子和開發人員。如要進一步瞭解內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。 Google Cloud

閱讀本頁面之前,請先熟悉 Kubernetes 資源管理概念

Autopilot 中的資源要求總覽

Autopilot 會使用您在工作負載設定中指定的資源要求,設定執行工作負載的節點。Autopilot 會根據工作負載使用的運算類別或硬體設定,強制執行資源要求下限和上限。如果您未指定部分容器的要求,Autopilot 會指派預設值,讓這些容器正常運作。

在 Autopilot 叢集中部署工作負載時,GKE 會根據所選運算級別或硬體設定 (例如 GPU) 的允許最小值和最大值,驗證工作負載設定。如果要求低於下限,Autopilot 會自動修改工作負載設定,將要求調整至允許範圍內。如果要求超過上限,Autopilot 會拒絕工作負載並顯示錯誤訊息。

以下列出資源要求類別:

  • 預設資源要求:如果您未指定工作負載的要求,Autopilot 會新增這些要求
  • 資源要求下限和上限:Autopilot 會驗證您指定的要求,確保這些要求在限制範圍內。如果要求超出限制,Autopilot 會修改工作負載要求。
  • 工作負載區隔和延長時間要求:對於彼此區隔的工作負載,或從 GKE 啟動的驅逐作業獲得延長保護的 Pod,Autopilot 具有不同的預設值和最小值。
  • DaemonSet 的資源要求:Autopilot 為 DaemonSet 中的容器設定了不同的預設、最小值和最大值。

如何要求資源

在 Autopilot 中,您可以在 Pod 規格中要求資源。可要求的資源下限和上限會根據 Pod 執行的節點硬體設定而異。如要瞭解如何要求特定硬體設定,請參閱下列頁面:

預設資源要求

如果您未指定 Pod 中部分容器的資源要求,Autopilot 會套用預設值。這些預設值適用於許多較小的工作負載。

此外,無論選取的運算類別或硬體設定為何,Autopilot 都會套用下列預設資源要求:

  • DaemonSet 中的容器

    • CPU:50 mCPU
    • 記憶體:100 MiB
    • 暫存空間:100 MiB
  • 所有其他容器

    • 暫存空間:1 GiB

如要進一步瞭解 Autopilot 叢集限制,請參閱配額與限制

運算類別的預設要求

對於在運算類別上執行的 Pod,如果 Pod 規格中未定義資源,Autopilot 會套用下列預設值。如果您只設定其中一個要求,並將另一個要求留空,GKE 會使用「要求下限和上限」一節中定義的 CPU:記憶體比例,將缺少的請求設為符合該比例的值。

運算類別 資源 預設要求
一般用途 (預設) CPU 0.5 個 vCPU
記憶體 2 GiB
加速器 請參閱「加速器的預設資源」一節。
平衡 CPU 0.5 個 vCPU
記憶體 2 GiB
成效 CPU
  • C3 機器系列:2 個 vCPU
  • C3 系列機器 (具備本機 SSD):2 個 vCPU
  • C3D 機器系列:2 個 vCPU
  • C3D 系列機型 (具備本機 SSD):4 個 vCPU
  • C4D 機器系列 (1.33.0-gke.1439000 以上版本):不會強制執行預設要求。
  • C4D 機器系列 (具備本機 SSD) (1.33.1-gke.1171000 以上版本):不會強制執行預設要求。
  • H3 機器系列:80 個 vCPU
  • C2 機器系列:2 個 vCPU
  • C2D 系列:2 個 vCPU
  • T2A 系列:2 個 vCPU
  • T2D 系列機器:2 個 vCPU
記憶體
  • C3 機器系列:8 GiB
  • C3 系列機型 (具備本機 SSD):8 GiB
  • C3D 機器系列:8 GiB
  • C3D 系列機型 (具備本機 SSD):16 GiB
  • C4D 機器系列 (1.33.0-gke.1439000 以上版本):不會強制執行預設要求。
  • C4D 機器系列 (具備本機 SSD) (1.33.1-gke.1171000 以上版本):不會強制執行預設要求。
  • H3 機器系列:320 GiB
  • C2 機器系列:8 GiB
  • C2D 機器系列:8 GiB
  • T2A 機器系列:8 GiB
  • T2D 機器系列:8 GiB
臨時儲存空間
  • C3 機器系列:1 GiB
  • C3 機器系列 (具備本機 SSD):1 GiB
  • C3D 機器系列:1 GiB
  • C3D 機器系列 (含本機 SSD):1 GiB
  • C4D 機器系列 (1.33.0-gke.1439000 以上版本):不會強制執行預設要求。
  • C4D 機器系列 (具備本機 SSD,版本為 1.33.1-gke.1171000 以上):不會強制執行預設要求。
  • H3 機器系列:1 GiB
  • C2 機器系列:1 GiB
  • C2D 機器系列:1 GiB
  • T2A 機器系列:1 GiB
  • T2D 機器系列:1 GiB
向外擴充 CPU 0.5 個 vCPU
記憶體 2 GiB

加速器的預設要求

在 1.29.4-gke.1427000 以上版本中,Autopilot 不會強制執行加速器的預設要求。詳情請參閱「定價」。

下表說明 GKE 指派給 Pod 的預設值,這些 Pod 未在 Pod 規格的 requests 欄位中指定值。下表適用於在 1.29.4-gke.1427000 之前的版本上執行的 Pod,這些 Pod 使用 Accelerator 運算類別,這是 Autopilot 叢集中執行加速器的建議方式。

加速器 資源 預設要求總數
NVIDIA B200 GPU
nvidia-b200
未強制執行任何預設要求。
NVIDIA H200 (141 GB) GPU
nvidia-h200-141gb
未強制執行任何預設要求。
NVIDIA H100 Mega (80 GB) GPU
nvidia-h100-mega-80gb
CPU
  • 8 個 GPU:200 個 vCPU
記憶體
  • 8 個 GPU:1400 GiB
臨時儲存空間
  • 8 個 GPU:1 GiB
NVIDIA H100 (80 GB) GPU
nvidia-h100-80gb
CPU
  • 8 個 GPU:200 個 vCPU
記憶體
  • 8 個 GPU:1400 GiB
臨時儲存空間
  • 8 個 GPU:1 GiB
NVIDIA A100 (40 GB) GPU
nvidia-tesla-a100
CPU
  • 1 個 GPU:9 個 vCPU
  • 2 個 GPU:20 個 vCPU
  • 4 個 GPU:44 個 vCPU
  • 8 個 GPU:92 個 vCPU
  • 16 個 GPU:92 個 vCPU
記憶體
  • 1 個 GPU:60 GiB
  • 2 個 GPU:134 GiB
  • 4 個 GPU:296 GiB
  • 8 個 GPU:618 GiB
  • 16 個 GPU:1250 GiB
NVIDIA A100 (80 GB) GPU
nvidia-a100-80gb
CPU
  • 1 個 GPU:9 個 vCPU
  • 2 個 GPU:20 個 vCPU
  • 4 個 GPU:44 個 vCPU
  • 8 個 GPU:92 個 vCPU
記憶體
  • 1 個 GPU:134 GiB
  • 2 個 GPU:296 GiB
  • 4 個 GPU:618 GiB
  • 8 個 GPU:1250 GiB
臨時儲存空間
  • 1 個 GPU:1 GiB
  • 2 個 GPU:1 GiB
  • 4 個 GPU:1 GiB
  • 8 個 GPU:1 GiB
NVIDIA L4 GPU
nvidia-l4
CPU
  • 1 個 GPU:2 個 vCPU
  • 2 個 GPU:21 個 vCPU
  • 4 個 GPU:45 個 vCPU
  • 8 個 GPU:93 個 vCPU
記憶體
  • 1 個 GPU:7 GiB
  • 2 個 GPU:78 GiB
  • 4 個 GPU:170 GiB
  • 8 個 GPU:355 GiB
NVIDIA T4 GPU
nvidia-tesla-t4
CPU
  • 1 個 GPU:0.5 個 vCPU
  • 4 個 GPU:0.5 個 vCPU
記憶體
  • 1 個 GPU:2 GiB
  • 4 個 GPU:2 GiB
TPU Trillium (v6e)
tpu-v6e-slice (單一主機)
CPU 所有拓撲:1 mCPU
記憶體 所有拓撲:1 MiB
TPU Trillium (v6e)
tpu-v6e-slice (多主機)
CPU 所有拓撲:1 mCPU
記憶體 所有拓撲:1 MiB
TPU v5e
tpu-v5-lite-podslice (多主機)
CPU 所有拓撲:1 mCPU
記憶體 所有拓撲:1 MiB
TPU v5p
tpu-v5p-slice
CPU 所有拓撲:1 mCPU
記憶體 所有拓撲:1 MiB
TPU v4
tpu-v4-podslice
CPU 所有拓撲:1 mCPU
記憶體 所有拓撲:1 MiB

不支援 Accelerator 運算級別的 GPU

如果您未使用 Accelerator 計算類別,系統只支援下列 GPU。這些 GPU 的預設資源要求與 Accelerator 運算類別相同:

  • NVIDIA A100 (40GB)
  • NVIDIA A100 (80GB)
  • NVIDIA L4
  • NVIDIA Tesla T4

資源要求下限和上限

部署設定要求的資源總數,應在 Autopilot 允許的支援上下限值範圍內。適用下列條件:

  • 暫存空間要求

    • 除非節點已附加本機 SSD,否則臨時儲存空間會使用 VM 開機磁碟。

      如果運算硬體包含本機 SSD,例如 A100 (80GB) GPU、H100 (80GB) GPU 或 Z3 系列機器,則最大要求大小等於本機 SSD 大小減去任何系統負荷。如要瞭解這項系統負荷,請參閱「本機 SSD 支援的臨時儲存空間」。

    • 在 GKE 1.29.3-gke.1038000 以上版本中,除非硬體包含本機 SSD,否則效能類別 Pod 和硬體加速器 Pod 最多支援 56 Ti 的臨時儲存空間要求。

      在所有其他 Autopilot Pod 中,無論 GKE 版本為何,Pod 中所有容器的暫時性儲存空間要求總和必須介於 10 MiB 和 10 GiB 之間,除非另有指定。

    • 如需較大的磁碟區,請使用一般暫時性磁碟區,這類磁碟區提供的功能和效能與暫時性儲存空間相同,但彈性更高,因為可搭配任何 GKE 儲存空間選項使用。舉例來說,使用 pd-balanced 的一般暫時性磁碟區大小上限為 64 TiB。

  • DaemonSet Pod 的最低資源要求如下:

    • 支援突發狀況的叢集:每個 Pod 1 mCPU、每個 Pod 2 MiB 記憶體,以及 Pod 中每個容器 10 MiB 的臨時儲存空間。
    • 不支援爆量的叢集:每個 Pod 10 mCPU、每個 Pod 10 MiB 記憶體,以及 Pod 中每個容器 10 MiB 的臨時儲存空間。

    如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

  • 如果叢集支援突發,Autopilot 就不會強制將 Pod CPU 要求量調高 0.25 個 vCPU。如果叢集不支援突發,Autopilot 會將 CPU 要求進位至最接近的 0.25 個 vCPU。如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

  • CPU 與記憶體比率必須在所選運算類別或硬體設定的允許範圍內。如果 CPU 與記憶體比例超出允許範圍,Autopilot 會自動增加較小的資源。舉例來說,如果您為在 Scale-Out 類別上執行的 Pod 要求 1 個 vCPU 和 16 GiB 的記憶體 (1:16 的比率),Autopilot 會將 CPU 要求增加至 4 個 vCPU,將比率變更為 1:4。

運算類別的最小值和最大值

下表說明 Autopilot 支援的每個運算類別,其 CPU 與記憶體比率的最小值、最大值和允許值:

運算類別 CPU/記憶體比例 (vCPU:GiB) 資源 下限 上限
一般用途 (預設) 介於 1:1 和 1:6.5 之間 CPU

值取決於叢集是否支援突發,如下所示:

  • 支援爆發的叢集:50 mCPU
  • 不支援爆量的叢集:250 mCPU

如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

30 個 vCPU
記憶體

值取決於叢集是否支援突發,如下所示:

  • 支援爆量的叢集:52 MiB
  • 不支援爆量的叢集:512 MiB

如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

110 GiB
加速器 請參閱加速器的最低和最高值
平衡 介於 1:1 和 1:8 之間 CPU 0.25 個 vCPU

222 個 vCPU

如果選取最低 CPU 平台

  • Intel 平台:126 個 vCPU
  • AMD 平台:222 個 vCPU
記憶體 0.5 GiB

851 GiB

如果選取最低 CPU 平台

  • Intel 平台:823 GiB
  • AMD 平台:851 GiB
成效 不適用 CPU 0.001 個 vCPU
  • C3 系列:174 個 vCPU
  • C3 系列機器 (具備本機 SSD):174 個 vCPU
  • C3D 機器系列:358 個 vCPU
  • C3D 系列機器 (具備本機 SSD):358 個 vCPU
  • C4D 機器系列 (1.33.0-gke.1439000 以上版本):382 個 vCPU
  • C4D 系列機器 (具備本機 SSD,1.33.1-gke.1171000 以上版本):382 個 vCPU
  • H3 機器系列:86 個 vCPU
  • C2 機器系列:58 個 vCPU
  • C2D 機器系列:110 個 vCPU
  • T2A 機器系列:46 個 vCPU
  • T2D 系列:58 個 vCPU
記憶體 1 MiB
  • C3 機器系列:1,345 GiB
  • C3 系列機型 (具備本機 SSD):670 GiB
  • C3D 機器系列:2750 GiB
  • C3D 系列機型 (含本機 SSD):1,375 GiB
  • C4D 機器系列 (1.33.0-gke.1439000 以上版本):2905 GiB
  • C4D 機器系列 (具備本機 SSD,1.33.1-gke.1171000 以上版本):2905 GiB
  • H3 機器系列:330 GiB
  • C2 機器系列:218 GiB
  • C2D 機器系列:835 GiB
  • T2A 機器系列:172 GiB
  • T2D 機器系列:218 GiB
臨時儲存空間 10 MiB

在 GKE 1.29.3-gke.1038000 以上版本中,您可以指定 56 Ti 的暫時性儲存空間要求上限。

C4D 機器系列適用於 1.33.0-gke.1439000 以上版本,並支援最多 56 Ti 的要求,可搭配或不搭配本機 SSD。

如果是 1.29.3-gke.1038000 以下版本,則適用下列限制:

  • C3 機器系列:250 GiB
  • C3 機器系列 (具備本機 SSD):10,000 GiB
  • C3D 機器系列:250 GiB
  • C3D 機器系列 (具備本機 SSD):10,000 GiB
  • H3 機器系列:250 GiB
  • C2 機器系列:250 GiB
  • C2D 機器系列:250 GiB
  • T2A 機器系列:250 GiB
  • T2D 機器系列:250 GiB
向外擴充 確切 1:4 CPU 0.25 個 vCPU
  • arm64:43 個 vCPU
  • amd64:54 個 vCPU
記憶體 1 GiB
  • arm64:172 GiB
  • amd64:216 GiB

如要瞭解如何在 Autopilot Pod 中要求運算級別,請參閱「為 Autopilot Pod 選擇運算級別」。

加速器的最低和最高金額

以下各節說明使用 GPU 和 TPU 等硬體加速器的 Pod,其 CPU 與記憶體比率的最小值、最大值和允許值。

除非另有說明,否則在 1.28.6-gke.1369000 以上版本,以及 1.29.1-gke.1575000 以上版本中,支援的暫時性儲存空間上限為 122 GiB。如果是較舊版本,支援的暫時性儲存空間上限為 10 GiB。

加速器運算類別的最小值和最大值

下表列出使用 Accelerator 運算類別的 Pod 的資源要求下限和上限。建議您使用這種方式,透過 GKE Autopilot 叢集執行加速器。在 Accelerator 運算級別中,GKE 不會強制執行 CPU 與記憶體要求比例。

加速器類型 資源 下限 上限
NVIDIA B200
nvidia-B200
CPU 沒有強制執行的最低要求
  • 8 個 GPU:224 個 vCPU
記憶體 沒有強制執行的最低要求
  • 8 個 GPU:3968 GiB
臨時儲存空間 沒有強制執行的最低要求
  • 8 個 GPU:10 TiB
NVIDIA H200 (141GB)
nvidia-h200-141gb
CPU 沒有強制執行的最低要求
  • 8 個 GPU:224 個 vCPU
記憶體 沒有強制執行的最低要求
  • 8 個 GPU:2952 GiB
臨時儲存空間 沒有強制執行的最低要求
  • 8 個 GPU:10 TiB (1.32.2-gke.1182000 以上版本)
  • 8 個 GPU:2540 GiB (1.32.2-gke.1182000 之前的版本)
NVIDIA H100 Mega (80GB)
nvidia-h100-mega-80gb
CPU
  • 8 個 GPU:0.001 個 vCPU
  • 8 個 GPU:206 個 vCPU
記憶體
  • 8 個 GPU:1 MiB
  • 8 個 GPU:1795 GiB
臨時儲存空間
  • 8 個 GPU:10 MiB
  • 8 個 GPU:5250 GiB
NVIDIA H100 (80GB)
nvidia-h100-80gb
CPU
  • 8 個 GPU:0.001 個 vCPU
  • 8 個 GPU:206 個 vCPU
記憶體
  • 8 個 GPU:1 MiB
  • 8 個 GPU:1795 GiB
臨時儲存空間
  • 8 個 GPU:10 MiB
  • 8 個 GPU:5250 GiB
NVIDIA A100 (40GB)
nvidia-tesla-a100
CPU 0.001 個 vCPU
  • 1 個 GPU:11 個 vCPU
  • 2 個 GPU:22 個 vCPU
  • 4 個 GPU:46 個 vCPU
  • 8 個 GPU:94 個 vCPU
  • 16 個 GPU:94 個 vCPU

在 A100 GPU 節點上執行的所有 DaemonSet 的 CPU 要求總和,不得超過 2 個 vCPU。

記憶體 1 MiB
  • 1 個 GPU:74 GiB
  • 2 個 GPU:148 GiB
  • 4 個 GPU:310 GiB
  • 8 個 GPU:632 GiB
  • 16 個 GPU:1264 GiB

在 A100 GPU 節點上執行的所有 DaemonSet 記憶體要求總和不得超過 14 GiB。

NVIDIA A100 (80GB)
nvidia-a100-80gb
CPU 0.001 個 vCPU
  • 1 個 GPU:11 個 vCPU
  • 2 個 GPU:22 個 vCPU
  • 4 個 GPU:46 個 vCPU
  • 8 個 GPU:94 個 vCPU

在 A100 (80 GB) GPU 節點上執行的所有 DaemonSet 的 CPU 要求總和,不得超過 2 個 vCPU。

記憶體 1 MiB
  • 1 個 GPU:148 GiB
  • 2 個 GPU:310 GiB
  • 4 個 GPU:632 GiB
  • 8 個 GPU:1264 GiB

在 A100 (80GB) GPU 節點上執行的所有 DaemonSet 記憶體要求總和不得超過 14 GiB。

臨時儲存空間 512 MiB
  • 1 個 GPU:280 GiB
  • 2 個 GPU:585 GiB
  • 4 個 GPU:1220 GiB
  • 8 個 GPU:2540 GiB
NVIDIA L4
nvidia-l4
CPU 0.001 個 vCPU
  • 1 個 GPU:31 個 vCPU
  • 2 個 GPU:23 個 vCPU
  • 4 個 GPU:47 個 vCPU
  • 8 個 GPU:95 個 vCPU

在 L4 GPU 節點上執行的所有 DaemonSet 的 CPU 要求總和不得超過 2 個 vCPU。

記憶體 1 MiB
  • 1 個 GPU:115 GiB
  • 2 個 GPU:83 GiB
  • 4 個 GPU:177 GiB
  • 8 個 GPU:363 GiB

在 L4 GPU 節點上執行的所有 DaemonSet 記憶體要求總和不得超過 14 GiB。

NVIDIA Tesla T4
nvidia-tesla-t4
CPU 0.001 個 vCPU
  • 1 個 GPU:46 個 vCPU
  • 2 個 GPU:46 個 vCPU
  • 4 個 GPU:94 個 vCPU
記憶體 1 MiB
  • 1 個 GPU:287.5 GiB
  • 2 個 GPU:287.5 GiB
  • 4 個 GPU:587.5 GiB
TPU v5e
tpu-v5-lite-podslice
CPU 0.001 個 vCPU
  • 1x1 拓撲:24 個 vCPU
  • 2x2 拓撲:112 個 vCPU
  • 2x4 拓撲 (4 個晶片的要求):112 個 vCPU
  • 2x4 拓撲 (8 個晶片的要求):224 個 vCPU
  • 4x4 拓撲:112 個 vCPU
  • 4x8 拓撲:112 個 vCPU
  • 8x8 拓撲:112 個 vCPU
  • 8x16 拓撲:112 個 vCPU
  • 16x16 拓撲:112 個 vCPU
記憶體 1 MiB
  • 1x1 拓撲:48 GiB
  • 2x2 拓撲:192 GiB
  • 2x4 拓撲 (4 晶片要求):192 GiB
  • 2x4 拓撲 (8 個晶片要求):384 GiB
  • 4x4 拓撲:192 GiB
  • 4x8 拓撲:192 GiB
  • 8x8 拓撲:192 GiB
  • 8x16 拓撲:192 GiB
  • 16x16 拓撲:192 GiB
臨時儲存空間 10 MiB 56 TiB
TPU v5p
tpu-v5p-slice
CPU 0.001 個 vCPU 280 個 vCPU
記憶體 1 MiB 448 GiB
臨時儲存空間 10 MiB 56 TiB
TPU v4
tpu-v4-podslice
CPU 0.001 個 vCPU 240 個 vCPU
記憶體 1 MiB 407 GiB
臨時儲存空間 10 MiB 56 TiB

如要瞭解如何在 Autopilot Pod 中要求 GPU,請參閱在 Autopilot 中部署 GPU 工作負載

沒有運算類別的 GPU 數量下限和上限

下表顯示未使用 Accelerator 運算類別的 Pod 的資源要求下限和上限:

GPU 類型 CPU/記憶體比例 (vCPU:GiB) 資源 下限 上限
NVIDIA A100 (40GB)
nvidia-tesla-a100
未強制執行 CPU
  • 1 個 GPU:9 個 vCPU
  • 2 個 GPU:20 個 vCPU
  • 4 個 GPU:44 個 vCPU
  • 8 個 GPU:92 個 vCPU
  • 16 個 GPU:92 個 vCPU
  • 1 個 GPU:11 個 vCPU
  • 2 個 GPU:22 個 vCPU
  • 4 個 GPU:46 個 vCPU
  • 8 個 GPU:94 個 vCPU
  • 16 個 GPU:94 個 vCPU

在 A100 GPU 節點上執行的所有 DaemonSet 的 CPU 要求總和,不得超過 2 個 vCPU。

記憶體
  • 1 個 GPU:60 GiB
  • 2 個 GPU:134 GiB
  • 4 個 GPU:296 GiB
  • 8 個 GPU:618 GiB
  • 16 個 GPU:1250 GiB
  • 1 個 GPU:74 GiB
  • 2 個 GPU:148 GiB
  • 4 個 GPU:310 GiB
  • 8 個 GPU:632 GiB
  • 16 個 GPU:1264 GiB

在 A100 GPU 節點上執行的所有 DaemonSet 記憶體要求總和不得超過 14 GiB。

NVIDIA A100 (80GB)
nvidia-a100-80gb
未強制執行 CPU
  • 1 個 GPU:9 個 vCPU
  • 2 個 GPU:20 個 vCPU
  • 4 個 GPU:44 個 vCPU
  • 8 個 GPU:92 個 vCPU
  • 1 個 GPU:11 個 vCPU
  • 2 個 GPU:22 個 vCPU
  • 4 個 GPU:46 個 vCPU
  • 8 個 GPU:94 個 vCPU

在 A100 (80 GB) GPU 節點上執行的所有 DaemonSet 的 CPU 要求總和,不得超過 2 個 vCPU。

記憶體
  • 1 個 GPU:134 GiB
  • 2 個 GPU:296 GiB
  • 4 個 GPU:618 GiB
  • 8 個 GPU:1250 GiB
  • 1 個 GPU:148 GiB
  • 2 個 GPU:310 GiB
  • 4 個 GPU:632 GiB
  • 8 個 GPU:1264 GiB

在 A100 (80GB) GPU 節點上執行的所有 DaemonSet 記憶體要求總和不得超過 14 GiB。

臨時儲存空間
  • 1 個 GPU:512 MiB
  • 2 個 GPU:512 MiB
  • 4 個 GPU:512 MiB
  • 8 個 GPU:512 MiB
  • 1 個 GPU:280 GiB
  • 2 個 GPU:585 GiB
  • 4 個 GPU:1220 GiB
  • 8 個 GPU:2540 GiB
NVIDIA L4
nvidia-l4
  • 1 個 GPU:1:3.5 到 1:4 之間
  • 2 個、4 個和 8 個 GPU:未強制執行
CPU
  • 1 個 GPU:2 個 vCPU
  • 2 個 GPU:21 個 vCPU
  • 4 個 GPU:45 個 vCPU
  • 8 個 GPU:93 個 vCPU
  • 1 個 GPU:31 個 vCPU
  • 2 個 GPU:23 個 vCPU
  • 4 個 GPU:47 個 vCPU
  • 8 個 GPU:95 個 vCPU

在 L4 GPU 節點上執行的所有 DaemonSet 的 CPU 要求總和不得超過 2 個 vCPU。

記憶體
  • 1 個 GPU:7 GiB
  • 2 個 GPU:78 GiB
  • 4 個 GPU:170 GiB
  • 8 個 GPU:355 GiB
  • 1 個 GPU:115 GiB
  • 2 個 GPU:83 GiB
  • 4 個 GPU:177 GiB
  • 8 個 GPU:363 GiB

在 L4 GPU 節點上執行的所有 DaemonSet 記憶體要求總和不得超過 14 GiB。

NVIDIA Tesla T4
nvidia-tesla-t4
介於 1:1 和 1:6.25 之間 CPU 0.5 個 vCPU
  • 1 個 GPU:46 個 vCPU
  • 2 個 GPU:46 個 vCPU
  • 4 個 GPU:94 個 vCPU
記憶體 0.5 GiB
  • 1 個 GPU:287.5 GiB
  • 2 個 GPU:287.5 GiB
  • 4 個 GPU:587.5 GiB

如要瞭解如何在 Autopilot Pod 中要求 GPU,請參閱在 Autopilot 中部署 GPU 工作負載

工作負載區隔和延長時間的資源要求

您可以使用下列方法,透過 Autopilot 操控 Kubernetes 排程和逐出行為:

如果指定的要求低於最小值,Autopilot 的行為會根據您使用的方法而有所不同,如下所示:

  • 汙點、容許度、選取器和延長時間的 Pod:Autopilot 會在排程 Pod 時修改 Pod,以增加要求。
  • Pod 反相依性:Autopilot 會拒絕 Pod 並顯示錯誤訊息。

下表說明預設要求和可指定的最低資源要求。如果設定或運算級別不在下表,Autopilot 就不會強制執行特殊最低或預設值。

運算類別 資源 預設 下限
一般用途 CPU 0.5 個 vCPU 0.5 個 vCPU
記憶體 2 GiB 0.5 GiB
平衡 CPU 2 個 vCPU 1 個 vCPU
記憶體 8 GiB 4 GiB
向外擴充 CPU 0.5 個 vCPU 0.5 個 vCPU
記憶體 2 GiB 2 GiB

Init 容器

Init 容器會依序執行,且必須在應用程式容器啟動前完成。如果您未為 Autopilot 初始化容器指定資源要求,GKE 會將 Pod 可用的總資源分配給每個初始化容器。這與 GKE Standard 不同,在 GKE Standard 中,每個 init 容器都可以使用 Pod 排定所在節點上任何未分配的資源。

與應用程式容器不同,GKE 建議您不要為 Autopilot 啟動容器指定資源要求,這樣每個容器就能取得 Pod 的所有可用資源。如果您要求的資源少於預設值,就會限制 init 容器。如果您要求的資源超出 Autopilot 預設值,Pod 的生命週期費用可能會增加。

在 Autopilot 中設定資源限制

Kubernetes 可讓您在 Pod 規格中為資源設定 requestslimits。Pod 的行為會因 limitsrequests 是否不同而異,如下表所示:

已設定值 Autopilot 行為
requests 等於 limits Pod 會使用 Guaranteed QoS 類別。
requests 已設定,limits 未設定

行為取決於叢集是否支援突發,如下所示:

  • 支援爆量的叢集:Pod 可爆量至可用爆量容量
  • 不支援突發狀況的叢集: GKE 會將 limits 設為等於 requests

如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

requests 未設定,limits 已設定 Autopilot 會將 requests 設為 limits 的值,這是 Kubernetes 的預設行為。

更新前:

resources:
  limits:
    cpu: "400m"

更新後:

resources:
  requests:
    cpu: "400m"
  limits:
    cpu: "400m"
比「limits」便宜 requests

行為取決於叢集是否支援突發,如下所示:

  • 支援爆量的叢集:Pod 最多可爆量至 limits 中指定的值。
  • 不支援突發狀況的叢集: GKE 會將 limits 設為等於 requests

如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

requests 大於 limits Autopilot 會將 requests 設為 limits 的值。

更新前:

resources:
  requests:
    cpu: "450m"
  limits:
    cpu: "400m"

更新後:

resources:
  requests:
    cpu: "400m"
  limits:
    cpu: "400m"
未設定「requests」,未設定「limits

Autopilot 會將 requests 設為運算級別或硬體設定的預設值。

limits 的行為取決於叢集是否支援爆量,如下所示:

  • 支援突發模式的叢集:Autopilot 不會設定 limits
  • 不支援突發狀況的叢集: GKE 會將 limits 設為等於 requests

如要確認叢集是否支援爆量,請參閱「GKE 中的爆量可用性」。

在大多數情況下,請為工作負載設定足夠的資源要求和同等限制。

如果工作負載暫時需要比穩定狀態更多的資源 (例如啟動期間或流量較高的期間),請將限制設得比要求高,讓 Pod 爆量。詳情請參閱「在 GKE 中設定 Pod 爆量」。

Autopilot 中的自動資源管理

如果為工作負載指定的資源要求超出允許範圍,或您未為部分容器要求資源,Autopilot 會修改工作負載設定,以符合允許的限制。Autopilot 會將預設值套用至未指定要求的容器,然後計算資源比例和資源擴充需求。

  • 缺少要求:如果您未在部分容器中要求資源,Autopilot 會套用運算類別或硬體設定的預設要求。
  • CPU 與記憶體比例:Autopilot 會調度較小的資源,使比例落在允許範圍內。
  • 暫存空間:Autopilot 會修改暫存空間要求,以符合每個容器所需的最低空間量。所有容器的儲存空間要求累計值不得超過允許的最大值。在 1.28.6-gke.1317000 之前的版本中,如果要求的值超過上限,Autopilot 會縮減要求的大小。在 1.28.6-gke.1317000 以上版本中,Autopilot 會拒絕您的工作負載。
  • 要求低於下限:如果您要求資源少於所選硬體設定允許的下限,Autopilot 會自動修改 Pod,要求至少下限資源值。

根據預設,當 Autopilot 自動將資源調升至最低或預設資源值時,GKE 會將額外容量分配給 Pod 資訊清單中的第一個容器。在 GKE 1.27.2-gke.2200 以上版本中,您可以將下列內容新增至 Pod 資訊清單的 annotations 欄位,指示 GKE 將額外資源分配給特定容器:

autopilot.gke.io/primary-container: "CONTAINER_NAME"

CONTAINER_NAME 替換為容器名稱。

資源修改範例

以下範例情境說明 Autopilot 如何修改工作負載設定,以符合執行中 Pod 和容器的需求。

單一容器,vCPU 數 < 0.05

貨櫃編號 原始要求 修改過的要求
1 CPU:30 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
CPU:50 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB

多個容器的 CPU 總數 < 0.05 個 vCPU

貨櫃編號 原始要求 修改過的要求
1 CPU:10 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
CPU:30 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
2 CPU:10 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
CPU:10 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
3 CPU:10 個 mvCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
CPU:10 mCPU
記憶體:0.5 GiB
暫時性儲存空間:10 MiB
Pod 資源總數 CPU:50 mCPU
記憶體:1.5 GiB
暫時性儲存空間:30 MiB

單一容器的記憶體過低,無法滿足要求的 CPU

在這個範例中,記憶體容量不足以支援 CPU 數量 (每個 vCPU 至少需要 1 GiB)。CPU 與記憶體的比率下限為 1:1。如果比率低於此值,系統就會增加記憶體要求。

貨櫃編號 原始要求 修改過的要求
1 CPU:4 個 vCPU
記憶體:1 GiB
暫時性儲存空間:10 MiB
CPU:4 個 vCPU
記憶體:4 GiB
暫時性儲存空間:10 MiB
Pod 資源總數 CPU:4 個 vCPU
記憶體:4 GiB
暫時性儲存空間:10 MiB

後續步驟