NVIDIA/k8s-device-plugin
NVIDIA device plugin for Kubernetes
解決的問題
此專案提供 Kubernetes 集群識別與使用 NVIDIA GPU 的方式。預設情況下,Kubernetes 不了解如何將 GPU 視為一等資源進行管理;此插件讓叢集能自動偵測每個節點上的 GPU 數量,監控其健康狀態,並將 GPU 分配給請求它們的容器。
工作原理
以 DaemonSet 形式運作,表示在叢集中的每個節點上都會執行。它實作 Kubernetes 裝置插件框架,以公開 nvidia.com/gpu 資源類型。當 Pod 請求 GPU 時,該插件會與 NVIDIA Container Toolkit 協作,確保硬體正確注入至容器中。
支援多種進階配置策略:
- MIG(多實例 GPU):允許將單一 GPU 分割為多個較小的實例。
- 時間切片:允許多個工作負載透過建立資源的虛擬複本,交錯使用單一 GPU。
- MPS(多進程服務):提供空間分割,以明確限制每個工作負載的記憶體與運算資源。
適用對象
在使用 NVIDIA 硬體的 Kubernetes 上部署 AI、機器學習或高階運算(HPC)工作負載的叢集管理員與 DevOps 工程師。
主要亮點
- 自動資源暴露:自動向 Kubernetes API 報告 GPU 數量。
- 彈性共享:支援 CUDA 時間切片與 MPS,實現 GPU 超分配。
- MIG 支援:支援多實例 GPU,提升硬體使用效率。
- 可自訂配置:提供多種設備 ID(UUID 與索引)與設備清單(環境變數、卷掛載或 CDI 注解)的傳遞策略。
- GPU 特性偵測:包含根據 GPU 特性自動標記節點的實作。
相關
- 專案
- 專案
- 專案
- 專案
- 專案