从现有虚拟机创建 VM 模板

本文档说明如何基于现有 VM 创建可复用的虚拟机(VM)模板,以便快速部署新的 VM。

前提条件

  • 已正确部署并配置 KubeVirt 环境。
  • 可访问 Web Console 和 kubectl 工具。
  • 已配置一台 VM,并安装了所需软件。

操作步骤

步骤 1:在虚拟机上进行基本配置

在 VM 内执行以下步骤:

  • 安装 cloud-init
  • 安装 qemu-guest-agent
  • 安装任何必需的软件。

安装完成后,运行以下命令清理 cloud-init 数据并关闭 VM:

cloud-init clean
shutdown -h now

步骤 2:创建 VM 快照

使用 KubeVirt Web Console:

  1. 导航到 Virtualization > Virtual Machines
  2. 选择要作为模板的 VM。
  3. 单击 Actions,选择 Create Snapshot,输入快照名称,然后确认。

步骤 3:获取磁盘快照资源名称

可通过以下任一方式获取完整的快照资源名称:

  • 通过 Web Console:

    • 导航到 Storage > Volume Snapshots
    • 在 "Data Source" 下查找并记录完整的快照资源名称。
  • 使用 kubectl:

    kubectl get volumesnapshots -n <NAMESPACE>

    从输出中记录完整的快照资源名称。

步骤 4:创建 DataSource 资源

kube-public 命名空间中创建以下 DataSource 资源,并将占位符替换为实际的快照名称和命名空间:

apiVersion: cdi.kubevirt.io/v1beta1
kind: DataSource
metadata:
  annotations:
    cpaas.io/display-name: AlaudaOS-Clone
  labels:
    virtualization.cpaas.io/image-os-arch: amd64
    virtualization.cpaas.io/image-os-type: linux
    virtualization.cpaas.io/storage-class: cephrbd
    virtualization.cpaas.io/access-mode: ReadWriteMany
    virtualization.cpaas.io/size: 30Gi
    virtualization.cpaas.io/volume-mode: Block
  name: alaudaos-clone
  namespace: kube-public
spec:
  source:
    snapshot:
      name: <Your Snapshot Resource Name>
      namespace: <Your Snapshot Namespace>

标签参数说明:

KeyPossible ValuesDescription
virtualization.cpaas.io/image-os-archamd64, arm64VM 操作系统架构
virtualization.cpaas.io/image-os-typelinux, windowsVM 操作系统类型
virtualization.cpaas.io/storage-classstorage class name默认 storage class,可在创建 VM 时调整
virtualization.cpaas.io/access-modeReadWriteOnce, ReadWriteMany磁盘访问模式;VM live migration 请使用 ReadWriteMany
virtualization.cpaas.io/sizeCapacity (Gi, Ti, etc.)默认磁盘大小;请指定合适的容量
virtualization.cpaas.io/volume-modeBlock, Filesystem磁盘卷模式;建议使用 Block 模式以获得更好的性能

重要:

  • 确保 namespace 为 kube-public
  • 这些与磁盘相关的参数可以在创建 VM 时修改,但提供默认值可简化操作流程。

步骤 5:使用模板创建新的 VM

  1. 访问 KubeVirt Web Console,进入 Container Platform > Virtualization > Virtual Machines
  2. 单击 Create Virtual Machine
  3. Image 下,将 Provision Method 选择为 Image Instance
  4. 从下拉列表中选择新创建的 DataSource。
  5. 根据需要配置其他参数,并完成 VM 创建流程。

至此,您已成功使用 VM 模板创建并部署新的 VM。