您可以在容器上啟用及管理圖形處理器 (GPU) 資源。舉例來說,您可能偏好在 GPU 環境中執行人工智慧 (AI) 和機器學習 (ML) 筆記本。如要執行 GPU 容器工作負載,您必須擁有支援 GPU 裝置的 Kubernetes 叢集。如果 Kubernetes 叢集已佈建 GPU 機器,系統預設會啟用 GPU 支援。
事前準備
如要將 GPU 部署至容器,您必須具備下列條件:
具有 GPU 機器類別的 Kubernetes 叢集。如要瞭解叢集機器的設定選項,請參閱「支援的 GPU 卡」一節。
使用者叢集節點檢視者角色 (
user-cluster-node-viewer
) 可檢查 GPU,命名空間管理員角色 (namespace-admin
) 則可在專案命名空間中部署 GPU 工作負載。代管 Kubernetes 叢集的區域管理 API 伺服器 kubeconfig 路徑。登入並產生 kubeconfig 檔案 (如果沒有)。
機構基礎架構叢集的 kubeconfig 路徑,該叢集位於預計要代管 GPU 的區域。登入並產生 kubeconfig 檔案 (如果沒有)。
Kubernetes 叢集名稱。如果沒有這項資訊,請洽詢平台管理員。
Kubernetes 叢集的 kubeconfig 路徑。 登入並產生 kubeconfig 檔案 (如果沒有)。
設定容器以使用 GPU 資源
如要在容器中使用這些 GPU,請完成下列步驟:
確認 Kubernetes 叢集是否具備支援 GPU 的節點集區:
kubectl describe nodepoolclaims -n KUBERNETES_CLUSTER_NAME \ --kubeconfig ORG_INFRASTRUCTURE_CLUSTER
相關輸出內容類似於下列程式碼片段:
Spec: Machine Class Name: a2-ultragpu-1g-gdc Node Count: 2
如需支援的 GPU 機器類型和多重執行個體 GPU (MIG) 設定檔完整清單,請參閱「叢集節點機器類型」。
將
.containers.resources.requests
和.containers.resources.limits
欄位新增至容器規格。每個資源名稱會因機器類別而異。檢查 GPU 資源分配情形,找出 GPU 資源名稱。舉例來說,下列容器規格會從
a2-ultragpu-1g-gdc
節點要求三個 GPU 分區:... containers: - name: my-container image: "my-image" resources: requests: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 3 limits: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 3 ...
容器也需要額外權限才能存取 GPU。針對要求 GPU 的每個容器,請在容器規格中新增下列權限:
... securityContext: seLinuxOptions: type: unconfined_t ...
套用容器資訊清單檔案:
kubectl apply -f CONTAINER_MANIFEST_FILE \ -n NAMESPACE \ --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
檢查 GPU 資源分配
如要檢查 GPU 資源分配情形,請使用下列指令:
kubectl describe nodes NODE_NAME
將
NODE_NAME
替換為管理要檢查 GPU 的節點。相關輸出內容類似於下列程式碼片段:
Capacity: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 7 Allocatable: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 7
請記下 GPU 的資源名稱,設定容器使用 GPU 資源時必須指定這些名稱。