您可以在容器上啟用及管理圖形處理器 (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 資源時必須指定這些名稱。