当前位置: 首页 > article >正文

KubeVirt虚拟化实践:在Kubernetes上运行虚拟机

KubeVirt虚拟化实践在Kubernetes上运行虚拟机一、KubeVirt概述KubeVirt是一个开源项目允许在Kubernetes集群上运行和管理虚拟机(VM)。它将Kubernetes的编排能力与传统虚拟化技术相结合实现了容器与虚拟机的统一管理。KubeVirt的核心优势统一管理使用Kubernetes API管理VM和容器混合工作负载同时支持容器和虚拟机资源效率共享Kubernetes调度和资源管理云原生集成与CNI、CSI、StorageClass等无缝集成二、KubeVirt安装与配置2.1 安装kubevirt-operator# 添加KubeVirt Helm仓库 helm repo add kubevirt https://kubevirt.github.io/kubevirt # 创建命名空间 kubectl create namespace kubevirt # 安装KubeVirt operator helm install kubevirt kubevirt/kubevirt \ --namespace kubevirt \ --version 1.1.02.2 部署KubeVirt CRapiVersion: kubevirt.io/v1 kind: KubeVirt metadata: name: kubevirt namespace: kubevirt spec: certificateRotateStrategy: {} configuration: developerConfiguration: featureGates: - LiveMigration - SRIOV2.3 验证安装# 检查KubeVirt组件状态 kubectl get pods -n kubevirt # 检查KubeVirt CR状态 kubectl get kubevirt kubevirt -n kubevirt -o yaml2.4 安装virtctl命令行工具# 下载virtctl VERSION$(kubectl get kubevirt kubevirt -n kubevirt -o jsonpath{.status.observedKubeVirtVersion}) curl -L https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-darwin-amd64 -o virtctl # 安装到PATH chmod x virtctl sudo mv virtctl /usr/local/bin/三、创建虚拟机3.1 基本VM配置apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: my-vm spec: running: false template: spec: domain: cpu: cores: 2 memory: guest: 4Gi devices: disks: - name: rootdisk disk: bus: virtio - name: cloudinitdisk disk: bus: virtio volumes: - name: rootdisk persistentVolumeClaim: claimName: my-vm-disk - name: cloudinitdisk cloudInitNoCloud: userData: | #cloud-config users: - name: ubuntu ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... sudo: [ALL(ALL) NOPASSWD:ALL] hostname: my-vm3.2 启动虚拟机# 启动VM virtctl start my-vm # 检查VM状态 kubectl get vms # 查看VM详情 kubectl describe vm my-vm3.3 使用PVC作为磁盘apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-vm-disk spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi storageClassName: standard四、虚拟机网络配置4.1 使用Pod网络apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: my-vm spec: template: spec: domain: devices: interfaces: - name: default masquerade: {} networks: - name: default pod: {}4.2 使用Multus实现多网卡apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: my-vm-multinet spec: template: spec: domain: devices: interfaces: - name: net1 bridge: {} - name: net2 bridge: {} networks: - name: net1 multus: networkName: my-network-1 - name: net2 multus: networkName: my-network-24.3 配置SR-IOVapiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: my-vm-sriov spec: template: spec: domain: devices: interfaces: - name: sriov-net sriov: {} networks: - name: sriov-net multus: networkName: sriov-network五、虚拟机存储配置5.1 使用DataVolumeapiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: name: my-datavolume spec: source: http: url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img pvc: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi storageClassName: standard5.2 克隆DataVolumeapiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: name: my-cloned-volume spec: source: pvc: name: source-pvc namespace: default pvc: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi六、虚拟机管理操作6.1 控制台访问# 连接到VM控制台 virtctl console my-vm # 使用VNC连接 virtctl vnc my-vm # 使用SPICE连接 virtctl spice my-vm6.2 生命周期管理# 启动VM virtctl start my-vm # 停止VM virtctl stop my-vm # 重启VM virtctl restart my-vm # 暂停VM virtctl pause my-vm # 恢复VM virtctl unpause my-vm6.3 迁移虚拟机# 列出可用节点 kubectl get nodes # 迁移VM到指定节点 virtctl migrate my-vm --dest-node node-2 # 查看迁移状态 kubectl get vmmigrations七、高级功能7.1 热插拔设备# 添加磁盘 virtctl addvolume my-vm --volume-name additional-disk --persistent-volume-claim pvc-name # 移除磁盘 virtctl removevolume my-vm --volume-name additional-disk # 添加网卡 virtctl addinterface my-vm --interface-name net2 --network pod # 移除网卡 virtctl removeinterface my-vm --interface-name net27.2 快照管理apiVersion: kubevirt.io/v1 kind: VirtualMachineSnapshot metadata: name: my-vm-snapshot spec: source: apiGroup: kubevirt.io kind: VirtualMachine name: my-vm7.3 模板管理apiVersion: template.openshift.io/v1 kind: Template metadata: name: ubuntu-vm-template objects: - apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: ${NAME} spec: running: false template: spec: domain: cpu: cores: ${CPU_CORES} memory: guest: ${MEMORY}八、监控与日志8.1 导出指标apiVersion: v1 kind: Service metadata: name: kubevirt-metrics namespace: kubevirt spec: selector: kubevirt.io: virt-handler ports: - name: metrics port: 8443 targetPort: metrics8.2 配置Prometheus监控apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kubevirt-monitor namespace: monitoring spec: selector: matchLabels: kubevirt.io: virt-handler endpoints: - port: metrics interval: 30s scheme: https tlsConfig: insecureSkipVerify: true九、最佳实践9.1 资源规划CPU预留为VM预留足够的CPU资源内存配置合理设置内存请求和限制存储选择使用高性能存储保证VM性能9.2 高可用性多节点部署确保VM可以迁移到其他节点存储冗余使用分布式存储保证数据安全监控告警配置VM状态监控和告警9.3 安全加固隔离网络使用网络策略隔离VM镜像安全只使用可信的VM镜像访问控制配置RBAC限制VM操作权限十、总结KubeVirt为Kubernetes带来了虚拟化能力使企业能够在统一的平台上运行容器和虚拟机工作负载。通过本文的实践指南您可以快速上手KubeVirt构建混合云原生环境。建议从简单场景开始逐步探索高级功能。参考资料KubeVirt官方文档KubeVirt GitHubCDI官方文档

