治理优先的 KubeVirt 虚拟机管理平台

自助式虚拟机全生命周期管理,内置结构化审批流程、基于角色的访问控制(RBAC)和完整的审计追踪,支持跨多个 Kubernetes 集群的统一管理。

KubeVirt Shepherd dashboard overview

KubeVirt 运行你的虚拟机。
谁来治理它们?

KubeVirt 解决了"在 Kubernetes 上运行 VM"。Shepherd 解决接下来的问题:谁能申请 VM、谁来审批、配额如何执行、审计追踪在哪里?

缺乏治理

  • ⚠️任何人都能未经审批直接创建 VM
  • ⚠️无法追溯谁在何时做了什么操作
  • ⚠️资源蔓延和孤儿实例不断增长
  • ⚠️受监管环境下的合规性缺口
  • ⚠️商业解决方案带来的厂商锁定

使用 Shepherd

  • 每个 VM 操作都有结构化审批流程
  • 每次资源变更都有完整的审计追踪
  • 有序的自助服务 —— 兼顾灵活性与管控
  • 生产级 RBAC,支持环境维度权限隔离
  • 无厂商锁定 —— 可运行在任意 Kubernetes 发行版上

Shepherd 对比

能力OpenShift VirtualizationShepherd
多集群管理需要 RHACM✔ 原生支持
审批流程✔ 内置
自助服务门户运维驱动✔ 申请 → 审批 → 交付
审计追踪OpenShift 集成✔ 平台原生
厂商锁定强(OpenShift)

生产级治理能力

每项能力在平台管控与用户自主之间取得平衡 —— 满足合规要求的同时,不影响日常操作效率。

审批流程

为每个 VM 生命周期操作(创建、修改、启动、停止、删除)提供结构化的请求和多级审批。

双层 RBAC

平台级 RBAC 管控全局能力,System 成员关系向下继承到 Service 和 VM,支持环境维度权限隔离。

完整审计追踪

每次资源变更都有完整的操作记录。清楚知道谁在何时做了什么、为什么 —— 从第一天起就满足合规要求。

多集群管理

跨多个 Kubernetes 集群的统一管理面板,无需像 RHACM 这样的额外组件。

VM 控制台访问

VNC 和串行控制台访问,具有审批感知的入口。直接在浏览器中操作受管虚拟机的控制台。

国际化

开箱即用的中英文界面,可扩展支持更多语言。认证插件 SDK 支持 LDAP、OIDC 和自定义提供者。

工程方法论

契约优先的 API 设计、声明式 Schema 迁移,通过架构决策记录(ADR)实现结构化的技术选型治理。

Web UIReact 19 · Next.js 16
▼ REST / WebSocket
Go 后端Gin · Ent ORM · River Queue
PostgreSQL 18单一数据存储
KubeVirt 集群client-go · 多集群
01

契约优先 API

OpenAPI 规范驱动代码生成、文档和客户端 SDK。

02

PostgreSQL 单存储

无 Redis、无外部消息队列。最小化运维复杂度。

03

ADR 治理

53 份架构决策记录,包含完整的上下文和决策理由。

04

CI 门禁执行

Lint、测试、类型检查、构建 —— 全部强制执行,不可绕过。

关于 KubeVirt Shepherd 的常见问题

快速了解 KubeVirt Shepherd:项目状态、部署方式、支持的版本、认证集成,以及 Shepherd 与 KubeVirt、OpenShift Virtualization 的关系。

KubeVirt Shepherd 是什么?

KubeVirt Shepherd,也可称为 kv-shepherd 或 kubevirt-shepherd,是一个治理优先的开源 KubeVirt 虚拟机管理平台。它在 Kubernetes 上提供自助式 VM 生命周期管理,内置结构化审批流程、双层 RBAC、环境作用域的角色绑定以及完整的审计追踪,支持跨多个 Kubernetes/KubeVirt 集群。项目采用 Apache 2.0 协议发布:https://github.com/kv-shepherd/shepherd。

Shepherd 和 KubeVirt 本身有什么区别?

