若要使開發人員能夠在 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 叢集
- 安裝 vSphere 適用的 Kubernetes CLI 工具。
- 使用 kubectl 適用的 vSphere 外掛程式 對 主管 進行驗證。
kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
備註: FQDN 僅當隨其啟用 主管 時才能使用 。 - 使用 kubectl,將內容切換到 vSphere 管理員為 TKGS vGPU 叢集建立的 vSphere 命名空間。
kubectl config get-contexts
kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
- 使用 vSphere 管理員建立的 vGPU 設定檔取得自訂虛擬機器類別的名稱。
kubectl get virtualmachineclass
備註: 虛擬機器類別必須繫結到目標 vSphere 命名空間。 - 取得 vSphere 管理員從內容程式庫同步並新增到 vSphere 命名空間 的 Ubuntu Tanzu Kubernetes 版本 的 TKR 名稱。
kubectl get tkr
- 編寫用於佈建啟用了 vGPU 的 TKG 叢集的 YAML。
- 確定要使用的 TKGS 叢集佈建 API:v1alpha3 API 還是 v1beta1 API:TKG 叢集佈建 API。
- 根據您選擇的 API,請參閱該 API 的 Ubuntu 範例。
備註: 您必須使用 Ubuntu 作業系統映像。不能使用 Photon OS。
- 使用從前述命令的輸出中收集的資訊自訂 TKGS 叢集規格。
- 透過執行下列 kubectl 命令來佈建叢集。
kubectl apply -f CLUSTER-NAME.yaml
例如:kubectl apply -f tkg-gpu-cluster-1.yaml
- 驗證叢集佈建。
使用 kubectl 監控叢集節點部署。
kubectl get tanzukubernetesclusters -n NAMESPACE
- 使用 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
- 驗證叢集。
使用以下命令驗證叢集:
kubectl cluster-info
kubectl get nodes
kubectl get namespaces
kubectl api-resources
操作員步驟 3:安裝 NVIDIA Network Operator
- 確認您已登入 TKGS vGPU 工作負載叢集,且已將內容設定為 TKGS vGPU 工作負載叢集命名空間。
如有必要,請參閱指示操作員步驟 2:為 NVIDIA vGPU 佈建 TKGS 叢集。
- 透過參考 Helm 說明文件安裝 Helm。
- 擷取 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
- 為組態值建立 YAML 檔案。
vi values.yaml
- 使用以下資訊填入
values.yaml
檔案。deployCR: true ofedDriver: deploy: true rdmaSharedDevicePlugin: deploy: true resources: - name: rdma_shared_device_a vendors: [15b3] devices: [ens192]
- 使用以下命令安裝 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 進行了更新。
- 確認您已登入 TKGS vGPU 工作負載叢集,且已將內容設定為 TKGS vGPU 工作負載叢集命名空間。
如有必要,請參閱指示操作員步驟 2:為 NVIDIA vGPU 佈建 TKGS 叢集。
- 如果尚未安裝,請透過參考 Helm 說明文件安裝 Helm。
- 建立
gpu-operator
Kubernetes 命名空間。kubectl create namespace gpu-operator
- 建立空白的 vGPU 授權組態檔。
sudo touch gridd.conf
- 產生並下載 NLS 用戶端授權 Token。
請參閱《NVIDIA 授權系統使用者指南》中的〈第 4.6 節:產生用戶端組態 Token〉。
- 重新命名已下載到
client_configuration_token.tok
的 NLS 用戶端授權 Token。 - 在
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
- 建立私人登錄的映像提取密碼,該私人登錄包含適用於 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
- 下載適用於 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>
- 在 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 說明文件。