📌 项目地址:dsx-ai-factory/nvke | ⭐ 560 颗星 | 🔧 Go
手上有成规模 NVIDIA GPU 裸金属机器的团队,想让多个业务方各自用上隔离的 Kubernetes 集群,过去只有两条路:每个集群手工装一遍控制平面再长期养着,或者干脆买云上的托管服务。NVKE(NVIDIA Kubernetes Engine)给了第三条:平台团队装一套管理平面,之后持续创建和管理集群,等于在自己的机房里运营一个内部的 GKE。
Go 写的,五百多 star(截至发稿)。NVIDIA 官方把它标为预览版,API 和行为可能在版本间变化,明确不推荐跑生产负载。先把这一点记住,再看下面的内容。
两层结构,各管各的
NVKE 分两层。管理平面由平台团队安装和运营,对外暴露 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
想先看看它长什么样,走本地快速体验这条路径就行:不需要 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 自家的基础设施栈。如果你的机房不走这套栈,短期内用不上它。官方的 supported-platforms 文档列了验证过的平台组合和固定依赖版本,动手前先对着查一遍。
谁该看这个项目
适合的团队画像很窄但很具体:手里有大规模自有 GPU 机器,要向多个业务方交付隔离的 K8s 集群,又不想每套都手工养控制平面。个人用户、只用云上 GPU 实例的人,现在没什么理由碰它。
但即便你不打算装它,TPM + SPIRE 的节点准入设计也值得读一读。裸金属环境下机器怎么证明“我是我”,是个通用难题,这套方案有参考价值。