kubevirt

news2024/11/25 2:29:51
  • Kubevirt 是Redhat开源的以容器方式运行虚拟机的项目,以k8s add-on方式,利用k8s CRD为增加资源类型VirtualMachineInstance(VMI),使用容器的image registry去创建虚拟机并提供VM生命周期管理。
  • kubevirt提供vm-import-operator可以支持从vmware导入虚机至kubevirt集群。
  • 简单来说:kubevirt只是用k8s管vm,其中会复用k8s的cni和csi,所以只是用operator的方式来操作vm,他不去管网络和存储等。所以和OpenStack中包含nova,neutron,cinder等不一样,可以理解成kubevirt是一个k8s框架下的,用go写的nova vm管理组件。

一、Kubevirt的架构

 

  • 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对应着一个VMI, kubelet只是负责virt-lanuncher pod运行状态,不会去关心VMI创建情况。

virt-handler会根据CRD参数配置去通知virt-lanuncher去使用本地libvirtd实例来启动VMI, virt-lanuncher就会如果pid去管理VMI,pod生命周期结束,virt-lanuncher也会去通知VMI去终止。

每个virt-lanuncher pod对应一个libvirtd,virt-lanuncher通过libvirtd去管理VM的生命周期,这样做到去中心化,不再是以前虚拟机那套做法,一个libvirtd去管理多个VM。

  • virtctl

virctl 是kubevirt自带类似kubectl命令,它是越过virt-lancher pod这层去直接管理vm,可以控制vm 的start、stop、restart。

总结: kubevirt以CRD形式将VM管理接口接入到kubernetes,通过一个pod去使用libvirtd管理VM方式,实现pod与VM的一对一对应,做到如同容器一般去管理虚拟机,并且做到与容器一样的资源管理、调度规划,这个整体与企业iaas关系不大,也方便企业接入

二、Kubevirt如何管理虚拟机?

虚拟机镜像采用容器镜像形式存放在镜像仓库中。创建原理如上图所示,将Linux发行版本的镜像文件存放到基础镜像的/disk目录内,镜像格式支持qcow2、raw、img。通过Dockerfile文件将虚拟机镜像制作成容器镜像,然后分别推送到不同的registry镜像仓库中。客户在创建虚拟机时,根据配置的优先级策略拉取registry中的虚拟机容器镜像,如果其中一台registry故障,会另一台健康的registry拉取镜像。

虚拟机生命周期管理

 

KubeVirt虚拟机生命周期管理主要分为以下几种状态:

上述架构里其实已经部分简述了VM的创建流程,以下进行流程梳理:

  1. K8S API 创建VMI CRD对象
  2. virt-controller监听到VMI创建时,会根据VMI配置生成pod spec文件,创建virt-launcher pods
  3. virt-controller发现virt-launcher pod创建完毕后,更新VMI CRD状态
  4. virt-handler监听到VMI状态变更,通信virt-launcher去创建虚拟机,并负责虚拟机生命周期管理

 

虚拟机创建分为创建DataVolume和VMI两个流程:

  1. 创建DataVolume后,CDI组件创建对应的PVC并且关联到合适的PV,然后通过临时Importer Pod拉取虚拟机容器镜像绑定到DataVolume生成的PV中,并且将镜像转换成disk.img文件存储在PV中供虚拟机使用。
  2. 创建VMI后,等待disk.img转换成功,然后在对应的Node上启动Launcher Pod,并将CDI流程生成的PV挂载到Pod内,当做虚拟机启动的系统盘。Launcher根据VMI的定义生成定义虚拟机的XML文件,然后调用libvirt进程调用Qemu命令创建并且启动虚拟机。VMI会对Launcher Pod状态进行同步,反应VM运行的状态

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iNavFlight之RC遥控MSP协议

iNavFlight之RC遥控MSP协议1. RC摇杆MSP协议2. 地面站配置 & MSP遥控器2.1 iNav地面站-配置2.2 iNav地面站-MSP遥控器3. RC摇杆总体逻辑框架4. RC摇杆代码设计框架5. MSP摇杆代码设计5.1 rxMspInit5.2 rxMspFrameStatus5.3 rxMspReadRawRC5.4 rxMspFrameReceive6. 整体Rx业…

中医药信息网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 网站前台:关于我们.、联系我们.、宣传资料、中药信息、方剂信息、名医信息 管理员功能: 1、管理…

科技向善:用OpenVINO减少食物浪费

作者:Anisha Udayakumar 翻译:张晶 项目背景 您是否知道每年大约有2300亿美元的食物被浪费,其中高达五分之一属于可食用农产品?我们都在自己的家中经历过某种类型的食物浪费,但最大量的浪费发生在杂货店的新鲜食品和…

多网点跨区域远程监测?银行监测一步到位,太方便了

随着人民生活水平不断提高,金融行业得到不断发展,同时对其业务能力提出更高的要求,因此银行的组织架构也不断扩充,各大银行的基本架构可为总行、省分行、市支行、分理处、ATM网点组成。 建设一套数据中心与分行及营业网点的机房监…

Polygon zkEVM 审计及递归证明

