VSS Helm/Kubernetes部署指南:把视频AI蓝图搬到生产级集群
【免费下载链接】video-search-and-summarizationNVIDIA AI Blueprint for video search and summarization (VSS) is a GPU-accelerated reference architecture for building video analytics agents with real-time verified alerts, visual Q&A, and automated reporting. The VSS Blueprint uses vision language models (VLMs) such as NVIDIA Cosmos, LLMs such as NVIDIA Nemotron, RAG, and NVIDIA NIMs.项目地址: https://gitcode.com/GitHub_Trending/vi/video-search-and-summarization
NVIDIA VSS(Video Search and Summarization)是一个 GPU 加速的视频搜索与摘要 AI 蓝图,内置实时告警、视觉问答和自动报告能力。本文带你用Helm + Kubernetes把这套视频 AI 蓝图从开发环境搬到生产级 GPU 集群——先讲清前置条件,再给出 3 步安装流程和各 Profile 的 GPU 选型建议,最后覆盖升级、卸载与排坑。
为什么选择 Kubernetes 部署 VSS
VSS 的默认入门方式是 Docker Compose(见 快速入门),但对于生产场景,Kubernetes 方案有明显优势:
- 声明式管理:UI、Agent、RT-VLM、NIM 模型、Postgres、Redis、Phoenix 等几十个组件,一条
helm install全部拉起 - GPU 调度:结合 NVIDIA GPU Operator,自动完成驱动安装与
nvidia.com/gpu资源分配 - 可升级可回滚:
helm upgrade/helm uninstall标准生命周期管理 - Ingress 统一入口:UI、API、VST、Phoenix 通过一个主机名对外暴露
Helm 部署的总体流程参考官方文档 Helm Deployment,所有 Profile 的 Chart 都位于 deploy/helm/ 目录。
部署前准备:6 项生产环境前置条件
开始之前,请确认你的集群满足以下条件(以 dev-profile-base 的 Chart 文档 为准):
| 前置条件 | 说明 |
|---|---|
| Kubernetes 集群 | 版本1.34+,可用 kubectl 访问 |
| Helm | 3.x 版本 |
| NVIDIA GPU Operator | 安装驱动 + 设备插件,Pod 才能申请 GPU |
| NVIDIA NIM Operator | 仅在集群内部署 LLM/VLM 模型时需要,须在 GPU Operator 之后安装 |
| StorageClass | 用于 PVC 自动供给,裸金属集群可装 local-path-provisioner |
| NGC API Key | 拉取镜像与访问 NIM 模型 |
⚠️ GPU 数量取决于你选择的 Profile 与模型部署方式(集群内 NIM 还是远程端点),详见下一节的 GPU 速查表。
选择你的开发者 Profile:4 个图表 + GPU 需求速查
VSS 提供 4 个开发者 Profile,按需选择,每个 Profile 对应一个独立 Helm Chart:
| Profile | 能力 | 默认 GPU 需求 | Chart 位置 |
|---|---|---|---|
base | 视觉问答(Q&A)+ 报告生成 | 3 卡 | dev-profile-base |
alerts | 实时告警 + 告警验证 | 实时3 卡/ 验证4 卡 | dev-profile-alerts |
search | 视频搜索与语义检索 | 本地模型5 卡/ 远程4 卡 | dev-profile-search |
lvs | 长视频摘要(LVS) | 4 卡 | dev-profile-lvs |
以baseProfile 为例,默认 3 张 GPU 的分配为:vss-rtvi-vlm(实时 VLM)1 卡、nvidia-nemotron-nano-9b-v2(LLM NIM)1 卡、vss-vios-streamprocessing(流处理)1 卡。
💡GPU 不够用怎么办?两个思路:
- 远程模型端点:把 LLM/VLM 部署在集群外,设置
nims.enabled: false并配置global.llmBaseUrl/global.vlmBaseUrl,集群内只需承担流处理等推理组件 - GPU 时间切片(Time-Slicing):让多个 Pod 共享一张物理 GPU,search Profile 的文档中给出了具体配置示例(dev-profile-search/README.md)
Helm 三步安装法:从克隆仓库到 Pod Ready
以下以baseProfile 为例,完整流程 3 步:
第 1 步:克隆蓝图仓库并构建 Chart 依赖
git clone https://gitcode.com/GitHub_Trending/vi/video-search-and-summarization.git cd video-search-and-summarization/deploy/helm/developer-profiles helm dependency build ./dev-profile-base第 2 步:准备 values 覆盖文件
Chart 目录自带values-base.yaml样例文件,只需填入 4 类必填项:
ngc.apiKey:你的 NGC API Keyglobal.storageClass:集群存储类名称global.externalHost/global.externalScheme:浏览器访问用的主机名与协议nims/llmNameSlug/vlmNameSlug:集群内模型配置(默认 Nemotron 9B + RT-VLM)
小技巧:只需修改
values-base.yaml(你自己的覆盖文件),无需改动 Chart 自带的完整默认值文件values.yaml,Helm 会自动合并。
第 3 步:执行安装
helm upgrade --install vss-base ./dev-profile-base \ -f dev-profile-base/values-base.yaml \ -n vss-base --create-namespace安装完成后持续观察,直到所有Pod 变为Running且READY:
kubectl get pods -n vss-base -w⏱️耐心提示:镜像拉取、PVC 绑定、NIM 模型下载与预热需要时间,部分 Profile 全部就绪可能需要20–25 分钟。后端模型未 Ready 前打开 UI 可能出现瞬时错误,属正常现象。
对外暴露服务:一条 Ingress 统一入口
Chart 支持通过vssIngress.enabled: true自动创建一条 Kubernetes Ingress,将 UI、Agent API、VST 存储、RT-VLM、Phoenix 全部挂载到同一个主机名下(路由表见 deploy/helm/services/common/README.md):
| 路径前缀 | 后端服务 |
|---|---|
/、/api/chat、/api/agent | vss-agent-ui |
/api、/chat、/websocket | vss-agent |
/vst、/storage | VST 存储网关 |
/rtvi-vlm | 实时 VLM 推理服务 |
/phoenix | Phoenix 可观测性面板 |
使用前集群里需要已有 Ingress 控制器(如 HAProxy,默认ingressClassName: haproxy,也可改为nginx)。注意vssIngress只创建 Ingress 资源,不会替你安装控制器——集群只需装一次,避免多个 Chart 重复安装导致IngressClass所有权冲突。
全部就绪后,浏览器打开global.externalHost对应的地址即可进入 VSS 界面:
行业 Profile 扩展:仓库运营蓝图上生产
除了开发者 Profile,仓库还提供行业蓝图 Chart,例如仓库运营的 2D / 3D / MV3DT 应用,位于 deploy/helm/industry-profiles/warehouse-operations/:
- warehouse-2d-app:2D 目标检测与跟踪
- warehouse-3d-app:多相机 3D 检测跟踪
- warehouse-mv3dt-app:MV3DT 多视角 3D 跟踪
它们复用deploy/helm/services/rtvi服务层 Chart,通过vss-rtvi-cv.profileMode切换运行模式。多节点集群建议优先使用共享 StorageClass(如 NFS),避免local-path的 PV 绑定导致 Pod 不可调度。
升级与卸载:生产运维两件套
升级:修改 values 后重新执行安装命令即可,Helm 会执行原地升级:
helm upgrade vss-base ./dev-profile-base -f dev-profile-base/values-base.yaml -n vss-base卸载:
helm uninstall vss-base -n vss-base🧹注意:
helm uninstall不会删除 PVC 和集群级资源(如NIMCache),如需彻底清理,手动执行kubectl delete pvc --all -n vss-base与kubectl delete nimcache --all -n vss-base。
常见问题快速排查
| 现象 | 排查方向 |
|---|---|
Pod 长期Pending | GPU 不足:kubectl get pods -o wide看调度事件;考虑时间切片或远程模型 |
Pod 卡在ContainerCreating | PVC 未绑定:检查global.storageClass与 StorageClass 是否匹配 |
| 拉取镜像 401 | NGC API Key 失效或 secret 未生效,确认ngc.createSecrets: true |
| 模型 Pod 长时间不 Ready | NIM 模型下载与预热耗时较长,观察 NIMCache 状态 |
| Ingress 404 | 集群 IngressClass 名称与vssIngress.ingressClassName不一致 |
| LLM 内存溢出(OOM) | 调小 NIM 的模型长度/序列并发数后重新 upgrade |
更多细节可参考各 Profile Chart 的完整文档,以及配套部署脚本 deploy/docker/scripts/ 目录下的 orchestrator 编排工具。
总结
用 Helm 把 VSS 视频 AI 蓝图部署到 Kubernetes 生产集群,核心就记住四件事:
- 先备齐:K8s 1.34+、GPU/NIM Operator、StorageClass、NGC Key
- 再选 Profile:base / alerts / search / lvs,按 GPU 预算决策
- 三步安装:
helm dependency build→ 改 values →helm upgrade --install - 等它 Ready:20–25 分钟预热是常态,之后一条 Ingress 搞定所有入口
【免费下载链接】video-search-and-summarizationNVIDIA AI Blueprint for video search and summarization (VSS) is a GPU-accelerated reference architecture for building video analytics agents with real-time verified alerts, visual Q&A, and automated reporting. The VSS Blueprint uses vision language models (VLMs) such as NVIDIA Cosmos, LLMs such as NVIDIA Nemotron, RAG, and NVIDIA NIMs.项目地址: https://gitcode.com/GitHub_Trending/vi/video-search-and-summarization
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考