Kubevirt 是Redhat开源的以容器方式运行虚拟机的项目,以k8s add-on方式,利用k8s CRD增加一种自定义资源类型:VirtualMachineInstance(VMI), 使用容器的image registry去创建虚拟机并提供VM生命周期管理。kubevirt目前支持的runtime是docker和runv。

KubeVirt 技术对于已采用或想要采用Kubernetes进行业务开发的用户来说,可以通过该技术满足以下三类主要的需求场景:

  1. 利用kubevirt和kubernetes来管理那些无法进行容器化改造的虚拟化应用
  2. 在统一的平台上联合现有的虚拟化工作负载和新建的容器工作负载
  3. 新开发的容器微服务应用可以轻松的和已有的虚拟化应用进行内部交互访问

对于依赖现有基于虚拟机的工作负载团队讲有能力快速将应用程序容器化,同时仍然可以按需使用剩余的虚拟化组件。

Kubevirt架构如下图所示,由4部分组件组成:

  1. virt-launcher:kubevirt创建虚拟机的核心,通过一个特殊的pod,其中的子进程包括libvirtd和qemu。 kubevirt在每个VMI的 pod都会起一个libvirtd进程避免了因为 libvirtd 服务异常导致所有的虚拟机无法管理
  2. virt-controller:负责在kubernetes节点间调度VMI资源,生成对应的virt-launcher pod
  3. virt-handler:负责在kubernetes node节点上的业务逻辑控制和保持节点心跳。
  4. virt-api:提供虚拟机操作的入口,包括常规的CRD更新验证以及虚拟机生命周期管理操作

kubevirt技术架构

通过上述组件,kubevirt提供了完整的虚拟机创建流程:

  1. client 发送创建VMI命令达到k8s API server.
  2. K8S API 创建VMI
  3. virt-controller监听到VMI创建时,根据VMI spec生成pod spec文件,创建pods
  4. k8s调度创建pods
  5. virt-controller监听到pods创建后,根据pods的调度node,更新VMI的nodeName
  6. virt-handler监听到VMI nodeName与自身节点匹配后,与pod内的virt-launcher通信,virt-laucher创建虚拟机,并负责虚拟机生命周期管理

当前kubevirt可支持多种虚拟机操作和功能特性,包括虚拟机启停,重启,暂停和恢复,重命名,热迁移、热插拔卷,虚拟机快照和大页等特性

参考文献:

[1] KubeVirt.io

[2] Kubernetes 管理虚拟机之 KubeVirt - 知乎

工作小记系列2:Kubevirt简介相关推荐

  1. openGauss数据库源码解析系列文章--openGauss简介(一)

    openGauss数据库是华为深度融合在数据库领域多年经验,结合企业级场景要求推出的新一代企业级开源数据库.此前,Gauss松鼠会已经发布了openGauss数据库核心技术系列文章,介绍了openGa ...

  2. 【转】dicom通讯的工作方式及dicom标准简介!!

    转自:dicom通讯的工作方式及dicom标准简介 - assassinx - 博客园 本文主要讲述dicom标准及dicom通讯的工作方式.dicom全称医学数字图像与通讯 其实嘛就两个方面 那就是 ...

  3. Oracle系列之add_months简介以及用法归纳教程

    Oracle系列之add_months简介以及用法归纳教程 最近遇到一个SQL统计,需要遇到获取某个日期n个月后的日期,比如统计入职时间超过2年的员工信息 如果不依靠Oracle函数,自己去写有点麻烦 ...

  4. 调试器工作原理系列一: 基础篇

    调试器工作原理系列一: 基础篇 本文是一系列探究调试器工作原理的文章的第一篇.我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起. 关于本文 我打算在这篇文章中介绍关 ...

  5. 嵌入式USB开发系列(1):USB简介

    嵌入式USB开发系列(1):USB简介 文章目录 嵌入式USB开发系列(1):USB简介 1. USB的优势 2. USB协议标准 3. USB通信接口 声明 声明:USB资料网站 链接,相关协议和文 ...

  6. 《快乐星猫》动漫系列主要角色简介

    <快乐星猫>动漫系列 主要角色简介 姓名:星猫 特性:幽默风趣 个性:来自天神星的魔法大师,外型酷似地球上的猫.无所不知,却常常闹笑话.体形看来笨笨的,但非常敏捷,说话喜欢用说教的口气. ...

  7. Linux 系列之一 Linux 简介

    1 Linux概述 1.1 操作系统简介 1.1.1 为啥需要操作系统呢 ? ​ 计算机是一台机器,它按照用户的要求接收信息.存储数据.处理数据,然后再将处理结果输出(文字.图片.音频.视频等).计算 ...

  8. Spring 系列: Spring 框架简介

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架. 在这篇由三部 ...

  9. [原]iBatis.Net(C#)系列一:简介及运行环境

    转载请注明http://www.cnblogs.com/13590/archive/2013/02/27/2934580.html 摘要:介绍iBatis.Net的基本情况和运行原理,运行环境中各参数 ...

最新文章

  1. ICLR 2022:AI如何识别“没见过的东西”?
  2. WebSphere概要文件类型
  3. 网站显示mysql数据库_如何显示从MySQL数据库的网站iframe?
  4. cmake指定gcc版本
  5. Web 高效开发必备的 PHP 框架
  6. Jconsole查看Weblogic自定义MBean
  7. c语言:从标准输入读取几行输入,输入打印到标准输出上,加上行号
  8. java判断是否为5的倍数,如何用编程实现“判断输入的正整数是否既是5又是7的正倍数,若是,则输出yes,否则输出no”?...
  9. 2020五一数学建模比赛总结
  10. 中国电信5G技术控制云
  11. 设计基于计算机的机械手控制系统,基于PLC的工业机械手控制系统设计
  12. android 分组柱状图_Android自定义柱状图控件
  13. php博客平台 开源,PHP开源博客Blog - PHP开源网(PHP-OPEN.ORG)
  14. 项目管理第三招:做好计划,拥抱变化
  15. WordPress插件教程-WPS Limit Login限制登录次数
  16. VB中的界面设计原则和编程技巧
  17. 自行车不可以上高速,但是为什么有的人可以从北京骑到西藏?
  18. LPL2020夏季常规赛7月22日RW vs ES,WE vs BLG前瞻预测
  19. 【数据结构实训--集合基本运算(附代码)】
  20. 关于俄罗斯方块游戏软件C语言初步感受

热门文章

  1. 移动机器人计算机视觉就业方向,基于计算机视觉的移动机器人导航
  2. Cent OS 8解决开机网卡未启动
  3. CorelDRAW VBA - 获取位图图像的水平、垂直分辨率
  4. MybatisPlus引用BaseMapper中的方法报错: BindingException: Invalid bound statement (not found):
  5. 【POJ3122】Pie(二分)
  6. 微信授权工具wechatAuth.js
  7. FFMpeg php使用说明
  8. To_Date函数用法(转)
  9. 7.4 Git 工具 - 签署工作
  10. android8快图浏览,快图浏览 QuickPic Gallery v8.0.2