kubernetes + kubevirt-0.58.0 部署

本文详细介绍了如何在 Kubernetes 集群上部署 kubevirt 0.58.0 版本,包括组件介绍、部署流程和客户端工具安装。内容涵盖 virt-api、virt-controller、virt-launcher 和 virt-handler 的功能,以及 virtctl 和 kubectl krew 插件的安装与验证。

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

目的

在 kubernetes 上部署 kubevirt 0.58 版本

资料

kubernetes 上部署 kubevirt 运行虚拟机
multus github 官方文档 (当只使用了 fannel 网络)
multus 用户手册
kubevirt github官方地址
kubevirt 用户手册

架构

在这里插入图片描述

说明

virt-api: 提供 HTTP RESTful 在集群内对 vmi 进行管理
virt-controller: 用于管理 k8s 中 VMI 的生命周期
virt-handler:这是一个在每个Kubernetes节点上运行的守护程序。它负责根据Kubernetes监控VMI的状态,并确保相应的 libvirt domain 相应地启动或停止。为了执行这些操作,virt处理程序与每个virt启动器都有一个通信通道,用于管理virt启动器pod中qemu进程的生命周期。
virt-launcher: 该组件直接管理VMI的pod中qemu进程的生命周期,并从virt 处理程序接收生命周期命令。

kubevirt 功能

1 客户端向 K8s API 服务器提交新的 VMI 定义
2 K8s API服务器验证输入并创建 VMI 自定义资源
3 virt-controller 检查 VMI 创建资源对象,并创建相应的pod
4 Kubernetes 调度 node 节点的 pod
5 virt-controller 观察到 VMI 的 pod 已启动并更新 VMI 对象中的nodeName字段。当设定了 nodeName,由 virt-handler 负责响应进一步的动作
6 virt-handler (DaemonSet)观察到 VMI 被分配给了运行它的主机
7 virt-handler 使用VMI规范,并使用 VMI 的pod中的 libvirtd 实例发出创建相应 domain 的信号
8 客户端通过 virt-api-server 删除 VMI 对象
9 virt-handler 收到删除信息并关闭 domain

组件

virt-api-server

作为所有虚拟化相关工作的入口 HTTP API 服务器
API服务器负责更新与虚拟化相关的自定义资源(CRD)
作为 KubeVirt 的主要入口,它负责默认和验证提供的 VMI CRD

VMI (CRD)

VMI 在Kubernetes API服务器定义自定义资源
VMI定义定义了虚拟机本身的资源

机器类型架构
CPU 类型
可用 RAM, CPU
网卡数量

virt-controller

controller 负责监控 VMI (CRs) 管理相关联的 POD
目前 controller 负责创建及管理相关的 VMI 对象的生命周期
VMI对象在其生命周期内始终与 pod 关联,然而,由于VMI的迁移

virt-launcher

每个 VMI 对象创建一个 POD
这个pod的主容器运行 virt-launcher KubeVirt 组件
Kubernetes或kubelet本身并不运行VMI
集群中每个主机上的守护程序将负责为与VMI对象相关联的每个pod启动VMI进程
virt-launcher Pod 的主要目的是提

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值