若要使開發人員能夠在 TKG 服務叢集上部署 AI/ML 工作負載,作為叢集操作員,您可以建立一個或多個 Kubernetes 叢集,並在每個叢集上安裝 NVIDIA Network Operator 和 GPU Operator。

操作員步驟 1:驗證必要條件

這些指示假定 vSphere 管理員已為 NVIDIA GPU 設定環境。請參閱在 TKGS 叢集上部署 AI/ML 工作負載的 vSphere 管理員工作流程

這些指示假定您要安裝 GPU Operator 的 NVIDIA AI Enterprise (NVAIE) 版本,該版本已經過預先設定和最佳化,可與 vSphere IaaS control plane 搭配使用。NVAIE GPU Operator 與公開 NGC 目錄中提供的 GPU Operator 不同。如需詳細資訊,請參閱 NVIDIA AI Enterprise

這些指示假定您使用的 NVAIE GPU Operator 和 vGPU 驅動程式版本具有與 ESXi 相符的 VIB。如需詳細資訊,請參閱〈NVIDIA GPU Operator 版本設定〉

佈建 TKG 叢集時,必須使用 Ubuntu 版本的 TKR。透過 vSphere 8 主管 上的 TKG,系統會在叢集 YAML 中使用註解指定 Ubuntu 版本。

操作員步驟 2:為 NVIDIA vGPU 佈建 TKGS 叢集

VMware 在具有 NVIDIA GPU OperatorNVIDIA Network Operator 的 NVIDIA GPU 認證伺服器上為 NVIDIA 虛擬 GPU 提供原生 TKGS 支援。您可在 TKGS 工作負載叢集中安裝這些 Operator若要佈建用於主控 vGPU 工作負載的 TKGS 叢集,請完成以下步驟。
  1. 安裝 vSphere 適用的 Kubernetes CLI 工具

    請參閱安裝 vSphere 適用的 Kubernetes CLI 工具

  2. 使用 kubectl 適用的 vSphere 外掛程式主管 進行驗證。
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
    備註: FQDN 僅當隨其啟用 主管 時才能使用 。
  3. 使用 kubectl,將內容切換到 vSphere 管理員為 TKGS vGPU 叢集建立的 vSphere 命名空間
    kubectl config get-contexts
    kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
  4. 使用 vSphere 管理員建立的 vGPU 設定檔取得自訂虛擬機器類別的名稱。
    kubectl get virtualmachineclass
    備註: 虛擬機器類別必須繫結到目標 vSphere 命名空間
  5. 取得 vSphere 管理員從內容程式庫同步並新增到 vSphere 命名空間 的 Ubuntu Tanzu Kubernetes 版本 的 TKR 名稱。
    kubectl get tkr
  6. 編寫用於佈建啟用了 vGPU 的 TKG 叢集的 YAML。
    1. 確定要使用的 TKGS 叢集佈建 API:v1alpha3 API 還是 v1beta1 API:TKG 叢集佈建 API
    2. 根據您選擇的 API,請參閱該 API 的 Ubuntu 範例。
      備註: 您必須使用 Ubuntu 作業系統映像。不能使用 Photon OS。
    3. 使用從前述命令的輸出中收集的資訊自訂 TKGS 叢集規格。
  7. 透過執行下列 kubectl 命令來佈建叢集。
    kubectl apply -f CLUSTER-NAME.yaml
    例如:
    kubectl apply -f tkg-gpu-cluster-1.yaml
  8. 驗證叢集佈建。
    使用 kubectl 監控叢集節點部署。
    kubectl get tanzukubernetesclusters -n NAMESPACE
  9. 使用 kubectl 適用的 vSphere 外掛程式 登入 TKGS vGPU 叢集。
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  10. 驗證叢集。
    使用以下命令驗證叢集:
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources

操作員步驟 3:安裝 NVIDIA Network Operator

