初始基于K8s的虚拟化技术Kube-virt

Kube-virt是一个项目,允许在Kubernetes上管理虚拟机。它通过CRD接口接入K8S,以一对一的Pod管理VM,实现资源管理和调度。文章介绍了Kube-virt的架构,包括virt-api、virt-controller、virt-handler和virt-launcher的职责,以及VM创建流程、存储方式(如registryDisk、PVC和CDI)、网络配置、监控和迁移功能。此外,还对比了Kube-virt与Kata Container。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据Garnter的最新预测,到2022年将会有75%的生产应用全部跑在容器环境之上。基于这个预测,其实至少还有25%的架构由于技术原因或是认为原因都将仍然跑在旧的架构之上,这其中虚拟机又会占据其中的大部分份额。所以在容器技术尤其是Kubernetes诞生之初,就已经有开源的社区在为如何使用Kubernetes纳管虚拟机作为一个重要的功能在开发和贡献。

今天要介绍的主角就是Kube-virt,那么使用Kube-virt主要会帮我们解决以下两个问题:
🔹从技术层面,完全的虚拟机纳管,可以完美迁移因为内核版本过于陈旧以及语言问题而无法迁移到容器的部分应用
🔹从管理和运维层面,符合传统的运维工作方式,以前的SSH 等运维方式可以完美复用

架构

为什么kube-virt可以做到让虚拟机无缝的接入到K8S?
首先,先给大家介绍一下它的整体架构。
在这里插入图片描述

  • virt-api
    kubevirt是以CRD形式去管理vm pod, virt-api就是所有虚拟化操作的入口,包括常规的CRD更新验证以及vm start、stop
  • virt-controlller
    virt-controller会根据vmi CRD,生成对应的virt-lancher pod,并维护CRD的状态
  • virt-handler
    Virt-handler会以Daemonset形式部署在每个节点上,负责监控节点上每个虚拟机实例状态变化,一旦检测到状态变化,会进行响应并确保相应操作能达到所需(理想)状态。
    Virt-handler保持集群级VMI Spec与相应libvirt域之间的同步;报告Libvirt域状态和集群Spec的变化;调用以节点为中心的插件以满足VMI Spec定义的网络和存储要求。
  • virt-launcher
    每个virt-lanuncher pod对应着
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值