KubeVirt 热迁移零中断!Kube-OVN 如何实现无感热迁移?

云原生虚拟化的最佳拍档:Kube-OVN + KubeVirt Kube-OVN 由于使用了在传统虚拟化网络中得到广泛使用的 OVN/OVS,在开源后得到了很多 KubeVirt 用户的关注,一部分前沿的 KubeVirt 用户根据自己的使用场景进一步完善了 Kube-OVN 的网络能力。本文系统总结了 Kube-OVN 社区中针对 KubeVirt 优化的功能,可以帮助用户很好的解决云原生虚拟化面临的难题。... 阅读详情

在虚拟机的使用场景中,热迁移可以将虚拟机从一个节点迁移到另一个节点,以便进行诸如节点维护、系统升级和故障转移等操作。然而,KubeVirt 在热迁移过程中面临以下挑战:

  • KubeVirt 默认不支持Bridge网络模式虚拟机进行热迁移。

  • KubeVirt 本身仅处理内存和磁盘迁移,没有针对网络迁移进行特定优化。

  • 若虚拟机的 IP 在迁移过程中发生变化,则无法实现无感热迁移。

  • 若网络在迁移过程中中断,则无法实现无感热迁移。

Kube-OVN 通过在虚拟机迁移过程中针对上述问题进行了专门处理,用户能够实现无感知的热迁移。经过测试,网络中断时间可以控制在 0.5 秒以内,且不会出现 TCP 链接中断。

使用方法

用户只需在 VM Spec 中添加注解 kubevirt.io/allow-pod-bridge-network-live-migration: "true" 的annotation,Kube-OVN 将在网络迁移过程中自动处理。

