KubeVirt 介绍:容器原生虚拟化

发布时间: 更新时间: 总字数:847 阅读时间:2m 作者: IP上海 分享 网址

KubeVirt Kubernetes 虚拟化 API 和运行时,用于定义和管理虚拟机。KubeVirt 于 2019 年 9 月 6 日被 CNCF 接受,并于 2022 年 4 月 19 日转入孵化成熟度级别。

介绍

KubeVirt 是一个开源项目,它允许用户在 Kubernetes 作为底层编排平台的基础上,运行、部署和管理虚拟机(VM)

其核心理念是实现容器原生虚拟化,这意味着虚拟机被打包在容器中,并与容器化微服务和云原生应用在同一个平台上运行和管理。

KubeVirt 是由 云原生计算基金会(CNCF) 赞助的孵化项目,也是红帽 ® OpenShift® 虚拟化的开源基础。

KubeVirt 如何运作?

KubeVirt 通过扩展 Kubernetes API 来工作,使 Kubernetes 能够将虚拟机(VMs)视为一种新的资源类型。

  • 统一管理: 容器和虚拟机可以共享同一个集群、节点和网络,从而可以在一个控制台下管理这两种工作负载。
  • Kubernetes 集成: 虚拟机可以通过与其他 Kubernetes 资源(如 Pod、Service 等)相同的方式进行交互、部署和管理。
  • 充分利用 Kubernetes 功能: 虚拟机可以受益于 Kubernetes 的原生高级功能,例如网络策略、存储管理、自动伸缩和一致的安全策略。

主要特点和优势

  • 整合传统与云原生: 允许组织在不放弃 Kubernetes 优势的情况下,继续运行和管理传统的虚拟机工作负载。
  • 实时迁移: 支持虚拟机的实时迁移,即在不中断虚拟机访问的情况下,将其从一台主机移动到另一台主机。这对于需要确保持续正常运行的关键虚拟机非常重要。
  • 更高的效率和可移植性: 结合了容器的敏捷性和虚拟机的隔离性。
  • 一致的安全防护: 充分利用 Kubernetes 原生安全防护的优势,确保在包括虚拟机在内的所有环境中一致地应用策略。

安装

组件

分类 组件 部署方式 功能说明
控制面 virt-api deployment 自定义 API,开机、关机、重启等,作为 apiserver 的插件,业务通过 k8s apiserver 请求 virt-api。
控制面 virt-controller deployment 管理和监控 VMI 对象的状态,控制 VMI 下的 pod。
计算节点 virt-handler daemonset 类似 kubelet,管理宿主机上的所有虚拟机实例。
计算节点 virt-launcher virt-handler pod 调用 libvirt 和 qemu 创建虚拟机进程。

自定义 CRD 对象

分类 CRD 对象 功能说明
虚机 VirtualMachineInstance(VMI) 代表运行的虚拟机实例
虚机 VirtualMachine(VM) 虚机对象,提供开机、关机、重启,管理 VMI 实例,与 VMI 的关系是 1:1

参考

  1. https://kubevirt.io/
  2. https://www.redhat.com/zh-cn/topics/virtualization/what-is-kubevirt
  3. https://kubevirt.io/user-guide/architecture/
本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics