1
2
3
4
5
作者:李晓辉

微信联系:lxh_chat

联系邮箱: 939958092@qq.com

OpenShift Virtualization能用管理容器的那些工具和方法来搞定虚拟机(VMs),简直就是“一招鲜,吃遍天”!这样一来,管理员和开发者就能把基础设施管理都集中起来,方便得很,我们快来看看它都有哪些组件构成吧~

Virtualization Operator

OpenShift Virtualization Operator也是个关键角色。下面这张图展示了一些它的组成部分,感觉就像是它的“装备库”,有了这些,它就能把各种操作安排得明明白白的。

virt-api

这个家伙就像是整个集群的“大管家”,专门负责管理虚拟机(VM)和跟虚拟机相关的那些事儿。它通过HTTP RESTful接口,让管理员可以很方便地操作和管理集群里的虚拟机。它还负责更新那些自定义资源定义(CRD),确保虚拟机实例(VMI)的CRD能正常工作,像是给虚拟机的“出生证”和“身份证”做审核和更新,确保它们符合规定。

virt-controller

这个组件就是“总指挥官”,负责整个集群的虚拟化功能,还管着那些跟虚拟机实例(VMI)相关的Pod的生命周期。简单来说,就是它来安排Pod的“出生、成长、消亡”,确保虚拟机对象能顺利运行。它还会创建Pod,让虚拟机对象在里面好好“施展拳脚”。

virt-handler

这个是“基层工作者”,它以DaemonSet的形式运行在每个节点上,就像在每个“工作站”上都有它的身影。它时刻盯着虚拟机对象的状态,一旦发现有啥变化,就会马上行动,确保虚拟机对象达到想要的状态。有点像一个勤快的“维修工”,随时准备解决问题。

virt-launcher

这个是虚拟机实例(VMI)相关Pod里的“核心力量”。它主要负责给VMI进程提供“家”(控制组cgroups和命名空间),让VMI能顺利运行。当virt-handler把虚拟机对象传递给它的时候,它就会启动一个本地的libvirtd实例,把VMI给“安排”进去。然后,它还会一直盯着VMI进程,直到VMI结束运行。就像一个“保姆”,从头到尾照顾着VMI。

libvirtd

这个是每个VMI Pod里的“管家”,专门负责管理VMI进程的生命周期。它就像是一个“贴身管家”,确保VMI进程能顺利运行,从开始到结束都照顾得无微不至。

HyperConverged Operator(HCO)

它简直就是整个系统的“大脑”!它负责搞定好多重要的资源,让整个虚拟化环境能顺利运行,让我给你好好讲讲这些资源都是干啥的:

deployment/hco-webhook

这个东西就像是个“质检员”,专门负责检查HyperConverged自定义资源的内容,确保它们都是符合要求的。简单来说,就是给资源做个“体检”,看看有没有啥问题,保证它们能正常工作。

deployment/hyperconverged-cluster-cli-download

这个资源就是个“快递员”,它把virtctl工具的二进制文件送到集群里,这样你就可以直接从集群里下载这个工具了。有了它,管理员就能很方便地操作虚拟机,就像有了个“万能钥匙”。

kubevirt/kubevirt-kubevirt-hyperconverged

这个资源就是个“百宝箱”,里面装着OpenShift Virtualization需要的所有Operators、自定义资源(CRs)和对象。有了它,整个虚拟化环境就能顺利运行,就像有了个“大管家”,把所有东西都安排得明明白白。

ssp/ssp-kubevirt-hyperconverged

这个是Scheduling, Scale, and Performance(SSP)的自定义资源,主要负责调度、扩展和性能相关的功能。简单来说,就是让整个系统能高效地运行,确保虚拟机的性能和资源分配都能达到最佳状态。

cdi/cdi-kubevirt-hyperconverged

这个是Containerized Data Importer(CDI)的自定义资源,主要负责数据导入的功能。它能让管理员很方便地把数据导入到虚拟机里,就像有个“搬运工”,把数据从一个地方搬到另一个地方。

networkaddonsconfig/cluster

这个资源是Cluster Network Addons Operator 的“指挥棒”,它告诉 Operator 该怎么做,同时也会被 Operator 管理。简单来说,就是负责集群网络的扩展功能,确保网络能顺利运行,让虚拟机之间的通信畅通无阻。

Operator CRs

安装HyperConverged Operator(HCO)的时候,你选的那些选项决定了会部署哪些Operators。这就像是在搭建一个乐高城堡,你选了哪些积木,最后就能搭出什么样的城堡。

比如,如果你选择了需要数据导入的功能,那CDI(Containerized Data Importer) Operator 就会被部署,这样你就能很方便地把数据导入到虚拟机里。要是你选了需要高性能调度的功能,那SSP(Scheduling, Scale, and Performance)相关的 Operator 就会登场,帮你搞定性能优化。

简单来说,HCO安装的时候你做的选择,就像是给系统“点菜”,你点了啥,系统就给你准备啥。这样就能确保你只部署你需要的功能,不会有多余的东西,让整个系统既高效又简洁。

virt_operators

默认设置里包括了这些 Operator 的自定义资源(CRs),它们各有各的“看家本领”,一起来看看它们都是怎么干活的:

Containerized Data Importer (CDI)

这个CDI Operator 就像个“搬运工头儿”,主要负责管理把虚拟机磁盘上传到持久卷声明(PVC)的权限。它还能指挥外部磁盘上传的流量,把它们引导到合适的上传服务器Pod,确保数据能准确无误地写入正确的PVC。而且,当创建数据卷的时候,CDI还会提供一个“帮手”Pod,帮忙把虚拟机镜像导入到PVC里。这就像是有个“快递小哥”,把虚拟机镜像这个“包裹”送到该去的地方。

Hostpath Provisioner (HPP)

要是你手头没有网络存储,那HPP Operator 就能派上大用场。你可以把它部署到集群里,让虚拟机用节点的本地存储。HPP Operator 会提供一个部署资源,给每个要运行HPP的节点安排一个“工人”Pod。这些Pod会把节点上的存储挂载起来,方便虚拟机使用。而且,HPP Operator 还会部署两个带有驱动接口的DaemonSet,就像是给每个节点都安排了“本地存储管理员”,让本地存储的管理变得轻松又高效。

Cluster Network Addons

这个 Operator 就像是集群网络的“装修队”,负责在集群里部署网络组件,还管理着跟扩展网络功能相关的资源。有了它,集群的网络功能就能变得更加丰富和强大,就像是给房子装上了更高级的水电系统,让网络运行得更顺畅。

Scheduling, Scale, and Performance (SSP)

SSP Operator 就像是个“全能管家”,它会部署一些通用的模板、默认的启动源、流水线任务,还有模板验证器。这就像是给系统准备了一套“标准操作流程”,让虚拟机的调度、扩展和性能优化都能按照既定的规则顺利进行,确保整个系统运行得既高效又稳定。

好的,基本组件就介绍到这里了,下一篇,我们将来真正的安装之旅~