1、创建VM

    kubectl apply -f - <<EOFapiVersion: kubevirt.io/v1kind: VirtualMachinemetadata:  name: testvmspec:  runStrategy: Always   template:    metadata:      labels:        kubevirt.io/size: small        kubevirt.io/domain: testvm      annotations:        kubevirt.io/allow-pod-bridge-network-live-migration: "true"    spec:      domain:        devices:          disks:            - name: containerdisk              disk:                bus: virtio            - name: cloudinitdisk              disk:                bus: virtio          interfaces:          - name: default            bridge: {}        resources:          requests:            memory: 64M      networks:      - name: default        pod: {}      volumes:        - name: containerdisk          containerDisk:            image: quay.io/kubevirt/cirros-container-disk-demo        - name: cloudinitdisk          cloudInitNoCloud:            userDataBase64: SGkuXG4=EOF

    2、 SSH 进入虚拟机,并测试网络联通性

      # password: gocubsgovirtctl ssh cirros@testvmping 8.8.8.8

      3、在另一个终端中执行迁移,并观察虚拟机的网络联通性

        virtctl migrate testvm

        可以观察到,在虚拟机热迁移过程中,SSH 连接保持不中断,且ping 只是偶尔出现丢包的情况。

        热迁移原理

        Kube-OVN在热迁移过程中借鉴了《实时迁移--通过多机箱端口绑定减少停机时间》的灵感。

        为确保迁移过程中源虚拟机和目标虚拟机的网络一致,在迁移过程中网络中会同时存在两个相同的IP 地址。在这个过程中需要处理网络冲突和流量混乱的问题。具体步骤如下:

        1、KubeVirt 发起迁移,并在目标机器上创建相应的 Pod。

        图片

        2、Kube-OVN 检测到该 Pod 是热迁移的目标 Pod,并复用源 Pod 的网络端口信息。

        图片

        3、Kube-OVN 设置流量复制,以便网络流量会同时复制到源 Pod 和目标 Pod。以减少网络切换时带来的中断时间。同时将目标 Pod 的网络端口暂时禁用,因此目标 Pod 实际上不会接收复制的流量,避免流量混乱。

        图片

        4、KubeVirt 进行VM内存同步。

        图片

        5、KubeVirt 完成内存同步并停用源Pod。此时,源 Pod 将不再处理网络流量。

        图片

        6、KubeVirt 激活目标 Pod。此时,libvirt 发送 RARP 以激活目标 Pod 的网络端口,目标 Pod 开始处理流量。

        图片

        7、KubeVirt 删除源 Pod,完成热迁移。Kube-OVN 通过Watch Migration CR监听迁移完成事件,并在迁移完成后停止流量复制。

        图片

        在这个过程中,网络中断主要发生在步骤 5 和 6 之间。网络中断时间主要取决于 libvirt 发送 RARP 所需的时间。经过测试,网络中断时间可以控制在 0.5 秒以内,且由于 TCP 重试机制,TCP 连接不会中断。

        实践案例 | 基于天翼云边缘计算场景,Kube-OVN社区最新拓展特性一览 在 All-in-K8s 后,电信天翼云团队正借助 Kube-OVN 搭建云原生网络架构。作为社区核心贡献者,Kube-OVN Committer,范日明详细分享了半年来,基于天翼云边缘计算场景,拓展的如访问控制、高可用虚拟... 阅读详情

        相关推荐

        【信息科学与工程学】【解决方案】【通信工程】第三百四十四篇 公有云网络工程 1001 示例

        ​GPU部署原则​:通用AI服务:共享GPU池 + 时间片调度敏感计算任务:租户独占GPU(通过PCIe透传)​私有化部署​:提供Air Gap模式安装包(支持完全离线)关键数据本地化存储,仅同步元数据​租户隔离​:金融/政府租户:物理隔离(专属节点+独立数据库)普通企业租户:逻辑隔离(命名空间+服务网格策略)​安全增强​:租户操作审计日志强制上链(区块链存证)敏感字段客户端加密(避免服务端接触明文)

        weixin_49199313的博客 3410

        【云原生 · Kubernetes】KubeVirt热迁移

        在控制台登录提示符中提到了默认用户“cirros”及其密码,请使用它们登录。是KubeVirt支持的一个常见虚拟化特性,在这个特性中,运行在一个集群节点上的虚拟机可以移动到另一个集群节点上,而不需要关闭来宾操作系统或其应用程序。注意,原始的virt启动器吊舱已经进入Completed状态,虚拟机现在正在minikube节点上运行。及其密码,请使用它们登录。将正在运行的虚拟机从一个节点移动到另一个节点的能力,而不需要重新启动正在运行的应用程序。在多节点环境中,了解在哪个节点上运行pod是很有帮助的。

        念舒C.ying 2654

        【精品】k8s的pod迁移与节点停机维护

        通过学习,了解pod迁移与节点停机维护的场景,以及需要注意的事项。

        Friendsofthewind的博客 1908

        kubevirt(四)热插拔卷(hotplug volume)

        kubevirt热插拔卷

        NUCEMLS的博客 2368

        用HFSS仿真平面线圈的电感量

        平面线圈是指在平面上绕制而成的线圈,如PCB上的电感线圈、无线供电使用的金属丝绕制而成的线圈等。根据线圈的不同形状可将平面线圈分为方形线圈,六角形线圈、八角形线圈、螺旋原型线圈等。

        johnboat的专栏 1万+

        TOEIC托业词汇汇总(完整版)

        1.appointment 约会,约定2.attendance 出席人数;出席3.cabinet 橱柜4.calendar 日历;月历;行事历5.clerk 办事员,书记6.directory 人名住址薄7.duplicte 复制;副本8.filing 归档9.in-tray 待处理文件盒10.monitor 检测;监视;追踪11.out-tray 已处理文件盒12.partition 分隔;分隔物(如墙壁等)13.postage 邮费。

        weixin_39676449的博客 1万+

        docker热迁移_CRIU实现热迁移

        介绍CRIUCRIU(Checkpoint/Restore In Userspace)是Linux上的一个软件。它可以用来暂停运行中的容器或者是进程,根据CRIU暂停生成的文件从断点恢复容器或者是进程,然后继续执行。环境安装实验涉及两台电脑(虚拟机)因此两台电脑间的通信使用NFS(network file system)。容器就使用docker 17.06.0。CRIU的版本选择3.14。两台虚拟...

        weixin_42499335的博客 1161

        MATLAB不能识别已安装的visual studio 2015解决方法

        首先,对于MATLAB识别已经安装的vs版本通过命令: mex -setup 下图为本电脑下同时安装的两个visual studio 如果搞清楚MATLAB识别电脑上安装vs的过程,可通过命令: mex -setup -v MATLAB输出识别编译器的整个过程。其中HKLM和HKCU分别是注册表中的HKEY_CURRENT_USER,HKEY_LOCAL_MA…的缩写,MATLAB没有找到对应编译器是由于注册表里没有对应信息(主要是文件路径,C++编译器的路径),或者在注册表里存在该信息,但是找不到

        qq_36320710的博客 4895

        kubevirt实现vm节点迁移,Message: cannot migrate VMI which does not use masquerade to connect to the pod报错

        【代码】kubevirt实现vm节点迁移,Message: cannot migrate VMI which does not use masquerade to connect to the pod报错。

        scDN121的博客 620

        中文顶刊《会计研究》文本分析技术最新进展总结盘点

        会计研究》是由中华人民共和国财政部主管、中国会计学会主办的国家一级学术期刊,为会计领域中文顶级期刊。随着大数据技术的日益成熟, 社交网络类文本 、上市公司披露类文本、媒体报道类文本、 其他类文本 、网络搜索数据、P2P 网络借贷文 本与分析师报告等文本数据逐渐成为财务会计的研究素材。

        qq_52891550的博客 2891

        2026年数字IC设计华为笔试带答案解析

        这篇文章是一份数字IC设计工程师笔试的试卷结构和部分题目解析。试卷包含单选题31题(每题2分)、多选题10题(每题4分)和简答/编程题4题(每题7分),总分130分,考试时长120分钟。 摘要重点: 试卷涵盖数字IC设计的关键知识点,包括Verilog语法、时序逻辑、状态机设计、跨时钟域处理等; 题目解析详细说明了各选项的正确性,如非阻塞赋值特性(D错误)、功耗影响因素(C与组合逻辑级数弱相关)等; 包含实际工程问题,如DDR4接口电平(SSTL-1.2)、卡诺图变量排序(格雷码)等; 部分题目考察基础概念

        Open 369

        kubevirt(三)迁移(migration)

        kubevirt虚拟机迁移分析

        NUCEMLS的博客 2823

        基于DNN神经网络的多输入多输出数据回归预测(附带Matlab代码)

        假设我们的输入数据包含n个特征,输出数据包含m个特征。在本文中,我们将介绍如何使用DNN(深度神经网络)实现多输入多输出数据回归预测,并提供相应的Matlab代码。需要注意的是,上述代码中的DNN模型是一个简化的示例,您可以根据实际任务的复杂程度和要求进行相应的调整和优化。综上所述,我们介绍了如何使用DNN神经网络实现多输入多输出数据回归预测,并提供了相应的Matlab代码。函数对DNN模型进行训练,其中输入数据需要转置,以适应网络的输入要求。最后,我们使用训练好的模型对测试数据进行预测,并打印预测结果。

        DevWizard的博客 1068

        云原生虚拟化的最佳拍档:Kube-OVN + KubeVirt 【附有奖调研】

        ​随着云原生技术从应用侧向数据中心和基础设施下沉,越来越多的企业开始使用 Kubernetes 和 KubeVirt 来运行虚拟化工作负载,实现在统一的控制平面同时管理虚拟机和容器。然而一方面虚拟机的使用场景和习惯都和容器有着显著的差异,另一方面新兴的容器网络并没有专门对虚拟化场景进行设计,功能的完备性和性能都与传统虚拟化网络存在较大差距。网络问题成为了云原生虚拟化的瓶颈所在。 Kube-OVN 由于使用了在传统虚拟化网络中得到广泛使用的 OVN/OVS,在开源后得到了很多 KubeVirt ...

        alauda_andy的博客 1875

        OpenCode + Oh My OpenCode:打造你的终极AI编程团队(OpenCode新手入门指南)

        本文详细介绍了开源终端AI编程助手 OpenCode 的完整配置教程 🖥️,从安装、AI模型配置到增强插件 Oh My OpenCode 的部署一应俱全。支持 Claude、ChatGPT、Gemini 多模型切换 🤖,还能实现多AI智能体协作开发。步骤清晰适合新手 📝,想在终端用AI写代码的开发者不要错过 ✨

        XiaoqiangClub的博客 1万+

        Android AVB 分析(十三)dm-verity 设备是如何映射的?

        在上一篇《Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介》介绍 dm-verity 原理的时候,作者提供了一个 dm-verity 演示的例子。本篇我们基于 AOSP 源码 `android-13.0.0_r41` 实际编译生成的 Google Pixel 7 (“panther”) 设备的 system 分区镜像进行 dm-verity 设备验证实战。

        洛奇看世界 2438

        KubeVirt在360的探索之路

        KubeVirt是一个Kubernetes插件,在调度容器之余也可以调度传统的虚拟机。它通过使用自定义资源(CRD)和其它Kubernetes功能来无缝扩展现有的集群,以提供一组可用于管理...

        Docker的专栏 1305

        visio安装包

        Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

        Kube-OVN Weekly| 社区双周报(2.1-2.15)

        社区双周报 2月16日,第四期 Kube-OVN 社区双周会由多名小伙伴们共同参与,对于项目进展及问题展开讨论。我们也欢迎更多小伙伴加入,一起探讨项目及社区建设的想法~ maintainer:Oilbeater,lut777,hongzhen-ma,zhangzujian,fanriming 项目进度记录 v1.10-s2 工作总结 ECMP 问题修复,修改了上游路由的路由选择 hash 算法,避免同一连接被 hash 到不同路径 使用 router pol...

        KubeOVN的博客 329

        RU DOS版、EFI版32bit/64bit BIOS常用工具

        DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

        WINCC7.3破解文件

        WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

        Virtink:为Kubernetes打造的轻量级虚拟化增强工具

        Virtink:为Kubernetes打造的轻量级虚拟化增强工具 项目介绍 Virtink是一款专为Kubernetes设计的轻量级虚拟化增强工具,旨在利用Cloud Hypervisor在Kubernetes集群中运行虚拟机。通过使用Cloud Hypervisor作为底层虚拟化技术,Virtink提供了一种轻量级且安全的解决方案,能够在标准的Kubernetes集群中运行完全虚拟化的工作负载。...

        gitblog_00073的博客 428

        OV9734 DATASHEET,完整规格书

        OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

        KubeVirt虚拟机热迁移

        在v0.56版本之前,虚拟机热迁移需要手动开启LiveMigration特性,之后版本默认开启。热迁移要求PVC支持ReadWriteMany(RWX)且为共享存储,虚拟机网络需使用masquerade模式,virt-launcher Pod的49152-49153端口未被占用,且主网卡名称一致。通过kubectl patch命令可开启LiveMigration功能,无需虚拟机即可生效。测试热迁移时,虚拟机配置需满足上述条件,迁移过程中可通过virtctl命令或创建VirtualMachineInstanc

        https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1087

        利用Kubernetes创建管理虚拟机

        工具操作,可实现与传统虚拟机相似的管理体验。安装时需注意硬件兼容性,使用时灵活选择存储和网络方案以满足不同需求。更多高级功能(如热迁移、HPA)可参考。KubeVirt 为 Kubernetes 提供了虚拟化管理能力,适合混合容器与虚拟机的场景。是一个开源项目,旨在将虚拟机(VM)的管理与 Kubernetes 容器编排平台无缝集成。扩展 API,允许用户在 Kubernetes 集群中创建、管理和监控虚拟机,实现容器与虚拟机的统一管理。中的镜像地址,并通过脚本批量拉取并推送至私有仓库。

        demonlg0112的博客 1110

        kubevirt热迁移在不同操作系统间可能会出现的问题剖析

        然后,在libvirt中添加debug,发现读取设备内存报错,虚拟机没有开通GPU卡,但是qemu启动参数中带有GPU设备-device virtio-gpu-pci,id=video0,max_outputs=1,bus=pci.6,addr-0x0,在VirtualMachine中添加配置autoattachGraphicsDevice: false,依然迁移失败。kubevirt虚拟机借助于底层的qemu和libvirt的相关能力,实现了在k8s上自由的虚拟化,开通资源,但是在混合集群上还没有先例。

        qq_41385137的博客 1204

        Kubernetes Kubevirt应用

        文章目录一、前言1.1 Kubevirt概述1.2 Kubevirt如何应用在Kubernetes中1.3 Kubevrit组件介绍二、Kubervirt部署2.1 kubernetes环境2.2 前期准备工作检测节点是否支持虚拟化功能2.3 安装Kubevirt2.4 virtctl客户端工具安装方法一方法二2.5 测试 一、前言 1.1 Kubevirt概述 Kubevirt是k8s中的虚拟机管理插件,目的是为了满足企业从虚拟化转型到用kubernetes来管理一切虚拟化运行时,包含裸金属、VM、容器

        qq_45631844的博客 3093

        kubevirt在360的探索之路(k8s接管虚拟化)

        女主宣言KubeVirt是一个Kubernetes插件,在调度容器之余也可以调度传统的虚拟机。它通过使用自定义资源(CRD)和其它 Kubernetes 功能来无缝扩展现有的集群,以提供...

        HULK一线技术杂谈 1531

        “迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战

        云栖君导读:本文来自阿里云智能事业群高级技术专家稻农的分享。以下为分享全文: 大家好,我的花名是稻农,首先我简单介绍一下我在这个领域的工作。在阿里,我们现在主要的侧重点是...

        云栖社区 362

        配置kubernetes使用kubevirt管理虚拟机

        &nbsp; 一、前言 kubevirt可以扩展kubernetes的功能以管理虚拟机,其架构见文章 https://github.com/kubevirt/kubevirt/blob/master/docs/architecture.md 在安装之前需要先做如下准备工作: 安装libvirt和qemu软件...

        mark's technic world 3738
        上一篇: 始于AI,不止AI,灵雀云DeepSeek一体化方案助力企业拥抱私有化AI的最后一公里
        下一篇: 证券行业数字化转型:灵雀云架设云原生“数字高速路”
        灵雀云
        博客等级 码龄9年 439粉丝 205原创
        评论
        成就一亿技术人!
        拼手气红包6.0元
        还能输入1000个字符
         
         条评论被折叠 查看
        添加红包

        请填写红包祝福语或标题

        个

        红包个数最小为10个

        元

        红包金额最低5元

        当前余额3.43元 前往充值 >
        需支付:10.00元
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付元
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

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

        余额充值