相关文章:

KubeVirt虚拟化实践:在Kubernetes上运行虚拟机

KubeVirt虚拟化实践:在Kubernetes上运行虚拟机 一、KubeVirt概述 KubeVirt是一个开源项目,允许在Kubernetes集群上运行和管理虚拟机(VM)。它将Kubernetes的编排能力与传统虚拟化技术相结合,实现了容器与虚拟机的统一管理。 KubeVirt的核心…...

Kubernetes故障排查与问题定位:实战指南

Kubernetes故障排查与问题定位:实战指南 一、故障排查概述 Kubernetes故障排查是运维工作中的重要环节。常见的故障类型包括: Pod故障:Pod无法启动、崩溃、重启网络故障:Pod之间无法通信、服务不可访问存储故障:持久…...

4.7 Spark SQL函数分类与应用

本次实战涵盖了三大核心内容:内置函数、自定义函数(UDF)和开窗函数。 内置函数是数据处理的基础,包括字符串、日期、数学、聚合等10大类,可通过DataFrame API或SQL语句两种方式调用,满足多样化的数据转换需…...

智改数转:制造企业绕不开的必答题

近几年,"智改数转"这个词频繁出现在各地政策文件和行业论坛里。对很多制造企业来说,它已经从"可选项"变成了"必答题"。但真正落地的时候,问题远比口号复杂。先说句实话:多数企业的数字化还停留在表…...

Layerdivider:用AI智能解构插画,让PSD图层分离变得轻而易举

Layerdivider:用AI智能解构插画,让PSD图层分离变得轻而易举 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 在数字艺术创作中&…...

Irony Mod Manager:终极Paradox游戏模组冲突解决方案完全指南

Irony Mod Manager:终极Paradox游戏模组冲突解决方案完全指南 【免费下载链接】IronyModManager Mod Manager for Paradox Games. Official Discord: https://discord.gg/t9JmY8KFrV 项目地址: https://gitcode.com/gh_mirrors/ir/IronyModManager 你是否曾经…...

2026实测|5款AI论文写作软件深度对比(含降重/AIGC检测/价格)

根据2026年最新的实测数据,我为你整理了一份好用的AI论文写作软件清单,按适用场景分类,你可以根据自己的需求快速匹配。 📊 核心工具速览对比 工具名称核心优势最佳适用场景价格参考推荐指数PaperRed中文全流程、降重合规、文献真…...

3分钟搞定Windows苹果USB驱动安装:终极免费解决方案

3分钟搞定Windows苹果USB驱动安装:终极免费解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirro…...

如何快速上手OOMAO:MATLAB自适应光学仿真终极指南

如何快速上手OOMAO:MATLAB自适应光学仿真终极指南 【免费下载链接】OOMAO Object-Oriented, Matlab & Adaptive Optics 项目地址: https://gitcode.com/gh_mirrors/oo/OOMAO OOMAO(Object-Oriented, Matlab & Adaptive Optics&#xff09…...

对比直接使用厂商API,Taotoken在用量观测与账单管理上的便利性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在用量观测与账单管理上的便利性 当开发者或团队同时接入多个大模型厂商的原生API时&…...

抖音内容保存技术方案:开源下载工具深度解析与应用实践

抖音内容保存技术方案:开源下载工具深度解析与应用实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

CircuitJS1 Desktop Mod终极指南:开启离线电路仿真新纪元

CircuitJS1 Desktop Mod终极指南:开启离线电路仿真新纪元 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator with small modifications based on modified NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1 …...

动物森友会存档编辑神器:NHSE新手完全入门指南

