KubeVirt 安装和配置 Windows虚拟机
本文将将介绍如何安装 KubeVirt 和使用 KubeVirt 配置 Windows 虚拟机。
前置条件
-
准备 Ubuntu 操作系统,一定要安装图形化界面。
-
安装 Docker(最新版本)
-
安装
libvirt
和TigerVNC
:apt install libvirt-daemon-system libvirt-clients tigervnc-viewer
-
准备一个 Kubernetes 集群,可以参考此链接
-
在 Kubernetes 集群上准备存储,可以参考此链接
安装 KubeVirt
-
导出最新的 KubeVirt 发行版本:
export RELEASE=$(curl -s https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
-
部署 KubeVirt Operator:
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml
-
创建 KubeVirt 自定义资源 (CR) 以触发安装:
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml
-
加载虚拟化所需的内核模块:
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 镜像
- 使用
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 操作系统,一定要安装图形化界面。 安装 Docker(最新版本) 安装 libvirt 和 TigerVNC: 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,英伟达独显的nuc x15,不是12代arc显卡的。 x15安装win11 24h2,如果在装系统时联网,windows自动下载的最新驱动有兼容问题,会导致【英特尔显卡控制中心】装不上,或者【英特尔nuc…...

Linux之实战命令59:iwlist应用实例(九十三)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...

数据库_SQLite3
下载 1、更新软件源: sudo apt-get update 2、下载SQLite3: sudo apt-get install sqlite3 3、验证: sqlite3启动数据库,出现以下界面代表运行正常。输入 .exit 可以退出数据库 4、安装sqlite3的库 sudo apt-get install l…...
.Net Framework里演示怎么样使用StringBuilder、Math.Min和String.Format
StringBuilder、Math.Min和String.Format, 这几个功能都是我们经常使用的功能, 但是怎么样正确地使用,还是得向微软的开发人员学习。 他们在写.Net Framework的源码时,就会大量使用。 因此,我们可以多看看这分代码,就可以理解他们怎么样使用的。 他们的使用方式,一…...
Oracle创建存储过程,创建定时任务
在Oracle数据库中,创建存储过程和定时任务(也称为调度任务)是常见的数据库管理任务。以下是创建存储过程和定时任务的步骤和说明。 创建存储过程 创建存储过程的sql脚本 create or replace procedure 存储过程名称... is begin脚本逻辑...…...

<HarmonyOS第一课>应用/元服务上架的课后习题
善者,吾善之; 不善者,吾亦善之,德善。 信者,吾信之; 不信者,吾亦信之,德信。 圣人在天下,歙歙焉为天下浑其心,百姓皆注其耳目,圣人皆孩之。 通过&…...

【Python】探索函数的奥秘:从基础到高级的深度解析(下)
目录 🍔 函数的参数进阶 1、函数的参数 2、函数的参数类型(调用) 2.1 位置参数 2.2 关键词参数(Python特有) 3、函数定义时缺省参数(参数默认值) 4、不定长参数 4.1 不定长元组(位置)参数…...

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

Vue-$el属性
原博客地址:深入 Vue.js 的心脏:全面剖析 $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是励磁电感,就是次级线圈空载时的主变压器电感,据说在计算谐振频率时无需关心。然后,作为DCDC电源,它通过调整谐振频率,来改变输出的电流。负载越大,频率越低&#…...

Python 如何在 Web 环境中使用 Matplotlib 进行数据可视化
Python Matplotlib 在 Web 环境中的可视化 数据可视化是数据科学和分析中一个至关重要的部分,它能帮助我们更好地理解和解释数据。在现代应用中,越来越多的开发者希望能够将数据可视化结果展示在网页上。Matplotlib 是 Python 中最常用的数据可视化库之…...
C#-数组:一维数组、二维数组、交错数组
数组:声明初始化过后,就不能在原有的基础上进行 添加 或者 删除 了 一:一维数组 一般将一维数组简称为数组 1.1 数组的声明 int[] arr1; 没有分配房间。初始化后就分配房间了int[] arr2 new int[5]; 存在默认值,为0int[] arr3…...

动态规划应该如何学习?
动态规划如何学习 参考灵神的视频和题解做的笔记(灵神YYDS,以后也都会用这套逻辑去思考) 枚举选哪个: 动态规划入门:从记忆化搜索到递推_哔哩哔哩_bilibili 746. 使用最小花费爬楼梯 - 力扣(LeetCode&a…...
【力扣 + 牛客 | SQL题 | 每日4题】牛客SQL热题210,213,212,219
1. 力扣SQL1076:项目员工2 1.1 题目: 表:Project ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- (project_id, employee_id) 是…...
Qt 应用开发之 MVC 架构
在Qt应用开发中,MVC(Model-View-Controller)架构确实是一种常用的设计模式,它通过将应用程序的业务逻辑、数据展示和用户交互分离开来,显著提高了代码的可维护性和可扩展性。以下是MVC架构在Qt应用开发中的原理阐述&am…...

python之字符串总结
字符串(str) 对于字符串的学习,我整理了网上的一些资料,希望可以帮助到各位!!! 概述 由多个字母,数字,特殊字符组成的有限序列 字符串的定义:可以使用一对…...
Flutter鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
✅近期推荐:求职神器 https://bbs.csdn.net/topics/619384540 🔥欢迎大家订阅系列专栏:flutter_鸿蒙next 💬淼学派语录:只有不断的否认自己和肯定自己,才能走出弯曲不平的泥泞路,因为平坦的大路…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...