您可以在容器上啟用及管理圖形處理器 (GPU) 資源。舉例來說,您可能偏好在 GPU 環境中執行人工智慧 (AI) 和機器學習 (ML) 筆記本。Google Distributed Cloud (GDC) 實體隔離設備預設會啟用 GPU 支援。
事前準備
如要將 GPU 部署至容器,您必須具備下列條件:
命名空間管理員角色 (
namespace-admin
),可在專案命名空間中部署 GPU 工作負載。Bare Metal Kubernetes 叢集的 kubeconfig 路徑。 登入並產生 kubeconfig 檔案 (如果沒有的話)。
設定容器以使用 GPU 資源
如要在容器中使用 GPU,請完成下列步驟:
確認 Kubernetes 叢集節點支援 GPU 資源分配:
kubectl describe nodes NODE_NAME
將
NODE_NAME
替換為管理要檢查 GPU 的節點。相關輸出內容類似於下列程式碼片段:
Capacity: nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1 Allocatable: nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1
在容器規格中加入
.containers.resources.requests
和.containers.resources.limits
欄位。由於 Kubernetes 叢集已預先設定 GPU 機器,因此所有工作負載的設定都相同:... containers: - name: CONTAINER_NAME image: CONTAINER_IMAGE resources: requests: nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1 limits: nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1 ...
更改下列內容:
CONTAINER_NAME
:容器名稱。CONTAINER_IMAGE
:容器映像檔,用於存取 GPU 機器。您必須加入映像檔的容器登錄路徑和版本,例如REGISTRY_PATH/hello-app:1.0
。
容器也需要額外權限才能存取 GPU。針對要求 GPU 的每個容器,請在容器規格中新增下列權限:
... securityContext: seLinuxOptions: type: unconfined_t ...
套用容器資訊清單檔案:
kubectl apply -f CONTAINER_MANIFEST_FILE \ -n NAMESPACE \ --kubeconfig CLUSTER_KUBECONFIG
更改下列內容:
CONTAINER_MANIFEST_FILE
:容器工作負載自訂資源的 YAML 檔案。NAMESPACE
:要部署容器工作負載的專案命名空間。CLUSTER_KUBECONFIG
:裸機 Kubernetes 叢集的 kubeconfig 檔案,您要將容器工作負載部署到這個叢集。
確認 Pod 正在執行並使用 GPU:
kubectl get pods -A | grep CONTAINER_NAME \ -n NAMESPACE \ --kubeconfig CLUSTER_KUBECONFIG
相關輸出內容類似於下列程式碼片段:
Port: 80/TCP Host Port: 0/TCP State: Running Ready: True Restart Count: 0 Limits: nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1 Requests: nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1