本文件說明如何建立 AI 最佳化 Google Kubernetes Engine (GKE) 叢集,並使用 A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) Compute Engine 執行個體,支援 AI 和機器學習工作負載。
A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) 機器系列可讓您執行大規模 AI/機器學習叢集,並提供指定工作負載位置、進階叢集維護控制項和拓撲感知調度等功能。詳情請參閱「叢集管理總覽」。
GKE 提供單一平台介面,可依貴機構的需求執行各種工作負載。這些工作負載包括高效能分散式預先訓練、模型微調、模型推論、應用程式服務和支援服務。GKE 可減輕管理多個平台的營運負擔。
選擇如何建立 AI 最佳化 GKE 叢集
下列叢集建立選項在叢集設定和工作負載排程方面,提供不同程度的便利性和彈性:
- 使用 Cluster Toolkit 建立叢集,並採用運算、儲存和網路資源的預設設定,以及啟用 GPUDirect RDMA-over-Converged-Ethernet (RoCE)。
或者,您也可以手動建立 GKE 叢集,精確自訂或擴充現有的正式版 GKE 環境。如要手動建立 AI 最佳化 GKE 叢集,請參閱下列任一頁面:
- A4X Max:建立使用 A4X Max 的 AI 最佳化 GKE 叢集。
- A4X:建立使用 A4X 的 AI 最佳化 GKE 叢集。
- A4 或 A3 Ultra:建立使用 A4 或 A3 Ultra 的 AI 最佳化 GKE 叢集。
- A3 Mega 或 A3 High:建立使用 A3 Mega 或 A3 High 的 GKE Standard 叢集,或建立使用 A3 Mega 或 A3 High 的 GKE Autopilot 叢集。
事前準備
開始之前,請確認您已執行下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文中的指令。
- 確認您具備建立及管理 GKE 叢集和相關聯服務帳戶的必要權限:
- Kubernetes Engine 管理員 (
roles/container.admin) - Compute 管理員 (
roles/compute.admin) - 儲存空間管理員 (
roles/storage.admin) - 專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin) - 服務帳戶管理員 (
roles/iam.serviceAccountAdmin) - 服務帳戶使用者 (
roles/iam.serviceAccountUser) - 服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer) - 角色管理員 (
roles/iam.roleAdmin) - Secret Manager 密鑰版本管理員 (
roles/secretmanager.secretVersionManager) - 如要使用單一專案預留項目:專案的 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) - 如要使用共用預留項目:擁有者專案和要使用預留項目的任何用戶專案,都必須具備 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) 角色
- Kubernetes Engine 管理員 (
選擇用量方案並取得容量
如要取得容量,請完成下列步驟:
選擇計費方案:根據您取得及使用 GPU 資源的方式做出選擇。詳情請參閱「選擇使用方式」。
如果是 GKE,選擇使用選項時,請考量下列額外資訊:
- 無法使用彈性啟動佈建 A4X Max 和 A4X 運算執行個體。
- 如要進一步瞭解彈性啟動佈建模式 (預先發布版) 和 GKE,請參閱「關於彈性啟動的 GPU 取得能力」。
- 彈性啟動會盡可能使用密集配置模式。如要檢查拓撲,請參閱「查看 GKE 叢集中節點的實體拓撲」。
- 使用 Spot VM 時,只有在設定密集配置時,才能取得拓撲資訊。
- 如要進一步瞭解如何在 Cluster Toolkit 藍圖中設定這些消耗選項,請參閱「GKE 消耗選項」。
取得容量:取得容量的程序因用量選項而異。如要瞭解所選消耗選項的程序,請參閱「容量總覽」。
需求條件
AI 最佳化 GKE 叢集須符合下列規定:
如要使用 A4X Max,請務必採用下列其中一個版本:
- 如為 1.35 以上版本,請使用 GKE 1.35.0-gke.2745000 以上版本。
- 如為 1.34,請使用 GKE 1.34.3-gke.1318000 以上版本。
這些版本可確保 A4X Max 使用下列項目:
- R580.95.05:A4X Max 的最低 GPU 驅動程式版本,預設為啟用。
- Coherent Driver-based Memory Management (CDMM),預設為啟用。NVIDIA 建議 Kubernetes 叢集啟用這個模式,解決記憶體回報過高的問題。CDMM 可透過驅動程式 (而非作業系統) 管理 GPU 記憶體。這種做法可避免 OS 將 GPU 記憶體上線,並將 GPU 記憶體做為非統一記憶體存取 (NUMA) 節點,向 OS 公開。啟用 CDMM 時,不支援多實體 GPU。如要進一步瞭解 CDMM,請參閱「硬體和軟體支援」。
- GPUDirect RDMA 和 MNNVL:建議啟用,讓 A4X Max 節點集區使用 A4X Max 的網路功能。
如要使用 A4X,請務必採用下列其中一個版本:
- 如為 1.33 以上版本,請使用 GKE 1.33.4-gke.1036000 以上版本。
- 如果是 1.32,請使用 GKE 1.32.8-gke.1108000 以上版本。
這些版本可確保 A4X 使用下列項目:
- R580:A4X 的最低 GPU 驅動程式版本,預設為啟用。
- Coherent Driver-based Memory Management (CDMM),預設為啟用。NVIDIA 建議 Kubernetes 叢集啟用這個模式,解決記憶體回報過高的問題。CDMM 可透過驅動程式 (而非作業系統) 管理 GPU 記憶體。這種做法可避免 OS 將 GPU 記憶體上線,並將 GPU 記憶體做為非統一記憶體存取 (NUMA) 節點,向 OS 公開。啟用 CDMM 時,不支援多實體 GPU。如要進一步瞭解 CDMM,請參閱「硬體和軟體支援」。
- GPUDirect RDMA 和 MNNVL:建議啟用,讓 A4X 節點集區使用 A4X 的網路功能。
請務必根據機型,使用最低 GPU 驅動程式版本:
- A4X Max:A4X Max 裸機執行個體中的 GB300 GPU 至少需要 R580.95.05 GPU 驅動程式版本。請參閱前述的版本規定。
- A4X:A4X 執行個體中的 GB200 GPU 至少需要 R580 GPU 驅動程式版本。請參閱前述的版本需求。
- A4:A4 執行個體中的 B200 GPU 至少需要 R570 GPU 驅動程式版本。根據預設,GKE 會在所有 A4 節點上自動安裝這個驅動程式版本,這些節點必須執行 A4 所需的最低版本,即 1.32.1-gke.1729000 以上版本。
- A3 Ultra:A3 Ultra 執行個體中的 H200 GPU 至少需要 R550 GPU 驅動程式版本,GKE 1.31 提供
latest驅動程式版本。如果是 A3 Ultra,您必須使用 GKE 1.31 設定gpu-driver-version=latest。如果是 GKE 1.31.5-gke.1169000 以上版本,GKE 預設會自動在 A3 Ultra 節點上安裝 R550 GPU 驅動程式版本。 - A3 Mega 和 A3 High:所有支援的 GKE 版本中,預設 GPU 驅動程式版本都支援 A3 High 和 A3 Mega 執行個體中的 H100 GPU。您也可以設定
gpu-driver-version=latest,存取支援 GKE 版本中可用的新版正式版驅動程式。
如果是 A3 Ultra 節點集區,磁碟類型必須設為
hyperdisk-balanced。如要使用 GPUDirect RDMA,請根據機型使用下列最低版本:
- A4X Max:請參閱前述版本需求。
- A4X:請參閱前述版本需求。
- A4:使用 1.32.2-gke.1475000 以上版本。
- A3 Ultra:使用 1.31.4-gke.1183000 以上版本。
如要使用 GPUDirect-TCPXO (適用於 A3 Mega) 和 GPUDirect-TCPX (適用於 A3 High),請使用下列 GKE 版本:
- A3 High:使用 1.34 之前的任何可用 GKE 版本。
- A3 Mega:使用任何可用的 GKE 版本。
如要使用 GPUDirect RDMA,GKE 節點必須使用 Container-Optimized OS 節點映像檔。不支援 Ubuntu 和 Windows 節點映像檔。
您必須使用取決於預留項目的佈建模式,才能建立 A4X Max 和 A4X 叢集。不支援其他佈建模式。
使用 Cluster Toolkit 建立叢集
請按照下列操作說明,使用 Cluster Toolkit 建立叢集。本節將引導您完成叢集建立程序,確保專案遵循最佳做法,並符合 AI 最佳化 GKE 叢集的需求。本節也會說明如何使用 Terraform 佈建及管理部署作業的基礎架構。
A4X Max
- 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
建立 Cloud Storage bucket 並啟用版本管理功能,以便儲存 Terraform 部署作業的狀態:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
請替換下列變數:
BUCKET_NAME:新 Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的 Google Cloud 專案 ID。COMPUTE_REGION_TERRAFORM_STATE:要儲存 Terraform 部署作業狀態的運算區域。
在 GitHub 存放區的
examples/gke-a4x-max-bm/gke-a4x-max-bm-deployment.yaml藍圖中,填寫terraform_backend_defaults和vars區段中的下列設定,以符合部署作業的特定值:BUCKET:您在上一個步驟中建立的 Cloud Storage bucket 名稱。PROJECT_ID:您的 Google Cloud 專案 ID。DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案內重複,叢集建立作業就會失敗。預設值為gke-a4x-max-bm。REGION:叢集的運算區域。ZONE:A4X Max 機器節點集區的運算可用區。這個可用區必須與預留項目中可用的機器所在可用區相符。STATIC_NODE_COUNT:叢集節點集區中的 A4X Max 節點數量,必須為 18 個節點以下。建議您使用 18 個節點,透過 NVLink 網域在一個子區塊中取得1x72的 GPU 拓撲。AUTHORIZED_CIDR:要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。在
reservation欄位中,請根據您在佈建節點集區時,是否要指定預留項目中的特定區塊,使用下列其中一項:如要將節點集區放在預留項目中的任何位置,請提供預留項目的名稱 (
RESERVATION_NAME)。如要指定預訂中的特定區塊,請使用下列格式的預訂和區塊名稱:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME如果您不清楚預留項目有哪些可用區塊,請參閱「查看預留項目的拓撲」。
RESERVATION_PROJECT_ID:具備預留項目的 Google Cloud專案 ID。預留項目可能位於PROJECT_ID以外的專案。NUM_NODE_POOLS:要在叢集中啟用的節點集區數量。如要建立超過 18 個節點的叢集,可以指定多個節點集區。預設值為1。
如要修改進階設定,請編輯
examples/gke-a4x-max-bm/gke-a4x-max-bm.yaml藍圖檔案。產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用
gcloud auth application-default login指令:gcloud auth application-default login使用
gcluster deploy指令部署藍圖,並使用 A4X Max 機型佈建 GKE 基礎架構:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4x-max-bm/gke-a4x-max-bm-deployment.yaml \ examples/gke-a4x-max-bm/gke-a4x-max-bm.yaml出現提示時,選取「(A)pply」部署藍圖。
- 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
- 為支援藍圖中的
fio-bench-job-template工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。
A4X
- 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
建立 Cloud Storage bucket 並啟用版本管理功能,以便儲存 Terraform 部署作業的狀態:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
請替換下列變數:
BUCKET_NAME:新 Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的 Google Cloud 專案 ID。COMPUTE_REGION_TERRAFORM_STATE:要儲存 Terraform 部署作業狀態的運算區域。
在 GitHub 存放區的
examples/gke-a4x/gke-a4x-deployment.yaml藍圖中,填寫terraform_backend_defaults和vars區段中的下列設定,以符合部署作業的特定值:BUCKET:您在上一個步驟中建立的 Cloud Storage bucket 名稱。PROJECT_ID:您的 Google Cloud 專案 ID。DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案內重複,叢集建立作業就會失敗。預設值為gke-a4x。REGION:叢集的運算區域。ZONE:A4X 機器節點集區的運算可用區。這個可用區必須與預留項目中可用的機器所在可用區相符。STATIC_NODE_COUNT:叢集節點集區中的 A4X 節點數量,必須為 18 個節點以下。建議您使用 18 個節點,透過 NVLink 網域在一個子區塊中取得1x72的 GPU 拓撲。AUTHORIZED_CIDR:要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。在
reservation欄位中,請根據您在佈建節點集區時,是否要指定預留項目中的特定區塊,使用下列其中一項:如要將節點集區放在預留項目中的任何位置,請提供預留項目的名稱 (
RESERVATION_NAME)。如要指定預訂中的特定區塊,請使用下列格式的預訂和區塊名稱:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME如果您不清楚預留項目有哪些可用區塊,請參閱「查看預留項目的拓撲」。
RESERVATION_PROJECT_ID:具備預留項目的 Google Cloud專案 ID。預留項目可能位於PROJECT_ID以外的專案。NUM_NODE_POOLS:要在叢集中啟用的節點集區數量。如要建立超過 18 個節點的叢集,可以指定多個節點集區。預設值為1。
如要修改進階設定,請編輯
examples/gke-a4x/gke-a4x.yaml藍圖檔案。產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用
gcloud auth application-default login指令:gcloud auth application-default login使用
gcluster deploy指令部署藍圖,並使用 A4X 機器類型佈建 GKE 基礎架構:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4x/gke-a4x-deployment.yaml \ examples/gke-a4x/gke-a4x.yaml出現提示時,選取「(A)pply」部署藍圖。
- 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
- 為支援藍圖中的
fio-bench-job-template工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。
A4
- 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
建立 Cloud Storage bucket 並啟用版本管理功能,以便儲存 Terraform 部署作業的狀態:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
請替換下列變數:
BUCKET_NAME:新 Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的 Google Cloud 專案 ID。COMPUTE_REGION_TERRAFORM_STATE:要儲存 Terraform 部署作業狀態的運算區域。
選擇 GKE 部署作業的使用選項:
根據預設,部署檔案會設為使用特定預留項目。如要使用其他計費模式 (例如 Spot VM 或彈性啟動佈建模式),請更新 Deployment YAML 檔案。詳情請參閱「GKE 使用選項」。
在 GitHub 存放區的
examples/gke-a4/gke-a4-deployment.yaml藍圖中,填寫terraform_backend_defaults和vars區段中的下列設定,以符合部署作業的特定值:BUCKET:您在上一個步驟中建立的 Cloud Storage bucket 名稱。PROJECT_ID:您的 Google Cloud 專案 ID。DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案內重複,叢集建立作業就會失敗。預設值為gke-a4。REGION:叢集的運算區域。ZONE:A4 機器節點集區的運算可用區。這個可用區必須與預留項目中可用的機器所在可用區相符。AUTHORIZED_CIDR:要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。- 在特定預留項目部分,進行下列設定:
在
reservation_affinity區塊的specific_reservations清單中,指定預留項目name欄位:- 如要將節點集區放在預留項目中的任何位置,請提供預留項目的名稱 (
RESERVATION_NAME)。 - 如要指定預訂中的特定區塊,請使用下列格式的預訂和區塊名稱:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME如果您不清楚預留項目有哪些可用區塊,請參閱「查看預留項目的拓撲」。
- 如要將節點集區放在預留項目中的任何位置,請提供預留項目的名稱 (
STATIC_NODE_COUNT:叢集中的 A4 節點數量。
如要修改進階設定,請編輯
examples/gke-a4/gke-a4.yaml藍圖檔案。產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用
gcloud auth application-default login指令:gcloud auth application-default login使用
gcluster deploy指令部署藍圖,並使用 A4 機器類型佈建 GKE 基礎架構:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4/gke-a4-deployment.yaml \ examples/gke-a4/gke-a4.yaml出現提示時,選取「(A)pply」部署藍圖。
- 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
- 為支援藍圖中的
fio-bench-job-template工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。
A3 Ultra
- 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
建立 Cloud Storage bucket 並啟用版本管理功能,以便儲存 Terraform 部署作業的狀態:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
請替換下列變數:
BUCKET_NAME:新 Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的 Google Cloud 專案 ID。COMPUTE_REGION_TERRAFORM_STATE:要儲存 Terraform 部署作業狀態的運算區域。
選擇 GKE 部署作業的使用選項:
根據預設,部署檔案會設為使用特定預留項目。如要使用其他計費模式 (例如 Spot VM 或彈性啟動佈建模式),請更新 Deployment YAML 檔案。詳情請參閱「GKE 使用選項」。
在 GitHub 存放區的
examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml藍圖中,填寫terraform_backend_defaults和vars區段中的下列設定,以符合部署作業的特定值:BUCKET:您在上一個步驟中建立的 Cloud Storage bucket 名稱。PROJECT_ID:您的 Google Cloud 專案 ID。DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案內重複,叢集建立作業就會失敗。預設值為gke-a3-ultragpu。REGION:叢集的運算區域。ZONE:A3 Ultra 機器節點集區的運算可用區。這個可用區必須與預留項目中可用的機器所在可用區相符。AUTHORIZED_CIDR:要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。- 在特定預留項目部分,進行下列設定:
在
reservation_affinity區塊的specific_reservations清單中,指定預留項目name欄位:- 如要將節點集區放在預留項目中的任何位置,請提供預留項目的名稱 (
RESERVATION_NAME)。 - 如要指定預訂中的特定區塊,請使用下列格式的預訂和區塊名稱:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME如果您不清楚預留項目有哪些可用區塊,請參閱「查看預留項目的拓撲」。
- 如要將節點集區放在預留項目中的任何位置,請提供預留項目的名稱 (
STATIC_NODE_COUNT:叢集中的 A3 Ultra 節點數量。
如要修改進階設定,請編輯
examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml藍圖檔案。產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用
gcloud auth application-default login指令:gcloud auth application-default login使用
gcluster deploy指令部署藍圖,並使用 A3 Ultra 機型佈建 GKE 基礎架構:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml \ examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml出現提示時,選取「(A)pply」部署藍圖。
- 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
- 為支援藍圖中的
fio-bench-job-template工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。
A3 Mega
- 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照安裝依附元件的操作說明,準備其他環境。
建立 Cloud Storage bucket 並啟用版本管理功能,以便儲存 Terraform 部署作業的狀態:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
請替換下列變數:
BUCKET_NAME:新 Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的 Google Cloud 專案 ID。COMPUTE_REGION_TERRAFORM_STATE:要儲存 Terraform 部署作業狀態的運算區域。
在 GitHub 存放區的
examples/gke-a3-megagpu/gke-a3-megagpu-deployment.yaml藍圖中,替換terraform_backend_defaults和vars區段中的下列變數,以符合部署作業的特定值:BUCKET:您在上一個步驟中建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案內重複,叢集建立作業就會失敗。PROJECT_ID:您的 Google Cloud 專案 ID。REGION:叢集的運算區域。ZONE:A3 Mega 機器節點集區的運算可用區。這個可用區必須與預留項目中可用的機器所在可用區相符。AUTHORIZED_CIDR:要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。如要取得主機機器的 IP 位址,請執行curl -s https://ifconfig.me指令。
選擇 GKE 部署作業的使用選項:
根據預設,部署檔案會設為使用標準或未來預留項目。如要使用其他計費模式 (例如隨選容量、Spot VM 或彈性啟動佈建模式),請更新 Deployment YAML 檔案。詳情請參閱「GKE 使用選項」。
如要設定預留項目,請在特定預留項目區段中設定下列值:
- 在
reservation_affinity區塊的specific_reservations清單中,指定預留項目name欄位: - 如要將節點集區放在預留項目中的任何位置,請提供預留項目名稱 (
RESERVATION_NAME)。 如要指定預訂中的特定區塊,請使用下列格式的預訂和區塊名稱:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME如果您不清楚預留項目有哪些可用區塊,請參閱「查看預留項目的拓撲」。
STATIC_NODE_COUNT:叢集中的 A3 Mega 節點數量。
如要修改進階設定,請從 GitHub 存放區編輯
examples/gke-a3-megagpu/gke-a3-megagpu.yaml藍圖。- 在
產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用
gcloud auth application-default login指令:gcloud auth application-default login使用
gcluster deploy指令部署藍圖,並使用 A3 Mega 機型佈建 GKE 基礎架構:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-megagpu/gke-a3-megagpu-deployment.yaml \ examples/gke-a3-megagpu/gke-a3-megagpu.yaml出現提示時,選取「(A)pply」部署藍圖。藍圖會建立虛擬私有雲網路、服務帳戶、叢集和節點集區。
A3 High
- 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照安裝依附元件的操作說明,準備其他環境。
建立 Cloud Storage bucket 並啟用版本管理功能,以便儲存 Terraform 部署作業的狀態:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
請替換下列變數:
BUCKET_NAME:新 Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的 Google Cloud 專案 ID。COMPUTE_REGION_TERRAFORM_STATE:要儲存 Terraform 部署作業狀態的運算區域。
在 GitHub 存放區的
examples/gke-a3-highgpu/gke-a3-highgpu-deployment.yaml藍圖中,替換terraform_backend_defaults和vars區段中的下列變數,以符合部署作業的特定值:BUCKET:您在上一個步驟中建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案內重複,叢集建立作業就會失敗。PROJECT_ID:您的 Google Cloud 專案 ID。REGION:叢集的運算區域。ZONE:A3 High 機器節點集區的運算可用區。這個可用區必須與預留項目中可用的機器所在可用區相符。AUTHORIZED_CIDR:要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。如要取得主機機器的 IP 位址,請執行curl -s https://ifconfig.me指令。
選擇 GKE 部署作業的使用選項:
根據預設,部署檔案會設為使用標準或未來預留項目。如要使用其他計費模式 (例如隨選容量、Spot VM 或彈性啟動佈建模式),請更新 Deployment YAML 檔案。詳情請參閱「GKE 使用選項」。
如要設定預留項目,請在特定預留項目區段中設定下列值:
- 在
reservation_affinity區塊的specific_reservations清單中,指定預留項目name欄位: - 如要將節點集區放在預留項目中的任何位置,請提供預留項目名稱 (
RESERVATION_NAME)。 如要指定預訂中的特定區塊,請使用下列格式的預訂和區塊名稱:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME如果您不清楚預留項目有哪些可用區塊,請參閱「查看預留項目的拓撲」。
STATIC_NODE_COUNT:叢集中的 A3 High 節點數量。
如要修改進階設定,請編輯 GitHub 存放區中的
examples/gke-a3-highgpu/gke-a3-highgpu.yaml藍圖。- 在
產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用
gcloud auth application-default login指令:gcloud auth application-default login使用
gcluster deploy指令部署藍圖,並使用 A3 High 機型佈建 GKE 基礎架構:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-highgpu/gke-a3-highgpu-deployment.yaml \ examples/gke-a3-highgpu/gke-a3-highgpu.yaml出現提示時,選取「(A)pply」部署藍圖。藍圖會建立虛擬私有雲網路、服務帳戶、叢集和節點集區。
執行 Dynamic Workload Scheduler 範例工作
如果您使用 Dynamic Workload Scheduler (彈性啟動或佇列式佈建) 佈建叢集,可以提交 Kubernetes 範例工作,驗證工作負載排程。
如要進一步瞭解 Dynamic Workload Scheduler 佈建模式,請參閱「Dynamic Workload Scheduler 彈性啟動與佇列式佈建」。
提交範例工作
選取與計費方案對應的分頁標籤:
彈性啟動
這項工作為選用,僅適用於使用彈性啟動佈建叢集的情況。設為彈性啟動的工作負載,必須在 Pod 規格中加入 cloud.google.com/gke-flex-start: "true" 節點選取器。
提交範例彈性啟動工作:
kubectl apply -f examples/dws-sample-workloads/sample-job-flex.yaml監控工作和 Pod 的狀態:
kubectl get jobs kubectl describe job JOB_NAME kubectl get pods kubectl describe pod POD_NAME更改下列內容:
JOB_NAME:工作名稱。POD_NAME:Pod 名稱。
工作完成後,請刪除工作資源:
kubectl delete -f examples/dws-sample-workloads/sample-job-flex.yaml
佇列式佈建
這項工作為選用,只有在您使用佇列式佈建功能佈建叢集時才適用。如要將工作負載設為佇列式佈建,Pod 規格必須包含下列標籤和註解:
- 標籤:
kueue.x-k8s.io/queue-name: dws-local-queue - 註解:
provreq.kueue.x-k8s.io/maxRunDurationSeconds: "MAX_RUN_DURATION"
詳情請參閱「佇列式佈建的工作負載資訊清單需求」。
提交範例佇列式佈建工作:
kubectl apply -f examples/dws-sample-workloads/sample-job-flex-queue.yaml監控工作和 Pod 的狀態:
kubectl get jobs kubectl describe job JOB_NAME kubectl get pods kubectl describe pod POD_NAME更改下列內容:
JOB_NAME:工作名稱。POD_NAME:Pod 名稱。
工作完成後,請刪除工作資源:
kubectl delete -f examples/dws-sample-workloads/sample-job-flex-queue.yaml
測試網路效能
建議您驗證已佈建叢集的功能。請使用 NCCL 測試,也就是專為 Google 環境最佳化的 NVIDIA Collective Communications Library (NCCL) 測試。
執行可重現的基準測試
使用 Cluster Toolkit 建立叢集後,您可以按照 GitHub 提供的方案,在所選機器系列上重現大型機器學習開放模型的預先訓練基準。
每份食譜都會提供操作說明,協助您完成下列工作:
- 準備環境。
- 執行基準測試。
- 分析基準測試結果。這項審查包含基準測試結果和詳細記錄,可供進一步分析。
如要查看所有可用於訓練和其他工作負載類型的方案,請前往 GPU 方案 GitHub 存放區。
清除 Cluster Toolkit 建立的資源
為避免系統針對本頁面使用的資源重複收費,請使用 gcluster destroy 指令,清除 Cluster Toolkit 佈建的資源,包括虛擬私有雲網路和 GKE 叢集:
cd ~/cluster-toolkit
./gcluster destroy CLUSTER_NAME/
將 CLUSTER_NAME 替換為叢集名稱。如果是使用 Cluster Toolkit 建立的叢集,叢集名稱會依據 DEPLOYMENT_NAME 名稱而定。
後續步驟
- 如要瞭解如何使用拓撲感知調度 (TAS) 和 Kueue,在 GKE 叢集上調度工作負載,請參閱「使用拓撲感知調度功能調度 GKE 工作負載」。
- 如要瞭解如何管理與 GKE 叢集和 AI 工作負載相關的常見事件,請參閱「管理 AI 最佳化 GKE 叢集」。
- 如要瞭解如何測試環境是否正確設定及最佳化,請參閱「叢集網路最佳化總覽」。
- 如要瞭解 GKE 叢集支援的所有計費模式,請參閱「GKE 計費選項」。