NVIDIA Network Operator 利用 Kubernetes 自訂資源和 Operator 框架來最佳化 vGPU 的網路。如需詳細資訊,請參閱 NVIDIA Network Operator
  1. 確認您已登入 TKGS vGPU 工作負載叢集,且已將內容設定為 TKGS vGPU 工作負載叢集命名空間。

    如有必要,請參閱指示操作員步驟 2:為 NVIDIA vGPU 佈建 TKGS 叢集

  2. 透過參考 Helm 說明文件安裝 Helm。
  3. 擷取 NVIDIA Network Operator Helm 圖。
    helm fetch https://helm.ngc.nvidia.com/nvaie/charts/network-operator-v1.1.0.tgz --username='$oauthtoken' --password=<YOUR API KEY> --untar
  4. 為組態值建立 YAML 檔案。
    vi values.yaml
  5. 使用以下資訊填入 values.yaml 檔案。
    deployCR: true
     ofedDriver:
      deploy: true
     rdmaSharedDevicePlugin:
      deploy: true
      resources:
       - name: rdma_shared_device_a
       vendors: [15b3]
       devices: [ens192]
  6. 使用以下命令安裝 NVIDIA Network Operator。
    helm install network-operator -f ./values.yaml -n network-operator --create-namespace --wait network-operator/

操作員步驟 4:安裝 NVIDIA GPU Operator

NVIDIA 為客戶提供了預先設定的 GPU Operator for NVIDIA AI Enterprise。這些指示假定您要使用此預先設定的 GPU Operator 版本。這些指示以由 NVIDIA 提供的安裝 GPU Operator 相關說明為基礎,但已針對 vSphere 8 上的 TKG 進行了更新。

請完成以下步驟,以在已佈建的 TKG 叢集上安裝 GPU Operator NVIDIA AI Enterprise。
  1. 確認您已登入 TKGS vGPU 工作負載叢集,且已將內容設定為 TKGS vGPU 工作負載叢集命名空間。

    如有必要,請參閱指示操作員步驟 2:為 NVIDIA vGPU 佈建 TKGS 叢集

  2. 如果尚未安裝,請透過參考 Helm 說明文件安裝 Helm。
  3. 建立 gpu-operator Kubernetes 命名空間。
    kubectl create namespace gpu-operator
  4. 建立空白的 vGPU 授權組態檔。
    sudo touch gridd.conf
  5. 產生並下載 NLS 用戶端授權 Token。

    請參閱《NVIDIA 授權系統使用者指南》中的〈第 4.6 節:產生用戶端組態 Token〉

  6. 重新命名已下載到 client_configuration_token.tok 的 NLS 用戶端授權 Token。
  7. gpu-operator 命名空間中建立 licensing-config ConfigMap 物件。
    在此 ConfigMap 中加入 vGPU 授權組態檔 ( gridd.conf) 和 NLS 用戶端授權 Token ( *.tok)。
    kubectl create configmap licensing-config \
        -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
  8. 建立私人登錄的映像提取密碼,該私人登錄包含適用於 Linux 的容器化 NVIDIA vGPU 軟體圖形驅動程式,以便於與 NVIDIA GPU Operator 搭配使用。
    gpu-operator 命名空間中建立包含登錄密碼名稱 ngc-secret 和私人登錄名稱 nvcr.io/nvaie 的映像提取密碼。在指示的欄位中加入 NGC API 金鑰和電子郵件地址。
    kubectl create secret docker-registry ngc-secret \
    --docker-server=‘nvcr.io/nvaie’ \
    --docker-username=‘$oauthtoken’ \
    --docker-password=<YOUR_NGC_API_KEY> \
    --docker-email=<YOUR_EMAIL_ADDRESS> \
    -n gpu-operator
  9. 下載適用於 NVAIE GPU Operator 2.2 版 的 Helm 圖。
    取代 API 金鑰。
    helm fetchhttps://helm.ngc.nvidia.com/nvaie/charts/gpu-operator-2-2-v1.11.1.tgz--username=‘$oauthtoken’ \
    --password=<YOUR API KEY>
  10. 在 TKG 叢集中安裝 NVAIE GPU Operator 2.2 版。
    helm install gpu-operator ./gpu-operator-2-2-v1.11.1.tgz -n gpu-operator

操作員步驟 5:部署 AI/ML 工作負載

NVIDIA GPU Cloud 目錄提供了幾個現成的容器映像,可用於在啟用了 vGPU 的 Tanzu Kubernetes 叢集上執行 AI/ML 工作負載。如需可用映像的詳細資訊,請參閱 NGC 說明文件