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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHCE——DNS域名解析服务器、selinux、防火墙

1、DNS简介 DNS &#xff08; Domain Name System &#xff09;是互联网上的一项服务&#xff0c;它作为将域名和 IP 地址相互映射的一个分布式 数据库&#xff0c;能够使人更方便的访问互联网。 DNS 系统使用的是网络的查询&#xff0c;那么自然需要有监听的 port 。 DNS 使…

11.Three.js使用indexeddb前端缓存模型优化前端加载效率

11.Three.js使用indexeddb前端缓存模型优化前端加载效率 1.简述 在使用Three.js做数字孪生应用场景时&#xff0c;我们常常需要用到大量模型或数据。在访问我们的数字孪生应用时&#xff0c;每次刷新都需要从web端进行请求大量的模型数据或其他渲染数据等等&#xff0c;会极大…

智慧城市的守护者——智能井盖监测终端

城市化进程的加速推进使得基础设施建设成为提升城市品质的关键环节。然而&#xff0c;在这一进程中&#xff0c;市政公用设施中的井盖与地下线缆的安全问题却日益凸显。由于缺乏有效的实时监控与管理体系&#xff0c;给犯罪分子留下了可趁之机&#xff0c;频繁发生的井盖被盗及…

零基础玩转IPC之——如何实现远程实时查看监控视频(P2P)

P2P是peer-to-peer的简称&#xff0c;又称为点对点技术&#xff0c;是没有中心服务器、依靠用户群节点进行信息交换的对等式网络。区别于传统的C/S中央服务器结构&#xff0c;P2P网络中每一个用户节点即是客户端又是服务端&#xff0c;能同时作为服务器给其他节点提供服务。 优…

开源OCR免费助力法律文档数字化,提升文档管理效率

一、在法律行业&#xff0c;每天需要处理大量纸质文件&#xff0c;从合同到判决书&#xff0c;手动录入不仅费时&#xff0c;还容易出错。为解决这一问题推出了一款免费开源的OCR智能识别平台&#xff0c;通过先进的光学字符识别&#xff08;OCR&#xff09;技术&#xff0c;将…

华为OD七日集训第5期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、逻辑分析第2天、数组第3天、双指针第4天、滑动窗口第5天、贪心算法第6天、二分查找第7天、分治递归 六、集训总结 大家好&#xff0c;我是哪吒。 最…

Python3 网络编程详解

概述 Python 提供了丰富的网络编程支持&#xff0c;包括低级别的 Socket 编程和高级别的 SocketServer 模块。本文将详细介绍如何在 Python 中使用 Socket 进行网络编程&#xff0c;并通过具体的代码示例来展示服务器和客户端的实现。 什么是 Socket&#xff1f; Socket 又称…

【数据分享】2024年我国省市县三级的休闲娱乐设施数量(免费获取/18类设施/Excel/Shp格式)

KTV、棋牌室、音乐厅等休闲服务设施的配置情况是一个城市公共基础设施完善程度的重要体现&#xff0c;一个城市休闲服务设施种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的公共服务水平越高&#xff01; 本次我们为大家带来的是我国各省份、各地级市、各区县…

什么是软件设计模式, 它们⽤于解决什么问题, 它们为什么有效

什么是设计模式 软件设计模式是指在软件设计过程中&#xff0c;经过验证的、可复⽤的、对特定 场景下常⻅问题的解决⽅案的⼀种描述或模板。这些模式并不是具体的 代码&#xff0c;⽽是⽤于指导如何组织代码、类和对象&#xff0c;以便更好地解决问题和 满⾜需求。 ⽤于解决的…

串口接收,不定长数据接收

###1.CUBE-MX配置串口 2.我采用串口中断接收&#xff0c;打开中断接口 3.时钟同样8倍频&#xff0c;1分频&#xff0c;使用内部时钟 打开串口中断 main() { __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); // 启用空闲中断__HAL_UART_ENABLE_IT(&huart1, UART_IT_R…

海滨学院班级记忆宝盒:设计与实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

分布式集群本地缓存

在 Java 分布式集群微服务项目中&#xff0c;虽然 Redis 等分布式缓存更常用&#xff0c;但在某些特定场景下&#xff0c;本地缓存依然有较好的应用价值。常用的本地缓存工具主要有以下几种&#xff1a; 1. Caffeine 简介&#xff1a;Caffeine 是一个现代化的高性能 Java 本地…

如何在Linux系统中使用SSH进行安全连接

如何在Linux系统中使用SSH进行安全连接 SSH简介 安装SSH 在Debian/Ubuntu系统中安装 在CentOS/RHEL系统中安装 启动SSH服务 验证SSH是否安装成功 SSH配置 配置监听端口 配置登录方式 SSH客户端 安装SSH客户端 使用SSH客户端 SSH密钥认证 生成SSH密钥对 复制公钥到远程服务器…

Maven(26)如何使用Maven进行持续集成?

使用Maven进行持续集成&#xff08;Continuous Integration, CI&#xff09;通常涉及设置一个CI服务器&#xff0c;如Jenkins&#xff0c;并配置Maven项目以自动构建和测试。以下是一个详细的步骤指南&#xff0c;包括如何在Jenkins中设置Maven项目&#xff1a; 步骤 1: 安装和…

使用 Elasticsearch 进行语义搜索

Elasticsearch 是一款功能强大的开源搜索引擎&#xff0c;可用于全文搜索、分析和数据可视化。传统上&#xff0c;Elasticsearch 以其执行基于关键字/词汇的搜索的能力而闻名&#xff0c;其中文档基于精确或部分关键字匹配进行匹配。然而&#xff0c;Elasticsearch 已经发展到支…

ElasticNet Regressor(弹性网络回归) --- 论文实战

一、前言 在《机器学习论文复现实战---linear regression》中通过Pearson 相关性分析,去除了2个高相关性特征 "PN" 和 "AN" ,数据维度变为890*25。(数据集地址) 这里我们不做如何前期处理,直接就将数据放入 ElasticNet 模型中进行训练了。 二、模型训…

OJ-5G网络建设

示例1 输入&#xff1a; 3 3 1 2 3 0 1 3 1 0 2 3 5 0 输出&#xff1a; 4示例2 输入&#xff1a; 3 1 1 2 5 0 输出&#xff1a; -1 示例3 输入&#xff1a; 3 3 1 2 3 0 1 3 1 0 2 3 5 1 输出&#xff1a; 1 分析&#xff1a;压缩路径 顺序&#xff1a;1 2&#xff1b;…

Kubeadm搭建k8s

一、架构 节点名称规格IP地址安装组件master012C/4G&#xff0c;cpu核心数要求大于2192.168.88.76docker、kubeadm、kubelet、kubectl、flannelnode012C/2G192.168.88.20docker、kubeadm、kubelet、kubectl、flannelnode022C/2G192.168.88.21docker、kubeadm、kubelet、kubect…

Ubuntu 安装 redis

一、使⽤apt安装 apt install redis -y 二、⽀持远程连接 修改 /etc/redis/redis.conf 修改 bind 127.0.0.1 为 bind 0.0.0.0修改 protected-mode yes 为 protected-mode no # By default, if no "bind" configuration directive is specified, Redis listens# fo…

Vue常用的修饰符有哪些?

修饰符&#xff08;Modifiers&#xff09;是用于指定以特殊方式绑定或处理Vue事件或指令的特殊符号。 事件修饰符 .stop: 阻止时间继续传播&#xff0c;相当于调用event.stopPropagation() .prevent: 阻止默认事件&#xff0c;相当于调用event.preventDefault() .capture: 使…