使用 Cluster Toolkit 建立 AI 適用的 GKE 叢集

本文件說明如何建立 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 叢集

下列叢集建立選項在叢集設定和工作負載排程方面,提供不同程度的簡易性和彈性:

事前準備

開始之前,請確認您已執行下列工作:

  • 啟用 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) 角色

選擇用量方案並取得容量

如要取得容量,請完成下列步驟:

  1. 選擇使用模式:根據您取得及使用 GPU 資源的方式做出選擇。詳情請參閱「選擇使用方式」。

    如果是 GKE,選擇使用選項時,請考量下列額外資訊:

  2. 取得容量:取得容量的程序因用量選項而異。如要瞭解所選用量選項的程序,請參閱「容量總覽」。

需求條件

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 驅動程式版本,預設為啟用。
    • 一致性驅動程式記憶體管理 (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 驅動程式版本,預設為啟用。
    • 一致性驅動程式記憶體管理 (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

  1. 啟動 Cloud Shell。您可以使用其他環境,但建議使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
  2. 安裝 Cluster Toolkit。

  3. 建立已啟用版本管理功能的 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 部署作業狀態的運算區域。
  4. 在 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 檔案。

  5. 選用:設定 Google Cloud Managed Lustre,做為高效能共用儲存空間。A4X Max GKE 藍圖預設會啟用 Managed Lustre CSI 驅動程式。如要為叢集佈建 Managed Lustre 執行個體和永久磁碟區,請按照下列步驟操作:

    1. 開啟 examples/gke-a4x-max-bm/gke-a4x-max-bm.yaml 檔案。
    2. 在 vars 區段中,取消註解 lustre_instance_id、lustre_size_gib 和 per_unit_storage_throughput 變數。
    3. 在 # --- MANAGED LUSTRE ADDITIONS --- 區段中,取消註解 private_service_access、lustre_firewall_rule、managed-lustre 和 lustre-pv 模組。
  6. 產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用 gcloud auth application-default login 指令:

    gcloud auth application-default login
    
  7. 使用 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
    
  8. 出現提示時,選取「(A)pply」來部署藍圖。

    • 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
    • 為支援藍圖中的 fio-bench-job-template 工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。

A4X

  1. 啟動 Cloud Shell。您可以使用其他環境,但建議使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
  2. 安裝 Cluster Toolkit。

  3. 建立已啟用版本管理功能的 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 部署作業狀態的運算區域。
  4. 在 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 檔案。

  5. 選用:設定 Managed Lustre,取得高效能共用儲存空間。A4X GKE 藍圖預設會啟用 Managed Lustre CSI 驅動程式。如要為叢集佈建 Managed Lustre 執行個體和永久磁碟區,請按照下列步驟操作:

    1. 開啟 examples/gke-a4x/gke-a4x.yaml 檔案。
    2. 在 vars 區段中,取消註解 lustre_instance_id、lustre_size_gib 和 per_unit_storage_throughput 變數。
    3. 在 # --- MANAGED LUSTRE ADDITIONS --- 區段中,取消註解 private_service_access、lustre_firewall_rule、managed-lustre 和 lustre-pv 模組。
  6. 產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用 gcloud auth application-default login 指令:

    gcloud auth application-default login
    
  7. 使用 gcluster deploy 指令部署藍圖,並使用 A4X 機器類型佈建 GKE 基礎架構:

    cd ~/cluster-toolkit
    ./gcluster deploy -d \
        examples/gke-a4x/gke-a4x-deployment.yaml \
        examples/gke-a4x/gke-a4x.yaml
    
  8. 出現提示時,選取「(A)pply」來部署藍圖。

    • 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
    • 為支援藍圖中的 fio-bench-job-template 工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。

A4

  1. 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
  2. 安裝 Cluster Toolkit。

  3. 建立已啟用版本管理功能的 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 部署作業狀態的運算區域。
  4. 選擇 GKE 部署作業的使用選項:

    根據預設,部署檔案會設為使用特定預留項目。如要使用其他計費模式 (例如 Spot VM 或彈性啟動佈建模式),請更新 Deployment YAML 檔案。詳情請參閱「GKE 使用選項」。

  5. 在 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
      

      如果您不確定預留項目中有哪些可用區塊,請參閱「查看預留項目拓撲」。

      如要修改進階設定,請編輯 examples/gke-a4/gke-a4.yaml。

    彈性啟動

    1. 在 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 欄位,並將該欄位替換為 enable_flex_start: true。如要使用佇列式佈建,請在下一行新增 enable_queued_provisioning: true。詳情請參閱「搭配使用彈性啟動節點集區和佇列式佈建」。
      • 移除 static_node_count。
    2. 在 GitHub 存放區的 examples/gke-a4/gke-a4.yaml 藍圖中,進行下列變更:

      • 在 vars 區塊中,移除 static_node_count。
      • 在 vars 區塊中,確認 version_prefix 號碼為 "1.32." 以上。如要在 GKE 中使用彈性啟動,叢集必須採用 1.32.2-gke.1652000 以上版本。
      • 在 vars 區塊中,將整個 reservation 區塊 (包括 reservation 行本身) 替換為 enable_flex_start: true,以及選用的 enable_queued_provisioning: true。
      • 在 vars 區塊中,如果不需要佇列式佈建,請移除下列程式碼:kueue_configuration_path: $(ghpc_stage("./kueue-configuration.yaml.tftpl"))。
      • 在 id: a4-pool 下方,移除下列程式碼行:static_node_count: $(vars.static_node_count)。
      • 在 id: a4-pool 下方,移除 reservation_affinity 區塊。將這個區塊替換為下列程式碼:

        • enable_flex_start: $(vars.enable_flex_start)
        • auto_repair: false
        • 如要啟用佇列式佈建,請新增下列額外行:
          • enable_queued_provisioning: $(vars.enable_queued_provisioning)
          • autoscaling_total_min_nodes: 0
      • 在 id: workload-manager-install 下方,移除下列區塊:

         kueue:
            install: true
            config_path: $(vars.kueue_configuration_path)
            config_template_vars:
               num_gpus: $(a3-ultragpu-pool.static_gpu_count)
               accelerator_type: $(vars.accelerator_type)
        
        • 如要使用彈性啟動搭配佇列式佈建,請按照下列步驟操作:

          1. 將 gpu_nominal_quota: NOMINAL_QUOTA 新增至 vars 區塊。gpu_nominal_quota 值用於設定 ClusterQueue 規格中 GPU 的 nominalQuota (請參閱下方設定 ClusterQueue 的步驟)。在本範例中,只有在 GPU 要求總和小於或等於 NOMINAL_QUOTA 值時,ClusterQueue 才會允許工作負載。如要進一步瞭解 ClusterQueue,請參閱叢集佇列的 Kueue 文件。

          2. 將 kueue 區塊更新為以下內容:

            kueue:
               install: true
               config_path: $(vars.kueue_configuration_path)
               config_template_vars:
                  num_gpus: $(vars.gpu_nominal_quota)
            
          3. 將 kueue-configuration.yaml.tftpl 檔案的內容替換為以下內容:

            apiVersion: kueue.x-k8s.io/v1beta1
            kind: ResourceFlavor
            metadata:
               name: "default-flavor"
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: AdmissionCheck
            metadata:
               name: dws-prov
            spec:
               controllerName: kueue.x-k8s.io/provisioning-request
               parameters:
                  apiGroup: kueue.x-k8s.io
                  kind: ProvisioningRequestConfig
                  name: dws-config
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: ProvisioningRequestConfig
            metadata:
               name: dws-config
            spec:
               provisioningClassName: queued-provisioning.gke.io
               managedResources:
               - nvidia.com/gpu
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: ClusterQueue
            metadata:
               name: "dws-cluster-queue"
            spec:
               namespaceSelector: {}
               resourceGroups:
               - coveredResources: ["nvidia.com/gpu"]
                  flavors:
                  - name: "default-flavor"
                  resources:
                  - name: "nvidia.com/gpu"
                     nominalQuota: ${num_gpus}
               admissionChecks:
               - dws-prov
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: LocalQueue
            metadata:
               namespace: "default"
               name: "dws-local-queue"
            spec:
               clusterQueue: "dws-cluster-queue"
            ---
            
      • 在 id: job-template 下方,將 node_count 變數替換為 2。

    Spot

    1. 在 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 機器節點集區的運算可用區。
      • STATIC_NODE_COUNT:叢集中的 A4 節點數量。
      • AUTHORIZED_CIDR:您要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含您要用來呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。
      • 將整個 reservation 區塊 (包括 reservation 行本身) 替換為 spot: true。
    2. 在 GitHub 存放區的 examples/gke-a4/gke-a4.yaml 藍圖中,進行下列變更:

      • 在 vars 區塊中,將整個 reservation 區塊 (包括 reservation 行本身) 替換為 spot: true。
      • 在 id: a4-pool 下方,移除 reservation_affinity 區塊。將這個區塊替換為以下程式碼:

        • spot: $(vars.spot)
  6. 選用:設定 Managed Lustre,取得高效能共用儲存空間。A4 GKE 藍圖預設會啟用 Managed Lustre CSI 驅動程式。如要為叢集佈建 Managed Lustre 執行個體和永久磁碟區,請按照下列步驟操作:

    1. 開啟 examples/gke-a4/gke-a4.yaml 檔案。
    2. 在 vars 區段中,取消註解 lustre_instance_id、lustre_size_gib 和 per_unit_storage_throughput 變數。
    3. 在 # --- MANAGED LUSTRE ADDITIONS --- 區段中,取消註解 private_service_access、lustre_firewall_rule、managed-lustre 和 lustre-pv 模組。
  7. 產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用 gcloud auth application-default login 指令:

    gcloud auth application-default login
    
  8. 使用 gcluster deploy 指令部署藍圖,並透過 A4 機型佈建 GKE 基礎架構:

    cd ~/cluster-toolkit
    ./gcluster deploy -d \
        examples/gke-a4/gke-a4-deployment.yaml \
        examples/gke-a4/gke-a4.yaml
    
  9. 出現提示時,選取「(A)pply」來部署藍圖。

    • 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
    • 為支援藍圖中的 fio-bench-job-template 工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。

A3 Ultra

  1. 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照操作說明安裝依附元件,準備其他環境。
  2. 安裝 Cluster Toolkit。

  3. 建立已啟用版本管理功能的 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 部署作業狀態的運算區域。
  4. 選擇 GKE 部署作業的使用選項:

    根據預設,部署檔案會設為使用特定預留項目。如要使用其他計費模式 (例如 Spot VM 或彈性啟動佈建模式),請更新 Deployment YAML 檔案。詳情請參閱「GKE 使用選項」。

  5. 在 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。

    彈性啟動

    1. 在 GitHub 存放區的 examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml 藍圖中,替換 terraform_backend_defaults 和 vars 區段中的下列變數,以符合部署作業的特定值:

      • BUCKET_NAME:您在上一個步驟中建立的 Cloud Storage bucket 名稱。
      • DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案中重複,叢集建立作業就會失敗。
      • PROJECT_ID:您的 Google Cloud 專案 ID。
      • COMPUTE_REGION:叢集的運算區域。
      • COMPUTE_ZONE:A3 Ultra 機器節點集區的運算可用區。
      • IP_ADDRESS/SUFFIX:您要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含您要用來呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。
      • 移除 reservation 欄位,並將該欄位替換為 enable_flex_start: true。如要使用佇列式佈建,請在下一行新增 enable_queued_provisioning: true。詳情請參閱「搭配使用彈性啟動節點集區和佇列式佈建」。
      • 移除 static_node_count。
    2. 在 GitHub 存放區的 examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml 藍圖中,進行下列變更:

      • 在 vars 區塊中,移除 static_node_count。
      • 在 vars 區塊中,將 version_prefix 編號更新為 "1.32." 以上。如要在 GKE 中使用彈性啟動,叢集必須採用 1.32.2-gke.1652000 以上版本。
      • 在 vars 區塊中,將整個 reservation 區塊 (包括 reservation 行本身) 替換為 enable_flex_start: true,以及選用的 enable_queued_provisioning: true。
      • 在 vars 區塊中,移除以下這行程式碼: kueue_configuration_path: $(ghpc_stage("./kueue-configuration.yaml.tftpl"))。
      • 在 id: a3-ultragpu-pool 下方,移除下列程式碼行:static_node_count: $(vars.static_node_count)。
      • 在 id: a3-ultragpu-pool 下方,移除 reservation_affinity 區塊。將這個區塊替換為下列程式碼:

        • enable_flex_start: $(vars.enable_flex_start)
        • auto_repair: false
        • 如要啟用佇列式佈建,請新增下列額外行:
          • enable_queued_provisioning: $(vars.enable_queued_provisioning)
          • autoscaling_total_min_nodes: 0
      • 在 id: workload-manager-install 下方,移除下列區塊:

        config_path: $(vars.kueue_configuration_path)
        config_template_vars:
          num_gpus: $(a4-pool.static_gpu_count)
          accelerator_type: $(vars.accelerator_type)
        
        • 如要使用佇列式佈建功能進行彈性啟動,請按照下列三個步驟操作:

          1. 將 gpu_nominal_quota: NOMINAL_QUOTA 新增至 vars 區塊。gpu_nominal_quota 值用於設定 ClusterQueue 規格中的 GPU nominalQuota。在這個範例中,只有在 GPU 要求總和小於或等於 NOMINAL_QUOTA 值時,ClusterQueue 才會允許工作負載。如要進一步瞭解 ClusterQueue,請參閱叢集佇列的 Kueue 文件。

          2. 將 kueue 區塊更新為以下內容:

            kueue:
               install: true
               config_path: $(vars.kueue_configuration_path)
               config_template_vars:
                  num_gpus: $(vars.gpu_nominal_quota)
            
          3. 將 kueue-configuration.yaml.tftpl 檔案的內容替換為以下內容:

            apiVersion: kueue.x-k8s.io/v1beta1
            kind: ResourceFlavor
            metadata:
               name: "default-flavor"
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: AdmissionCheck
            metadata:
               name: dws-prov
            spec:
               controllerName: kueue.x-k8s.io/provisioning-request
               parameters:
                  apiGroup: kueue.x-k8s.io
                  kind: ProvisioningRequestConfig
                  name: dws-config
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: ProvisioningRequestConfig
            metadata:
               name: dws-config
            spec:
               provisioningClassName: queued-provisioning.gke.io
               managedResources:
               - nvidia.com/gpu
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: ClusterQueue
            metadata:
               name: "dws-cluster-queue"
            spec:
               namespaceSelector: {}
               resourceGroups:
               - coveredResources: ["nvidia.com/gpu"]
                  flavors:
                  - name: "default-flavor"
                  resources:
                  - name: "nvidia.com/gpu"
                     nominalQuota: ${num_gpus}
               admissionChecks:
               - dws-prov
            ---
            apiVersion: kueue.x-k8s.io/v1beta1
            kind: LocalQueue
            metadata:
               namespace: "default"
               name: "dws-local-queue"
            spec:
               clusterQueue: "dws-cluster-queue"
            ---
            
        • 在 id: job-template 欄位中,將 node_count 變數替換為 2。

    Spot

    1. 在 GitHub 存放區的 examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml 藍圖中,填寫 terraform_backend_defaults 和 vars 區段中的下列設定,以符合部署作業的特定值:

      • BUCKET_NAME:您在上一個步驟中建立的 Cloud Storage bucket 名稱。
      • DEPLOYMENT_NAME:部署作業的專屬名稱,長度必須介於 6 到 30 個字元之間。如果部署作業名稱在專案中重複,叢集建立作業就會失敗。
      • PROJECT_ID:您的 Google Cloud 專案 ID。
      • COMPUTE_REGION:叢集的運算區域。
      • COMPUTE_ZONE:A3 Ultra 機器節點集區的運算可用區。
      • IP_ADDRESS/SUFFIX:您要允許連線至叢集的 IP 位址範圍。這個 CIDR 區塊必須包含您要用來呼叫 Terraform 的機器 IP 位址。詳情請參閱「授權網路的運作方式」。
      • 將整個 reservation 區塊 (包括 reservation 行本身) 替換為 spot: true。
      • NODE_COUNT:叢集中的 A3 Ultra 節點數量。
    2. 在 GitHub 存放區的 examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml 藍圖中,進行下列變更:

      • 在 vars 區塊中,將整個 reservation 變數替換為 spot: true。
      • 在 id: a3-ultragpu-pool 區段中,移除 reservation_affinity 區塊。將這個區塊替換為以下程式碼:

        • spot: $(vars.spot)
  6. 選用:設定 Managed Lustre,取得高效能共用儲存空間。A3 Ultra GKE 藍圖預設會啟用 Managed Lustre CSI 驅動程式。如要為叢集佈建 Managed Lustre 執行個體和永久磁碟區,請按照下列步驟操作:

    1. 開啟 examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml 檔案。
    2. 在 vars 區段中,取消註解 lustre_instance_id、lustre_size_gib 和 per_unit_storage_throughput 變數。
    3. 在 # --- MANAGED LUSTRE ADDITIONS --- 區段中,取消註解 private_service_access、lustre_firewall_rule、managed-lustre 和 lustre-pv 模組。
  7. 產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用 gcloud auth application-default login 指令:

    gcloud auth application-default login
    
  8. 使用 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
    
  9. 出現提示時,選取「(A)pply」來部署藍圖。

    • 藍圖會建立虛擬私有雲網路、GPU RDMA 虛擬私有雲網路、服務帳戶、叢集和節點集區。
    • 為支援藍圖中的 fio-bench-job-template 工作範本,系統會建立Google Cloud bucket、網路儲存空間和永久磁碟區資源。

A3 Mega

  1. 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照安裝依附元件的操作說明,準備其他環境。
  2. 安裝 Cluster Toolkit。

  3. 建立已啟用版本管理功能的 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 部署作業狀態的運算區域。
  4. 在 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 指令。
  5. 選擇 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 藍圖。

  6. 產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用 gcloud auth application-default login 指令:

    gcloud auth application-default login
    
  7. 使用 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
    
  8. 出現提示時,選取「(A)pply」部署藍圖。藍圖會建立虛擬私有雲網路、服務帳戶、叢集和節點集區。

A3 High

  1. 啟動 Cloud Shell。雖然可以使用其他環境,但建議您使用 Cloud Shell,因為 Cluster Toolkit 的依附元件已預先安裝。如果不想使用 Cloud Shell,請按照安裝依附元件的操作說明,準備其他環境。
  2. 安裝 Cluster Toolkit。

  3. 建立已啟用版本管理功能的 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 部署作業狀態的運算區域。
  4. 在 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 指令。
  5. 選擇 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 藍圖。

  6. 產生應用程式預設憑證 (ADC),提供 Terraform 存取權。如果您使用的是 Cloud Shell,請使用 gcloud auth application-default login 指令:

    gcloud auth application-default login
    
  7. 使用 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
    
  8. 出現提示時,選取「(A)pply」部署藍圖。藍圖會建立虛擬私有雲網路、服務帳戶、叢集和節點集區。

執行 Dynamic Workload Scheduler 範例工作

如果您使用 Dynamic Workload Scheduler (彈性啟動或佇列式佈建) 佈建叢集,可以提交 Kubernetes 範例工作,驗證工作負載排程。

如要進一步瞭解 Dynamic Workload Scheduler 佈建模式,請參閱「Dynamic Workload Scheduler 彈性啟動與佇列式佈建」。

提交範例工作

選取計費模式對應的分頁標籤:

彈性啟動

這項工作為選用,僅適用於使用彈性啟動佈建叢集的情況。設定為彈性啟動的工作負載,必須在 Pod 規格中加入 cloud.google.com/gke-flex-start: "true" 節點選取器。

  1. 提交範例彈性啟動工作:

    kubectl apply -f examples/dws-sample-workloads/sample-job-flex.yaml
    
  2. 監控工作和 Pod 的狀態:

    kubectl get jobs
    kubectl describe job JOB_NAME
    kubectl get pods
    kubectl describe pod POD_NAME
    

    更改下列內容:

    • JOB_NAME:工作名稱。
    • POD_NAME:Pod 名稱。
  3. 工作完成後,請刪除工作資源:

    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"

詳情請參閱「佇列式佈建的工作負載資訊清單規定」。

  1. 提交範例佇列式佈建工作:

    kubectl apply -f examples/dws-sample-workloads/sample-job-flex-queue.yaml
    
  2. 監控工作和 Pod 的狀態:

    kubectl get jobs
    kubectl describe job JOB_NAME
    kubectl get pods
    kubectl describe pod POD_NAME
    

    更改下列內容:

    • JOB_NAME:工作名稱。
    • POD_NAME:Pod 名稱。
  3. 工作完成後,請刪除工作資源:

    kubectl delete -f examples/dws-sample-workloads/sample-job-flex-queue.yaml
    

測試網路效能

建議您驗證已佈建叢集的功能。請使用 NCCL 測試,也就是專為 Google 環境最佳化的 NVIDIA Collective Communications Library (NCCL) 測試。

執行可重現的基準測試

使用 Cluster Toolkit 建立叢集後,您可以按照 GitHub 提供的方案,在所選機器系列上重現大型機器學習開放模型的預先訓練基準。

每份食譜都會提供操作說明,協助您完成下列工作:

  • 準備環境。
  • 執行基準測試。
  • 分析基準測試結果。這項審查包含基準測試結果和詳細記錄,可供進一步分析。

如要查看所有可用於訓練和其他工作負載類型的 recipe,請前往 GPU recipe GitHub 存放區。

清除 Cluster Toolkit 建立的資源

為避免系統針對本頁面使用的資源持續收費,請使用 gcluster destroy 指令,清除 Cluster Toolkit 佈建的資源,包括虛擬私有雲網路和 GKE 叢集:

   cd ~/cluster-toolkit
   ./gcluster destroy CLUSTER_NAME/

將 CLUSTER_NAME 替換為叢集名稱。如果是使用 Cluster Toolkit 建立的叢集,叢集名稱會依據 DEPLOYMENT_NAME 名稱而定。

後續步驟