k8s 1.18.20 kubevirt v0.47.1 创建 windows server 2019 虚拟机

该博客详细介绍了如何在Windows 10上的Kubernetes环境中使用VirtualBox进行嵌套虚拟化,部署Windows Server 2019。通过Dockerfile构建镜像,并利用KubeVirt创建VirtualMachineInstance,配置自动登录和安装脚本。内容包括设置自动无人值守安装、安装NFS客户端、挂载NFS、以及在Windows Server 2019中禁用用户帐户控制等步骤。

嵌套虚拟化

物理机: windows 10 专业版,
k8s 节点: virtualbox 6.1.22 虚拟机,使用嵌套虚拟化,ubuntu 18.04.5, k8s 1.18.20。

Dockerfile

进入 windows server 2019下载目录(此目录应当只有一个iso)构建镜像

cd /media/sf_backup/dev/os/windows-server-1909

cat <<EOF | sudo tee Dockerfile
FROM scratch
ADD --chown=107:107 en_windows_server_2019_x64_dvd_4cb967d8.iso /disk/
EOF

docker build -t windows-server-2019:1909 .

w2019-1909-c.yaml

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstance
metadata:
  name: w2019-1909-c
  labels:
    kubevirt.io/domain: w2019-1909-c
spec:
  domain:
    firmware:
      # this sets the bootloader type
      bootloader:
        bios: {
   
   }
    cpu:
      sockets: 1
      cores: 2
      threads: 2
    features:
      acpi: {
   
   }
      apic: {
   
   }
      hyperv:
        relaxed: {
   
   }
        vapic: {
   
   }
        vpindex: {
   
   }
        spinlocks:
          spinlocks: 8191
    resources:
      requests:
        memory: 4096M
        cpu: 4
    devices:
      blockMultiQueue: true
      #networkInterfaceMultiqueue: true
      inputs:
        - type: tablet
          bus: usb
          #bus: virtio
          name: tablet1
      disks:
      - name: rootdisk
        bootOrder: 1
        disk:
          bus: virtio
      - name: containerdisk
        bootOrder: 2
        cdrom:
          bus: sata
      - name: virtiocontainerdisk
        bootOrder: 3
        cdrom:
          bus: sata
      interfaces:
        - name: default
          model: e1000
          #bridge: {}
          masquerade: {
   
   }
  networks:
  - name: default
    pod: {
   
   }
  volumes:
    - name: containerdisk
      containerDisk:
        image: windows-server-2019:1909
    - name: rootdisk
      hostDisk:
        capacity: 30Gi
        path: /data/vm/instance/w2019-1909.img
        type: DiskOrCreate
    - name: virtiocontainerdisk
      containerDisk:
        image: kubevirt/virtio-container-disk:v0.37.0

kubectl create -f w2019-1909-c.yaml 创建虚拟机。
启动成功,运行 virtctl vnc w2019-1909-c 进行安装。
安装时,需要scan加载驱动,可选 Red Hat VirtIO SCSI controller。

w2019-1909-h.yaml

按照 w2019-1909-c.yaml 安装好windows2019后,可以使用 hostDisk 直接启动。

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstance
metadata:
  name: w2019-1909-h
  labels:
    kubevirt.io/domain: w2019-1909-h
spec:
  domain:
    firmware:
      # this sets the bootloader type
      bootloader:
        bios: {
   
   }
    cpu:
      sockets: 1
      cores: 2
      threads: 2
    features:
      acpi: {
   
   }
      apic: {
   
   }
      hyperv:
        relaxed: {
   
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值