1. 引言 Polygon zkEVM自2022年12月1日已开始审计,为未来的主网上线做准备。审计公司有2个:Spearbit和Hexens,审计的内容有: Polygon zkEVM采用模块化设计,审计的内容主要分为: client端:包括…

类加载器、类加载器的过程、类加载的分类、双亲委派模型

文章目录1.类加载器1.1类加载器1.2类加载的过程1.3类加载的分类1.4 双亲委派模型1.5 ClassLoader 中的两个方法1.类加载器 1.1类加载器 作用 负责将.class文件(存储的物理文件)加载到内存中 1.2类加载的过程 类加载时机 创建类的实例(对象…

【内网安全-通讯上线】通讯上线基础知识

目录 一、基础知识 1、关键词: 2、代理技术 3、IP隧道技术 4、使用场景 二、示例 1、不出网上线 1)理论: 2)示例: 三、代理技术 1、dome 2、第一步:网络通讯 3、第二步:控制上线 …

word插件grammerly,边写论文边修改语法

下载网址:报错信息 下载网址:Grammarly for MS Office | Grammarly 官网安装提示: Install Grammarly for all users by following these steps: Uninstall your current version of the Grammarly add-in via Control Panel > Program…

叶酸偶联壳聚糖载多西他赛纳米粒(FA-CTS/DTX)纳米粒

叶酸偶联壳聚糖载多西他赛纳米粒(FA-CTS/DTX)纳米粒 中文名称:叶酸偶联壳聚糖载多西他赛纳米粒纳米粒 英文名称:FA-CTS/DTX 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体 包装&#xf…

大学生网页作业成品——基于HTML网上书城项目的设计与实现

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

不带www的顶级域名跳转到www域名上

背景:百度收录有时候会收录不带www的顶级域名,这个时候如果不做处理就会导致域名权重分散,尤其是当本身域名权重不高的时候,更不容易让网站参加排名或者排名好一些.这个时候就需要进行301重定向的配置了,本次带来的是主要是通过伪静态文件进行301跳转的方法. 伪静态文件配置方…

苹果电脑数据库管理Navicat Premium中文

Navicat Premium中文是一款好用的数据库管理工具。将此工具连接数据库,可以从中看到各种数据库的详细信息。包括报错,等等。当然,你也可以通过他,登陆数据库,进行各种操作。Navicat Premium是一个可多重连线资料库的管…

易基因|NSUN2介导RNA m5C修饰促进食管鳞状细胞癌进展的表观调控机制 | 肿瘤研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2021年8月3日,中山大学肿瘤防治中心华南肿瘤学国家重点实验室研究团队在《Oncogene》杂志发表了《NSUN2-mediated RNA 5-methylcytosine promotes esophageal squamous cell …

C盘容量不足,怎么增加c盘空间?看这5个方法

在电脑磁盘中,C盘属于系统磁盘,许多应用软件的默认安装路径都是C盘。随着时间的推移,C盘的可用空间会越来越小,系统会越来越卡,甚至影响电脑的运行效率。因此,我们必须采取行动来增加C盘空间,以…

创米数联创业板IPO被终止:曾拟募资6.44亿 小米是重要股东

雷递网 雷建平 12月13日上海创米数联智能科技发展股份有限公司(简称:“创米数联”)日前IPO被终止,其曾在2022年6月递交招股书,准备在深交所创业板上市。创米数联曾计划募资6.44亿元,其中,4.06亿…

Go项目实战:01-聊天室

实现一个聊天室(群): 功能分析: 1、上线下线2、聊天:其他人和自己都可以看到聊天消息3、查询当前的聊天室用户所有人的名字4、可以修改自己的名字5、超时潜水踢出机制 技术点分析: 1、socket tcp编程2、…

ADI Blackfin DSP处理器-BF533的开发详解51:图像处理专题-CMOS摄像头采集图像(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 板卡上设计了一个摄像头接口,可以连接与板卡匹配的 ADSP-EDU-CMOS 子卡板。摄像头接口采用 20PIN 插针接入,将插…

基于android的二手车交易系统app-计算机毕业设计

项目介绍 该二手车信息软件采用JSP Tomcat MysqlAndroid开发环境开发,是一款展示二手车信息,并提供卖方联系方式,让买家更方便地找到合适的二手车主的软件,系统分为前端和后端,前端采用了安卓技术开发,在…

jfinal整合IJPay paypal支付

这里写目录标题环境准备1.注册paypal账户2.登录开发者中心3.创建沙箱账户4.在沙箱模式创建一个app,平台默认创建好了一个4.1填写信息4.2绑定某个沙箱账号4.3Client ID及Secret支付代码1.pom2.实例化配置3.支付订单3.1用sandbox的personal的账号登录,并支…

你说精通MySQL其实很菜jī(1):你不一定会的基本技巧或知识点(值得一看)

你说精通MySQL其实很菜jī(1):你不一定会的基本技巧或知识点(值得一看)《你说精通MySQL其实很菜jī》系列文章(持续更新)一、前言二、技巧或知识点汇总1、MySQL客户端(Client&#x…