📌 项目地址:dsx-ai-factory/nvke | ⭐ 560 颗星 | 🔧 Go
如果你手上有成规模的 NVIDIA GPU 裸金属机器,想让多个业务团队各自用上隔离的 Kubernetes 集群,通常有两条路:要么每个集群手工装一遍控制平面然后长期维护,要么买云上的托管服务。NVKE(NVIDIA Kubernetes Engine)给的是第三条路:平台团队装一套管理平面,之后持续创建和管理集群,就像在自己机房里运营一个 GKE。
Go 写的,五百多 star,预览阶段。NVIDIA 官方明确说 API 和行为可能在版本间变化,不推荐跑生产负载。看清楚这一点,再往下读。
两层架构
- 管理平面:平台团队安装和运营,对外提供 NVKE API 和
nvkectl命令行工具 - 工作负载集群:业务团队直接用标准 Kubernetes API 和
kubectl,感知不到底下这层的存在
每个工作负载集群有自己独立的控制平面、etcd 和节点池,集群之间互不影响。这点和 Cluster API 的思路接近,但 NVKE 面向的是 NVIDIA 自家基础设施。
它能干什么
创建集群。通过 NVKE API 或 nvkectl 发请求,NVKE 负责供给机器、组建带独立控制平面的集群。
管理集群生命周期。节点池的创建、扩缩、删除,Kubernetes 版本升级,节点替换,都在管理平面里完成。预览版对替换和升级有手动步骤的限制,细节在官方 node pool 文档里。
节点身份认证。这是我觉得最值得细看的设计。云上环境有实例元数据服务,机器开机就知道自己是谁;裸金属环境没有这个,一台机器凭什么加入集群就成了问题。NVKE 的答案:节点必须先通过 TPM 硬件做 SPIFFE/SPIRE 可信证明,验证通过才发放加入凭据。etcd 数据加密按集群可选开启。做裸金属 K8s 安全的人可以专门研究这一块。
衔接构建和部署。README 提到配套项目实现构建到部署的打通,但原文在此处截断,具体细节以官方仓库为准。
上手门槛:本地评估不需要 GPU
README 按目标给了三条路径:本地快速体验、正式安装、参与开发。想先看看它长什么样,走本地快速体验这条路就行,不需要 NVIDIA 账号,也不需要真实 GPU。它在模拟机器上跑一个开发管理平面和一个工作负载集群。
硬件要求不算低:Linux 主机或 VM(amd64 或 arm64),至少 6 核 CPU、12 GiB 空闲内存、100 GiB 空闲磁盘,还要 Docker 和虚拟 TPM 支持。macOS 用户走 local site 指南,在 Colima 虚拟机里跑。整个流程走完后,确认集群节点状态是 Ready 就算成功。
真实安装的前提,也是最大的限制
正式部署时,机器、网络、节点镜像、镜像仓库全都要你自己提供,另外必须配置 NVIDIA Infra Controller(NICo)的访问权限。预览阶段 NICo 是唯一兼容的基础设施提供商。
这个绑定要注意:NVKE 的机器供给离不开 NVIDIA 自家的基础设施控制器。如果你的机房不走 NVIDIA 这套栈,短期内用不了。官方的 supported-platforms 文档列了验证过的平台组合和固定依赖版本,动手前先对着查一遍。
值不值得关注
它适合的团队画像很窄但很具体:手里有大规模自有 GPU 机器,需要向多个业务方交付隔离的 K8s 集群,又不想每套都手工养控制平面。个人用户、只用云上 GPU 实例的人,现在没什么理由碰它。
但即便你不装它,TPM + SPIRE 的节点身份设计也值得读一读源码。裸金属环境下的集群准入是通用难题,这个方案有参考价值。