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

KubeVirt 安装和配置 Windows虚拟机

本文将将介绍如何安装 KubeVirt 和使用 KubeVirt 配置 Windows 虚拟机。

前置条件

  1. 准备 Ubuntu 操作系统,一定要安装图形化界面。

  2. 安装 Docker(最新版本)

  3. 安装 libvirtTigerVNC

    apt install libvirt-daemon-system libvirt-clients tigervnc-viewer
    
  4. 准备一个 Kubernetes 集群,可以参考此链接

  5. 在 Kubernetes 集群上准备存储,可以参考此链接

安装 KubeVirt

  1. 导出最新的 KubeVirt 发行版本:

    export RELEASE=$(curl -s https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
    
  2. 部署 KubeVirt Operator:

    kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml
    
  3. 创建 KubeVirt 自定义资源 (CR) 以触发安装:

    kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml
    
  4. 加载虚拟化所需的内核模块:

    modprobe kvm
    modprobe kvm_intel #如果执行失败,排查是否支持嵌套虚拟化
    

安装容器化数据导入 (CDI)

安装最新的 CDI 发行版本:

VERSION=$(basename $(curl -s -w %{redirect_url} https://github.com/kubevirt/containerized-data-importer/releases/latest))
kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-operator.yaml
kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/$VERSION/cdi-cr.yaml

安装 Virtctl

下载 virtctl 的最新 KubeVirt 版本:

export VERSION=$(curl -s https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-linux-amd64

上传 Windows 镜像

  1. 使用 kubectl get svc -ncdi 获取 uploadproxy-url 的地址,输出如下:
NAME                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
cdi-api                  ClusterIP   10.233.33.110   <none>        443/TCP    46h
cdi-prometheus-metrics   ClusterIP   10.233.15.23    <none>        8080/TCP   46h
cdi-uploadproxy          ClusterIP   10.233.49.108   <none>        443/TCP    46h

使用 virtctl 上传 Windows 镜像:

virtctl image-upload dv win10 --size=10Gi --image-path=./WinSvr2022_2024.0617.iso --storage-class openebs-hostpath --access-mode=ReadWriteOnce --uploadproxy-url=https://10.233.49.108 --insecure --force-bind

创建 vmi

准备以下 vmi.yaml 文件,并执行 kubectl apply -f vmi.yaml 命令来创建 vmi 虚拟机:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: disk-windows
spec:accessModes:- ReadWriteOnceresources:requests:storage: 15GistorageClassName: hostpath
---
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:labels:special: vmi-windowsname: vmi-windows
spec:domain:clock:timer:hpet:present: falsehyperv: {}pit:tickPolicy: delayrtc:tickPolicy: catchuputc: {}cpu:cores: 2devices:disks:- disk:bus: sataname: pvcdisk- cdrom:bus: sataname: winisointerfaces:- masquerade: {}model: e1000name: defaulttpm: {}features:acpi: {}apic: {}hyperv:relaxed: {}spinlocks:spinlocks: 8191vapic: {}smm: {}firmware:bootloader:efi:secureBoot: trueuuid: 5d307ca9-b3ef-428c-8861-06e72d69f223resources:requests:memory: 4Ginetworks:- name: defaultpod: {}terminationGracePeriodSeconds: 0volumes:- name: pvcdiskpersistentVolumeClaim:claimName: disk-windows- name: winisopersistentVolumeClaim:claimName: win11cd-pvc

通过 kubectl get vmi 命令可以看到当前虚拟机的状态:

NAME          AGE   PHASE     IP               NODENAME   READY
vmi-windows   23h   Running   10.233.127.122   ubuntu     True

通过 VNC 访问 Windows 虚拟机

使用 VNC 访问虚拟机:

virtctl vnc vmi-windows

就可以在界面上看到以下输出:

在这里插入图片描述

有关更详细的步骤,请参考官方指南:使用 KubeVirt 从 ISO 安装 Microsoft Windows 11

相关文章:

KubeVirt 安装和配置 Windows虚拟机

本文将将介绍如何安装 KubeVirt 和使用 KubeVirt 配置 Windows 虚拟机。 前置条件 准备 Ubuntu 操作系统&#xff0c;一定要安装图形化界面。 安装 Docker&#xff08;最新版本&#xff09; 安装 libvirt 和 TigerVNC&#xff1a; apt install libvirt-daemon-system libvir…...

CM API方式设置YARN队列资源

简述 对于CDH版本我们可以参考Fayson的文章,本次是CDP7.1.7 CM7.4.4 ,下面只演示一个设置队列容量百分比的示例,其他请参考cloudera官网。 获取cookies文件 生成cookies.txt文件 curl -i -k -v -c cookies.txt -u admin:admin http://192.168.242.100:7180/api/v44/clusters …...

Mysql常用语法一篇文章速成

文章目录 前言前置环境数据库的增删改查查询数据查询所有条件查询多条件查询模糊查询分页查询排序查询分组查询⭐️⭐️关联查询关联分页查询 添加数据insert插入多条记录不指定列名(适用于所有列都有值的情况) 更新数据更新多条记录更新多个列更新不满足条件的记录 删除统计数…...

Intel nuc x15 重装系统步骤和注意事项(LAPKC71F、LAPKC71E、LAPKC51E)

注意本教程的对象是11代CPU&#xff0c;英伟达独显的nuc x15&#xff0c;不是12代arc显卡的。 x15安装win11 24h2&#xff0c;如果在装系统时联网&#xff0c;windows自动下载的最新驱动有兼容问题&#xff0c;会导致【英特尔显卡控制中心】装不上&#xff0c;或者【英特尔nuc…...

Linux之实战命令59:iwlist应用实例(九十三)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…...

数据库_SQLite3

下载 1、更新软件源&#xff1a; sudo apt-get update 2、下载SQLite3&#xff1a; sudo apt-get install sqlite3 3、验证&#xff1a; sqlite3启动数据库&#xff0c;出现以下界面代表运行正常。输入 .exit 可以退出数据库 4、安装sqlite3的库 sudo apt-get install l…...

.Net Framework里演示怎么样使用StringBuilder、Math.Min和String.Format

StringBuilder、Math.Min和String.Format, 这几个功能都是我们经常使用的功能, 但是怎么样正确地使用,还是得向微软的开发人员学习。 他们在写.Net Framework的源码时,就会大量使用。 因此,我们可以多看看这分代码,就可以理解他们怎么样使用的。 他们的使用方式,一…...

Oracle创建存储过程,创建定时任务

在Oracle数据库中&#xff0c;创建存储过程和定时任务&#xff08;也称为调度任务&#xff09;是常见的数据库管理任务。以下是创建存储过程和定时任务的步骤和说明。 创建存储过程 创建存储过程的sql脚本 create or replace procedure 存储过程名称... is begin脚本逻辑...…...

<HarmonyOS第一课>应用/元服务上架的课后习题

善者&#xff0c;吾善之&#xff1b; 不善者&#xff0c;吾亦善之&#xff0c;德善。 信者&#xff0c;吾信之&#xff1b; 不信者&#xff0c;吾亦信之&#xff0c;德信。 圣人在天下&#xff0c;歙歙焉为天下浑其心&#xff0c;百姓皆注其耳目&#xff0c;圣人皆孩之。 通过&…...

【Python】探索函数的奥秘:从基础到高级的深度解析(下)

目录 &#x1f354; 函数的参数进阶 1、函数的参数 2、函数的参数类型(调用) 2.1 位置参数 2.2 关键词参数&#xff08;Python特有&#xff09; 3、函数定义时缺省参数&#xff08;参数默认值&#xff09; 4、不定长参数 4.1 不定长元组&#xff08;位置&#xff09;参数…...

ima.copilot:智慧因你而生

在数字化时代&#xff0c;信息的获取、处理和创作已经成为我们日常工作和学习中不可或缺的一部分。腾讯公司推出的ima.copilot&#xff08;简称ima&#xff09;正是为了满足这一需求&#xff0c;它是一款由腾讯混元大模型提供技术支持的智能工作台产品&#xff0c;旨在通过智能…...

Vue-$el属性

原博客地址&#xff1a;深入 Vue.js 的心脏&#xff1a;全面剖析 $el 属性_vue $el-CSDN博客 目录 1 $el是什么 1.1 $el本质 1.2 访问$el时机 1.3 $el与模板的关系 2 $el使用场景 2.1 集成第三方库 2.2 操作DOM元素样式 2.3 处理焦点和事件 2.4 实现自定义指令 3 $e…...

LLC Power Switches and Resonant Tank 笔记

1.概述 上面是一个典型的LLC电路。注意Lm是励磁电感&#xff0c;就是次级线圈空载时的主变压器电感&#xff0c;据说在计算谐振频率时无需关心。然后&#xff0c;作为DCDC电源&#xff0c;它通过调整谐振频率&#xff0c;来改变输出的电流。负载越大&#xff0c;频率越低&#…...

Python 如何在 Web 环境中使用 Matplotlib 进行数据可视化

Python Matplotlib 在 Web 环境中的可视化 数据可视化是数据科学和分析中一个至关重要的部分&#xff0c;它能帮助我们更好地理解和解释数据。在现代应用中&#xff0c;越来越多的开发者希望能够将数据可视化结果展示在网页上。Matplotlib 是 Python 中最常用的数据可视化库之…...

C#-数组:一维数组、二维数组、交错数组

数组&#xff1a;声明初始化过后&#xff0c;就不能在原有的基础上进行 添加 或者 删除 了 一&#xff1a;一维数组 一般将一维数组简称为数组 1.1 数组的声明 int[] arr1; 没有分配房间。初始化后就分配房间了int[] arr2 new int[5]; 存在默认值&#xff0c;为0int[] arr3…...

动态规划应该如何学习?

动态规划如何学习 参考灵神的视频和题解做的笔记&#xff08;灵神YYDS&#xff0c;以后也都会用这套逻辑去思考&#xff09; 枚举选哪个&#xff1a; 动态规划入门&#xff1a;从记忆化搜索到递推_哔哩哔哩_bilibili 746. 使用最小花费爬楼梯 - 力扣&#xff08;LeetCode&a…...

【力扣 + 牛客 | SQL题 | 每日4题】牛客SQL热题210,213,212,219

1. 力扣SQL1076&#xff1a;项目员工2 1.1 题目&#xff1a; 表&#xff1a;Project ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- (project_id, employee_id) 是…...

Qt 应用开发之 MVC 架构

在Qt应用开发中&#xff0c;MVC&#xff08;Model-View-Controller&#xff09;架构确实是一种常用的设计模式&#xff0c;它通过将应用程序的业务逻辑、数据展示和用户交互分离开来&#xff0c;显著提高了代码的可维护性和可扩展性。以下是MVC架构在Qt应用开发中的原理阐述&am…...

python之字符串总结

字符串&#xff08;str&#xff09; 对于字符串的学习&#xff0c;我整理了网上的一些资料&#xff0c;希望可以帮助到各位&#xff01;&#xff01;&#xff01; 概述 由多个字母&#xff0c;数字&#xff0c;特殊字符组成的有限序列 字符串的定义&#xff1a;可以使用一对…...

Flutter鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存

✅近期推荐&#xff1a;求职神器 https://bbs.csdn.net/topics/619384540 &#x1f525;欢迎大家订阅系列专栏&#xff1a;flutter_鸿蒙next &#x1f4ac;淼学派语录&#xff1a;只有不断的否认自己和肯定自己&#xff0c;才能走出弯曲不平的泥泞路&#xff0c;因为平坦的大路…...

WeatherBench终极指南:快速构建天气预报AI模型的完整基准平台

WeatherBench终极指南&#xff1a;快速构建天气预报AI模型的完整基准平台 【免费下载链接】WeatherBench A benchmark dataset for data-driven weather forecasting 项目地址: https://gitcode.com/gh_mirrors/we/WeatherBench WeatherBench是一个专为数据驱动天气预报…...

如何永久保存微信聊天记录?WeChatMsg终极解决方案完全指南

如何永久保存微信聊天记录&#xff1f;WeChatMsg终极解决方案完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

如何实现抖音弹幕实时抓取:基于系统代理的技术突破指南

如何实现抖音弹幕实时抓取&#xff1a;基于系统代理的技术突破指南 【免费下载链接】DouyinBarrageGrab 基于系统代理的抖音弹幕wss抓取程序&#xff0c;能够获取所有数据来源&#xff0c;包括chrome&#xff0c;抖音直播伴侣等&#xff0c;可进行进程过滤 项目地址: https:/…...

AI应用统一管理:aiclublight轻量级启动器部署与配置指南

1. 项目概述与核心价值最近在折腾一些AI相关的本地化应用&#xff0c;发现了一个挺有意思的项目&#xff0c;叫aiclublight。这名字听起来有点“俱乐部之光”的意思&#xff0c;但它的核心其实是一个轻量级的AI应用启动器。简单来说&#xff0c;它就像是一个为你电脑上各种AI模…...

MegSpot视觉对比工具:3个专业级视觉分析难题的终极解决方案

MegSpot视觉对比工具&#xff1a;3个专业级视觉分析难题的终极解决方案 【免费下载链接】MegSpot MegSpot是一款高效、专业、跨平台的图片&视频对比应用 项目地址: https://gitcode.com/gh_mirrors/me/MegSpot 作为一名视觉内容创作者或质量检测人员&#xff0c;你是…...

绝区零自动化终极指南:如何用一条龙工具实现全自动游戏体验

绝区零自动化终极指南&#xff1a;如何用一条龙工具实现全自动游戏体验 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 还在…...

macOS微信防撤回终极指南:3步安装WeChatIntercept插件

macOS微信防撤回终极指南&#xff1a;3步安装WeChatIntercept插件 【免费下载链接】WeChatIntercept 微信防撤回插件&#xff0c;一键安装&#xff0c;仅MAC可用&#xff0c;支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在为微信消息…...

ADAU1701(含A2B)的开发详解五:SigmaStudio实战技巧与模块高效应用

1. SigmaStudio模块查找的终极技巧 第一次打开SigmaStudio时&#xff0c;面对左侧密密麻麻的模块列表&#xff0c;我完全懵了。就像走进一个巨大的图书馆却找不到分类标签&#xff0c;ADI把200多个算法模块分散在30多个分类里&#xff0c;光Volume Controls下面就有12种音量调节…...

别慌!Pygame里time.sleep()报错?用Clock.tick()轻松搞定(附完整代码示例)

Pygame时间控制革命&#xff1a;为什么Clock.tick()比time.sleep()更适合游戏开发 在Pygame游戏开发的世界里&#xff0c;时间控制是构建流畅游戏体验的核心要素。许多初学者在从Python标准库转向Pygame时&#xff0c;常常会本能地使用time.sleep()来控制游戏节奏&#xff0c;却…...

终极文档下载神器:30+平台一键免费保存,告别繁琐下载流程

终极文档下载神器&#xff1a;30平台一键免费保存&#xff0c;告别繁琐下载流程 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该…...