跳转至

KubeVirt Awesome

藏云阁 KubeVirt Awesome,全国内资源,您的一站式 KubeVirt 知识库。

官网镜像

代码镜像

动态

最佳实践

论坛

视频

KubeVirt 是什么?

KubeVirt Logo

KubeVirt 是一个由 CNCF(云原生计算基金会)托管的开源孵化项目,旨在将虚拟机(VM)工作负载无缝集成到 Kubernetes 生态系统中,实现容器与虚拟机的统一管理。

基于 KVM 虚拟化技术,通过自定义资源(CRD)将虚拟机作为 Kubernetes 原生资源管理。用户可通过 Kubernetes API 创建、调度和管理虚拟机,使其与容器共享同一集群基础设施,无需独立虚拟化平台。

核心用途:解决混合工作负载管理难题

KubeVirt 主要服务于以下场景:

  • 遗留应用现代化:迁移无法容器化的传统应用(如 Windows/.NET 应用、依赖特定硬件的 GPU 应用)至 Kubernetes 平台,避免重构成本。
  • 统一基础设施管理:在单一控制平面下同时运行容器和虚拟机,减少运维复杂度与工具链冗余。
  • 边缘计算支持: 结合 OpenYurt 等边缘框架,在边缘节点部署虚拟机,满足低延迟或离线运行需求。
  • 混合云与多云部署:通过 Kubernetes 的跨集群能力,实现虚拟机工作负载在异构环境中的一致管理。

关键技术特点

  • 原生 Kubernetes 集成
    • 使用 VirtualMachine CRD 定义虚拟机配置(CPU、内存、存储),通过 kubectl 或 YAML 文件管理生命周期(启停、迁移、删除)。
    • 虚拟机以 Pod 形式运行,复用 Kubernetes 网络(CNI)、存储(CSI)及安全策略(RBAC)。
  • 高级虚拟化功能支持
    • 实时迁移:节点维护时自动迁移虚拟机,保障业务连续性。
    • 硬件直通:支持 GPU 透传、SR-IOV 高性能网络、NUMA 拓扑优化,满足计算密集型需求。
    • 数据保护:在线/离线磁盘快照、备份恢复(集成 Velero)。
  • 生态无缝集成
    • 与 Prometheus(监控)、Argo CD(GitOps)、Istio(服务网格)等 CNCF 项目协同工作。
    • 提供 Cluster Network Add-on Operator (CNAO) 管理网络,Hyperconverged Cluster Operator 简化部署。
  • 跨平台兼容性
    • 支持多种虚拟化后端(KVM、Xen、VMware)及存储方案(NFS、iSCSI、本地存储)

核心优势

  • 统一运维,降低成本
    • 通过 Kubernetes 统一管理容器与虚拟机,减少学习成本和工具链投入,提升运维效率。
  • 性能无损与资源高效
    • 直接调用宿主机的 KVM 虚拟化层,避免嵌套虚拟化性能损耗。
    • 利用 Kubernetes 调度器优化资源分配,提高集群利用率。
  • 敏捷交付与 DevOps 集成
    • 虚拟机可通过 CI/CD 工具(如 Tekton)自动化构建、测试和部署,实现“虚拟机即代码”。
  • 平滑迁移路径
    • 提供迁移工具将 VMware 等平台的虚拟机直接导入 Kubernetes,保留原有配置(如固定 IP),支持渐进式重构。
  • 企业级扩展能力
    • 已验证支持 40,000 节点 规模集群,适用于金融、制造等大规模场景。

KubeVirt 的定位价值

KubeVirt 是 连接传统虚拟化与云原生生态的桥梁,它解决了企业遗留应用上云的痛点,同时赋予虚拟机容器级的敏捷性。

其核心价值在于通过技术融合实现“稳敏兼得”——稳态应用(VM)与敏态应用(容器)在统一平台共存,降低转型风险的同时加速云原生落地358。

KubeVirt 与传统虚拟化管理工具对比

能力 KubeVirt 传统虚拟化平台 (如 vSphere)
管理平面 Kubernetes 原生 API 独立控制台
资源调度 Kubernetes 调度器 专属调度引擎
运维集成 Prometheus/Argo CD 等生态 封闭或定制化插件
基础设施依赖 无(复用 K8s 集群) 需独立部署虚拟化层
跨云/边缘扩展 天然支持 需额外解决方案

为什么选择KubeVirt?

KubeVirt 技术满足了已经采用或想要采用 Kubernetes,但拥有不易容器化的现有基于虚拟机的工作负载的开发团队的需求。

更具体地说,该技术提供了一个统一的开发平台,开发人员可以在一个共同的共享环境中构建、修改和部署驻留在应用程序容器和虚拟机中的应用程序。

好处广泛而显著。依赖现有基于虚拟机的工作负载的团队有能力快速容器化应用程序。通过将虚拟化工作负载直接放置在开发工作流程中,团队可以随着时间的推移对其进行分解,同时仍然可以轻松地利用剩余的虚拟化组件。

可以用 KubeVirt 做些什么?

KubeVirt 和 Kubernetes

利用 KubeVirt 和 Kubernetes 来管理无法容器化的应用程序的虚拟机。

KubeVirt and VMs

在同一平台上结合现有的虚拟化工作负载和新的容器工作负载。

Containerized Applications

支持在容器中开发新的微服务应用程序,这些应用程序可以与现有的虚拟化应用程序进行交互。

所属组织情况

KubeVirt 属于 CNCF 基金会

处于 CNCF 基金会的 孵化中 阶段

CNCF Incubating