动物森友会存档编辑神器:NHSE新手完全入门指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 你是否曾经梦想过在《集合啦!动物森友会》中拥有无限铃钱、稀有家具&#xf…...

显卡驱动清理终极指南:为什么你的系统需要Display Driver Uninstaller深度清理?

显卡驱动清理终极指南:为什么你的系统需要Display Driver Uninstaller深度清理? 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirr…...

3大核心技术:解密QMC音频文件的最优方案

3大核心技术:解密QMC音频文件的最优方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 在数字音乐版权保护日益严格的今天,QQ音乐采用的QMC加密格式…...

如何在10分钟内搭建个人游戏串流服务器:Sunshine跨平台游戏流媒体完全指南

如何在10分钟内搭建个人游戏串流服务器:Sunshine跨平台游戏流媒体完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否梦想过在任何设备上畅玩PC游戏&#x…...

快速导出微信聊天记录:WeChatExporter让你轻松备份珍贵对话

快速导出微信聊天记录:WeChatExporter让你轻松备份珍贵对话 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾担心手机丢失或更换设备时,那…...

Claude Code、Cursor、Codex到底是什么?法律人AI开发工具全解析

一、AI IDE是什么?从代码编辑器到智能助理AI IDE AI 集成开发环境(IDE)。传统IDE如VS Code、IntelliJ,开发者需要手动编写每一行代码、查阅文档、编写测试用例。AI IDE则让开发者用自然语言下达指令,AI理解整个项目结…...

Barlow字体:54种样式打造专业级设计效果,提升你的视觉表达力

Barlow字体:54种样式打造专业级设计效果,提升你的视觉表达力 【免费下载链接】barlow Barlow: a straight-sided sans-serif superfamily 项目地址: https://gitcode.com/gh_mirrors/ba/barlow Barlow是一款源自加州公共视觉美学的专业字体家族&a…...

终极指南:3分钟学会用Awoo Installer免费安装Switch游戏

终极指南:3分钟学会用Awoo Installer免费安装Switch游戏 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装而烦恼吗…...

终极显卡风扇控制指南:用FanControl彻底解决NVIDIA风扇异常

终极显卡风扇控制指南:用FanControl彻底解决NVIDIA风扇异常 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendi…...

车联网TBOX开发实战六,CAN特性

接上篇芯片及系统方案基础,本篇想写个远程控制,但想想整个交互链路较长,涉及到的基础很多,决定先从最基础的介绍一下,CAN,就是与车辆交互的核心总线本篇不做CAN基础的全面讲解,网络上有大篇幅的…...

独立开发者如何借助Taotoken模型广场快速选型与对比测试

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助Taotoken模型广场快速选型与对比测试 对于独立开发者或小型创业团队而言,项目初期选择合适的大模型…...

保姆级教程✅ 从零学InVEST/SolVES模型,附QGIS/PostgreSQL/R语言实操+数据预处理全流程

本内容将讲述用于评估生态系统服务价值的当量因子法、InVEST模型、SolVES模型及其原理,通过本课程的学习,您将学会三种模型的原理与运行方法:如何获取与制备模型数据;如何进行当量因子转换;如何利用InVEST模型进行生态…...

Dism++:Windows系统维护的终极免费工具,一键解决卡顿和更新问题

Dism:Windows系统维护的终极免费工具,一键解决卡顿和更新问题 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾为Windows系统运行…...

终极指南:用Python AUTOSAR轻松生成ARXML文件,告别昂贵商业工具

终极指南:用Python AUTOSAR轻松生成ARXML文件,告别昂贵商业工具 【免费下载链接】autosar A set of python modules for working with AUTOSAR XML files 项目地址: https://gitcode.com/gh_mirrors/au/autosar 还在为AUTOSAR工具链的高昂费用和复…...

带标注的焊接型球头杆端关节轴承(鱼眼接头)缺陷识别数据集,识别率99.1%,可识别卡死,锈迹,合格,凹痕缺陷,20580张图,支持yolo,coco json,voc xml,文末有模型训练代码

​ 带标注的焊接型球头杆端关节轴承(鱼眼接头)缺陷识别数据集,识别率99.1%,可识别卡死,锈迹,合格,凹痕缺陷,20580张图,支持yolo,coco json,voc xml,文末有模型训练代码 …...

在自动化脚本中集成Taotoken实现稳定的大模型调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在自动化脚本中集成Taotoken实现稳定的大模型调用 将大模型能力嵌入自动化流程,例如数据清洗与摘要生成脚本&#xff0…...

终极AI音乐创作工具:5分钟生成专业级歌曲翻唱

终极AI音乐创作工具:5分钟生成专业级歌曲翻唱 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 你是否曾经梦想…...

蛋白质-配体相互作用分析终极指南:PLIP工具从入门到精通

蛋白质-配体相互作用分析终极指南:PLIP工具从入门到精通 【免费下载链接】plip Protein-Ligand Interaction Profiler - Analyze and visualize non-covalent protein-ligand interactions in PDB files according to 📝 Schake, Bolz, et al. (2025), h…...