从现有虚拟机创建虚拟机模板

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

前提条件

  • 已正确部署和配置的 KubeVirt 环境。
  • 可访问 Web 控制台和 kubectl 工具。
  • 已配置并安装必要软件的虚拟机。

操作步骤

步骤 1:虚拟机上的基础配置

在虚拟机内部,执行以下操作:

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

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

cloud-init clean
shutdown -h now

步骤 2:创建虚拟机快照

使用 KubeVirt Web 控制台:

  1. 进入 Virtualization > Virtual Machines
  2. 选择用于作为模板的虚拟机。
  3. 点击 Actions,选择 Create Snapshot,为快照命名并确认。

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

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

  • 通过 Web 控制台:

    • 进入 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: MicroOS-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: microos-clone
  namespace: kube-public
spec:
  source:
    snapshot:
      name: <Your Snapshot Resource Name>
      namespace: <Your Snapshot Namespace>

标签参数说明:

可能取值说明
virtualization.cpaas.io/image-os-archamd64, arm64虚拟机操作系统架构
virtualization.cpaas.io/image-os-typelinux, windows虚拟机操作系统类型
virtualization.cpaas.io/storage-class存储类名称默认存储类,可在创建虚拟机时调整
virtualization.cpaas.io/access-modeReadWriteOnce, ReadWriteMany磁盘访问模式;虚拟机热迁移需使用 ReadWriteMany
virtualization.cpaas.io/size容量(Gi、Ti 等)默认磁盘大小,请根据需求指定
virtualization.cpaas.io/volume-modeBlock, Filesystem磁盘卷模式;推荐使用 Block 模式以获得更好性能

重要提示:

  • 命名空间必须为 kube-public
  • 这些磁盘相关参数在创建虚拟机时可以修改,但提供默认值可简化操作。

步骤 5:使用模板创建新虚拟机

  1. 访问 KubeVirt Web 控制台,进入 Container Platform > Virtualization > Virtual Machines
  2. 点击 Create Virtual Machine
  3. Image 部分,选择 Image Instance 作为提供方式。
  4. 从下拉列表中选择刚创建的 DataSource。
  5. 根据需要配置其他参数,完成虚拟机创建。

至此,您已成功使用虚拟机模板创建并部署了新的虚拟机。