Kubernetes生产实践系列之二:在Kubernetes使用kubevirt运行管理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                           

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值