KubeVirt 提供的是「在 Kubernetes 上运行虚拟机」这一核心能力。Shepherd 关注的是这些 VM 周边的运营模型:谁可以申请、谁来审批变更、平台权限如何执行、哪些集群可用、审计追踪在哪里。Shepherd 不取代 KubeVirt,而是补齐让 KubeVirt 可以在受监管的多团队环境中运行所需的治理层。

Shepherd 是 OpenShift Virtualization 的替代品吗?

对于希望获得 VM 治理能力但不想被某个商业平台栈绑定的团队来说,是的。Shepherd 原生支持多集群管理(无需 RHACM)、内置审批流程、申请-审批-交付的自助服务门户、平台原生审计追踪,且不存在厂商锁定。它采用 Apache 2.0 协议发布,可运行在任意符合 KubeVirt 与 Kubernetes 兼容性基线的 Kubernetes 发行版上。

Shepherd 当前处于什么状态?

Shepherd 当前处于 Alpha 阶段(当前已发布预览版本:v0.1.1-alpha.8)。核心治理路径 —— 审批流程、RBAC、审计追踪和 VM 生命周期管理 —— 已经在金融服务行业的 Kubernetes/KubeVirt 环境中通过内部生产使用得到验证。Alpha 标签是为了在更广泛的 KubeVirt 版本、存储类、认证提供者和组织运营模式下收集外部反馈,是有意保守的标记。

如何体验或部署 KubeVirt Shepherd?

你可以访问在线演示 https://demo.kv-shepherd.io,无需任何安装。如需自托管部署,官方支持四种部署方式:(1)Helm Chart,面向 Kubernetes 原生安装(推荐方式,Chart 仓库为 kv-shepherd/helm-charts);(2)Docker Compose,使用 GHCR 已发布镜像,适用于 VPS 或生产主机;(3)通过 ./start-dev.sh 从源码进行本地开发;(4)Docker Compose 源码构建模式,适用于需要在主机上从检出代码构建镜像的场景。详见 docs/DEPLOYMENT.md 中的完整部署指南与安全检查清单。

Shepherd 治理哪些 VM 操作?

Shepherd 将审批流程和审计追踪应用于完整的 VM 生命周期:创建、修改、电源管理(启动 / 停止 / 重启)、删除、清单导出,以及 VNC / 串行控制台入口。管理员目录涵盖集群、命名空间、模板、实例规格、认证提供者、限流策略、角色与用户。

Shepherd 采用什么技术栈?支持哪些 KubeVirt 与 Kubernetes 版本?

Shepherd 后端采用 Go(Gin、Ent 与 sqlc 混合持久化、基于 PostgreSQL 的 River 队列实现原生异步执行),存储仅使用 PostgreSQL 18(无 Redis、无外部消息队列),前端采用 React 19 + Next.js 16。KubeVirt Provider 与 KubeVirt v1.8.x、Kubernetes v1.34.x 对齐。从源码构建需 Go 1.25.10 及以上、Node.js 22 及以上。

Shepherd 支持哪些认证提供者?

Shepherd 提供 Auth Provider Plugin SDK,原生支持 LDAP、OIDC 以及自定义认证集成。会话、登录路由与信任边界被作为一等安全关注点持续加固 —— 详见 CHANGELOG 中 auth 与 security 类别的更新记录。

Shepherd 是否免费且开源?

是的。KubeVirt Shepherd 采用 Apache License 2.0 协议发布,在 GitHub 上公开开发:https://github.com/kv-shepherd/shepherd。没有付费版本,也不存在厂商锁定。社区交流渠道包括 Discord(https://discord.gg/9P2wtpPMUe)、GitHub Issues 和 GitHub Discussions。

公开透明地构建

Shepherd 采用 Apache 2.0 协议,在开放环境中开发。我们遵循社区最佳实践,具备透明的治理机制、架构决策记录和强制执行的 CI 流水线以确保代码质量。

我们欢迎所有形式的反馈 —— Bug 报告、功能建议、使用故事和治理想法。您的反馈将直接影响项目方向。