Kubernetes生产实践系列之二:在Kubernetes使用kubevirt运行管理Ubuntu/Windows桌面操作系统

Kubernetes管理Ubuntu与Windows桌面
本文介绍如何在Kubernetes中部署和管理Ubuntu及Windows桌面系统,包括制作虚拟机镜像、创建PersistentVolume和PersistentVolumeClaim,以及通过VNC访问虚拟机。

一、前言

在容器化部署的云原生环境中,我们还是在某些情况下需要虚拟机来解决一些特殊的问题,最为直接的例子就是需要Desktop来运行一些带GUI的程序。这里尝试在Kubernetes运行Ubuntu和Windows Desktop,并且在里面运行浏览器,这可以满足某些研发或者测试人员在内部安全的测试一些系统的浏览器效果。

虚拟机的运行时还是使用qemu/kvm,而管理虚拟机的运行时使用kubevirt,它的安装方法请参见《kubernetes系列之十九:配置kubernetes使用kubevirt管理虚拟机》。当然,一般的公有云供应商在虚拟机环境是不支持嵌套虚拟化的,所以也没法使用kubevirt,所以这个方案是在自建机房基于物理机集群的Kubernetes上部署实施的。

在使用Kubernetes管理虚拟机的时候,需要先制作虚拟机镜像,然后使用Kubernetes节点的本地存储或者网络存储来存储镜像。

转载自https://blog.youkuaiyun.com/cloudvtech

 

二、使用Kubernetes部署管理Ubuntu桌面系统

2.1 制作镜像

首先使用Virtualbox安装一个Ubuntu桌面系统,随后开机安装openssh-server和remote-viewer。关机之后找到镜像ububtu.vdi,上传到某个Kubernetes节点,并且使用qemu-img将vdi格式转成raw格式且赋予把owner权限给qemu(107) user和group:

qemu-img convert -f vdi -O raw ubuntu.vdi ubuntu.img

mv ubuntu.img disk.img; chown 107.107 disk.img 

mkdir /home/img; mv disk.img /home/img 

更多选择可以参考kubevirt的这个手册

2.2 创建host PV和PVC

local-volumes.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: ubuntu
  labels:
    type: local
    app: ubuntu
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /home/ubuntu-img
  persistentVolumeReclaimPolicy: Recycle

pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: ubuntu
  namespace: vm
  annotations:
    volume.beta.kubernetes.io/storage-class: ""
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi

kubectl get pv | grep ubuntu

ubuntu                           

### 下载适用于Ubuntu的64位虚拟机镜像 为了下载适用于Ubuntu的64位虚拟机镜像,可以按照以下方法操作: #### 方法一:通过官方渠道获取 可以从Ubuntu官方网站或其他可信源下载预构建的64位虚拟机镜像文件。通常这些镜像是 `.iso` 或者 `.qcow2` 格式的文件。 例如,可以通过 `wget` 命令从云镜像仓库下载 Ubuntu 的服务器版本(14.04 版本作为示例)[^2]: ```bash sudo apt-get install qemu-utils # 安装处理 QCOW2 格式所需的工具 wget http://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img ``` 上述命令会安装必要的工具并下载一个基于云环境优化的 Ubuntu 镜像文件。如果需要其他版本或者桌面版,则可以根据需求替换 URL 地址。 #### 方法二:使用QEMU/KVM创建自定义镜像 对于更高级的需求,比如运行特定架构下的系统(如RISC-V),也可以借助 QEMU 创建定制化镜像。例如,在 RISC-V 架构下启动 Linux 虚拟机会涉及如下命令[^3]: ```bash sudo qemu-system-riscv64 \ -nographic -machine virt \ -kernel riscv-pk/build/bbl \ -append "root=/dev/vda ro console=ttyS0" \ -drive file=busybear-linux/busybear.bin,format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 ``` 虽然此例子针对的是 RISC-V 平台,但它展示了如何利用现有资源来配置适合不同硬件平台的虚拟机实例。 #### 方法三:KubeVirt中的应用 如果是计划在 Kubernetes 环境内部署虚拟机服务的话,那么 KubeVirt 是一种可行的选择方案之一[^4]。它允许用户轻松地管理和调度容器化的虚拟工作负载。关于具体实施细节,请参照其项目文档链接所提供的指导说明完成相应步骤即可实现目标功能特性集成为可能。 总之,无论采用哪种方式获得所需的操作系统映像文件,请务必确认所选版本与实际使用的计算设备兼容性良好,并遵循各软件包管理器提示更新依赖关系列表后再继续执行后续动作以免遇到不必要的麻烦情况发生影响工作效率提升进度安排表制定合理性评估报告撰写质量标准达成共识意见统一行动指南发布通知公告宣传推广活动策划方案设计创意构思头脑风暴会议记录整理归档保存备份恢复策略规划应急预案演练培训教育学习资源共享交流互动沟通协作配合默契程度提高团队凝聚力增强企业竞争力促进可持续发展贡献社会价值创造经济效益双赢局面形成良性循环模式建立长期合作关系维护客户满意度忠诚度保持市场占有率领先优势巩固品牌形象树立行业标杆引领潮流趋势发展方向指引未来愿景展望美好明天共同奋斗努力拼搏成就伟大事业梦想成真! ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值