从现有虚拟机创建 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>

标签参数说明:

键可选值说明
virtualization.cpaas.io/image-os-archamd64, arm64VM 操作系统架构
virtualization.cpaas.io/image-os-typelinux, windowsVM 操作系统类型
virtualization.cpaas.io/storage-classstorage class 名称默认存储类,可在创建 VM 时调整
virtualization.cpaas.io/access-modeReadWriteOnce, ReadWriteMany磁盘访问模式;VM 热迁移请使用 ReadWriteMany
virtualization.cpaas.io/size容量(Gi、Ti 等)默认磁盘大小;请指定合适的大小
virtualization.cpaas.io/volume-modeBlock, Filesystem磁盘卷模式;建议使用 Block 模式以获得更好的性能

重要:

  • 确保命名空间为 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。