一、kubevirt 存储

kubevirt 提供很多种存储方式,存储就决定了你使用虚拟机镜像到底什么内核、什么版本,以下主要讲述我看到三种比较常用的形式

虚拟机镜像(磁盘)是启动虚拟机必不可少的部分,目前 KubeVirt 中提供多种方式的虚拟机磁盘。

  • cloudInitNoCloud/cloudInitConfigDrive:用于提供 cloud-init 初始化所需要的 user-data,使用 configmap 作为数据源,此时VMI 内部将出现第二块大约为356KB的第二块硬盘

dataVolume:虚拟机启动流程中自动将虚拟机磁盘导入 pvc 的功能,在不使用 DataVolume 的情况下,用户必须先准备带有磁盘映像的 PVC,然后再将其分配给 VM 或 VMI。dataVolume 拉取镜像的来源可以是HTTP、PVC。

PersistentVolumeClaim: PVC 做为后端存储,适用于数据持久化,即在虚拟机重启或关机后数据依然存在。PV 类型可以是 block 和 filesystem,为 filesystem 时,将使用 PVC 上的 disk.img,格式为 RAW 格式的文件作为硬盘。block 模式时,使用 block volume 直接作为原始块设备提供给虚拟机。缺点在于仅支持RAW格式镜像,若镜像较大CDI 导入镜像会比较慢(如果是QCW2 CDI 内部机制qemu.go 会将其进行格式转换为RAW并导入PVC中),因此降低快速创建 VMI 体验感

ephemeral、containerDisk: 数据是无法持久化,故在存储选型上,我们采用 CEPH 作为后端存储,通过调用Ceph CSI 插件创建 PVC 卷方式管理虚机磁盘设备。Ceph CSI 插件实现了容器存储编排与Ceph集群交互的接口,它可以为容器应用分配 存储集群中的存储空间,同时在选择 Ceph-CSI 版本需要考虑到当前 K8S 版本、及 CEPH 版本号

  • registryDisk

定义image来创建虚拟机的root disk。 virt-controller会在pod定义中创建registryVolume的container,container中的entry服务负责 将spec.volumes.registryDisk.image转化为qcow2格式,路径为pod根目录。

kubevirt 提供了registryDIsk的基础镜像: registry-disk-v1alpha, 根据Dockerfile形式去创建虚拟机镜像,以下是window镜像demo Dockerfile

FROM kubevirt/registry-disk-v1alpha
COPY Windows---server-2012-datacenter-64bit-cn-syspreped---2018-01-15.qcow2 /disk/windows2012dc.img

这个最终我们构建成镜像名:windows2012dc:latest , 最终在CRD表现形式是这样的

kind: VirtualMachineInstance
...
spec:domain:devices:disks:- disk:bus: virtioname: registrydiskvolumeName: registryvolume
... - name: registryvolumeregistryDisk:image: windows2012dc:latest
  • PVC

PVC是持久化存储镜像的形式,它会被挂在到pod中,且格式必须满足/disk/*.img,这样kubevirt才能够实现虚拟机存储

  • CDI

CDI是kubevirt自己提供的一种形式, 把registryDisk 转换为PVC,这个需要消耗时间去讲镜像转换为PVC持久化存储下

二、网络

虚拟机网络就是pod网络,virt-launcher pod网络的网卡不再挂有pod ip,而是作为虚拟机的虚拟网卡的与外部网络通信的交接物理网卡,virt-launcher实现了简单的单ip dhcp server,就是需要虚拟机中启动dhclient,virt-launcher 服务会分配给虚拟机。

kubernetes是Kubevirt 底座,提供了管理容器和虚拟机的混合部署的方式,存储和网络也是通过集成到kubernetes中, VMI 使用了POD进行通信。为了实现该目标,KubeVirt 的对网络做了特殊实现。虚拟机具体的网络如图所示, virt-launcher Pod 网络的网卡不再挂有 Pod IP,而是作为虚拟机的虚拟网卡的与外部网络通信的交接物理网卡

在当前的场景我们使用经典的大二层网络模型,用户在一个地址空间下,VM 使用固定IP,在OpenStack社区,虚拟网络方案成熟,OVS 基本已经成为网络虚拟化的标准。所以我门选择目前灵雀云(alauda) 开源的网络方案:Kube-OVN,它是基于OVN的Kubernetes网络组件,提供了大量目前Kubernetes不具备的网络功能,并在原有基础上进行增强。通过将OpenStack领域成熟的网络功能平移到Kubernetes,来应对更加复杂的基础环境和应用合规性要求

网络 VLAN underlay

在网络平面,管理网和 VMI 虚拟机流量分开,其中使用Vlan 模式的 underlay 网络,容器网络可以直接通过 vlan 接入物理交换机

虚拟机固定IP

k8s的资源是在运行时才分配ip的,但是笔者希望能够对虚拟机的ip进行绑定从而实现固定ip的目的。为此,我们首先正常创建虚拟机,在虚拟机运行时k8s会为之分配ip,当检测到虚拟机的ip后,我们通过替换vmi的配置文件的方式将ip绑定改虚拟机中。但是在实际操作时会报出如下错误:

Invalid value: 0x0: must be specified for an update

实际上 Kubernetes API Server是支持乐观锁(Optimistic concurrency control)的机制来防止并发写造成的覆盖写问题,因此在修改的body中需要加入metadata.resourceVersion,笔者的做法是首选调用 read_namespaced_virtual_machine方法获取metadata.resourceVersion,其次再修改body。具体方案可参考:

https://www.codeleading.com/article/27252474726/

三、监控

Kube-handler会去调用当前节点下所有虚拟机的libvirt API,获取虚拟机的监控指标,并提供metrics 接口,最后通过kubevirt-prometheus-metrics聚合所有节点的kube-handler的指标数据,提供给prometheus使用

kubevirt 存储 网络 监控相关推荐

  1. 树莓派usb摄像头网络监控(定时拍照+网络存储)

    (一)树莓派使用USB摄像头 说明最好是linux下能支持的uvc摄像头,我用的uvc301的摄像头,linux下一般免驱. 1.首先更新firmware: rpi-update是老外开发的一个更新树 ...

  2. 百度网络监控实战:NetRadar横空出世(上)

    原文:https://mp.weixin.qq.com/s/VBShicsqReDtureKAdEgDA 转自订阅号「AIOps智能运维」,已授权运维帮转发 作者简介:运小贝,百度高级研发工程师 负责 ...

  3. 揭秘双11丝滑般剁手之路背后的网络监控技术

    简介:本篇将重点介绍Hologres在阿里巴巴网络监控部门成功替换Druid的最佳实践,并助力双11实时网络监控大盘毫秒级响应. 概要:刚刚结束的2020天猫双11中,MaxCompute交互式分析( ...

  4. 可信赖的服务器监控系统,可信赖的网络监控系统,源于专业和专注.PDF

    可信赖的网络监控系统,源于专业和专注.PDF 可信赖的网络监控系统,源于专业和专注 中科网警IT 运维系统 监测器详解 20 12.07 可信赖的网络监控系统,源于专业和专注 目录 前言 4 使用许可 ...

  5. linux 网络块存储,网络存储集群

    网络存储分类: 按网络拓扑分类: 1.DAS:直接附加存储:优点:技术简单.传输速率高:缺点:存储设备与磁盘相互绑定. 2.NAS:网络附加存储:优点:技术相对简单.不要求存储设备直连本机,只需网络访 ...

  6. 观察者模式在android网络监控下的运用

    github:https://github.com/shonegg/NetMonitor 一.对观察者模式的理解: 1.观察者模式,又叫发布-订阅(Publish/Subscribe)模式,定义的是对 ...

  7. 思科 mds 虚拟服务器,保护、扩展、简化,思科MDS9000系列交换机,刷新存储网络新标准!...

    原标题:保护.扩展.简化,思科MDS9000系列交换机,刷新存储网络新标准! "少花钱,多办事"意味着现在 IT 经理们要用越来越少的预算确保网络的性能.可扩展性.以及智能化水平. ...

  8. 数字网络监控和传统模拟监控的区别

    闭路电视监控系统与数字监控系统的对比和区别 模拟监控系统.数字监控系统和网络监控系统特点 1 .模拟监控系统 传统的模拟监控系统发展到今天,已经非常成熟了.模拟监控系统一般由前端设备.传输电缆.切换控 ...

  9. 虚拟网络监控进阶之路-DeepFlow

    监控对于我们来说到底有多重要? 网络监控是企业IT运维中必不可少的重要一环,传统的监控工具以监控各个服务的健康和性能为中心.而随着数字化时代的到来,我们需要一个更加全面的监控视图,能够把不同环境下所有 ...

最新文章

  1. javap 查看class文件的字节码命令用法
  2. PPT插入文本框但是字体并不是想要的
  3. linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面
  4. [Reprint] 探寻C++最快的读取文件的方案
  5. 辍学程序员改变世界,这位长得像马云的90后要击败Facebook的扎克伯格了…
  6. vue获取table一列数据_vue表格含有一列多选框,如何获取被选中的行的数据?
  7. js将中文转换成编码 java解析_JS实现的汉字与Unicode码相互转化功能分析
  8. 解题报告 Lights
  9. ie8 js未指明的错误_win7系统IE8,js报错:“属性值中不能使用字符''。”求帮助。...
  10. JavaScript数据类型之typeof检测变量数据类型(5)
  11. tiny core linux 7.1,极度简约 最小 Linux 发行版 Tiny Core Linux 7.1 发布
  12. 【渝粤教育】国家开放大学2018年春季 0420-22T酒店管理概论 参考试题
  13. 安装mysql的zip包
  14. 用python语言提取千位数_C语言怎样提取一个数的十位个位百位千位?
  15. WinRAR v5.40 官网无广告弹窗正式版
  16. Chrome 页面呈现原理与性能优化(内附分享 ppt)
  17. 2021-2027全球与中国抽屉五金市场情况与未来趋势研究报告
  18. 【实例学模式】一针见血装饰器模式
  19. HTML+CSS鼠标悬停效果
  20. 满意度调查中的NPS题目怎么设置?

热门文章

  1. 1096:数字统计(C C++)
  2. 【高级软件工程课后作业】
  3. Windows Terminal + WSL2 + CENTOS 配置Windows命令终端
  4. 也说说互联网产品开发中的设计
  5. Tansat XCO2数据下载
  6. 当“国风综艺”遇上“数字金融”,看国有大行解锁营销新范式
  7. 区块链学习——区块链的架构
  8. 跟谁学盈利神话已破,烧钱大战没有赢家
  9. SRM 719 div2 Hard (01Trie,最大异或和)
  10. html页面导出文件大小,【实战】通过 JS 将 HTML 导出为 PDF 文档