5.2. 使用 OpenShift Virtualization 置备设备


您可以使用托管在 OCI 容器 registry 上的 QCoW2 容器磁盘镜像在 OpenShift Virtualization 上置备虚拟机。

如果您的操作系统镜像还没有包含 Red Hat Edge Manager 代理注册配置,您可以在置备时通过 cloud-init 用户数据注入配置。

先决条件

  • 已安装 flightctl CLI 并登录到 Red Hat Edge Manager 服务实例。
  • 已安装 oc CLI,使用它来登录到 OpenShift 集群实例,并改为您要创建虚拟机的项目。

5.2.1. 创建 cloud-init 配置

要创建 cloud-init 配置,请完成以下步骤:

流程

  1. 运行以下命令,请求新的 Red Hat Edge Manager 代理注册配置并将其存储在名为 config.yaml 的文件中:

    flightctl certificate request --signer=enrollment --expiration=365d --output=embedded > config.yaml
    Copy to Clipboard
  2. 运行以下命令,创建一个名为 cloud-config.yaml 的云配置用户数据文件,该文件将代理配置放在第一次引导的正确位置:

    cat <<EOF > cloud-config.yaml
    #cloud-config
    write_files:
    - path: /etc/flightctl/config.yaml
      content: $(cat config.yaml | base64 -w0)
      encoding: b64
    EOF
    Copy to Clipboard
  3. 创建包含云配置用户数据文件的 Kubernetes Secret

    oc create secret generic enrollment-secret --from-file=userdata=cloud-config.yaml
    Copy to Clipboard

5.2.2. 创建虚拟机

创建一个虚拟机,其主磁盘填充自您的 QCoW2 容器磁盘镜像和 cloud-init 配置驱动器,该磁盘从您的注册 secret 填充。

完成以下步骤:

流程

  1. 运行以下命令,创建具有 VirtualMachine 资源清单的文件:

    cat <<EOF > my-bootc-vm.yaml
    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: my-bootc-vm
    spec:
      runStrategy: RerunOnFailure
      template:
        spec:
          domain:
            cpu:
              cores: 1
            memory:
              guest: 1024M
            devices:
              disks:
                - name: containerdisk
                  disk:
                    bus: virtio
                - name: cloudinitdisk
                  disk:
                    bus: virtio
          volumes:
            - name: containerdisk
              containerDisk:
                image: ${OCI_DISK_IMAGE_REPO}:${OCI_IMAGE_TAG}
            - name: cloudinitdisk
              cloudInitConfigDrive:
                secretRef:
                  name: enrollment-secret
    EOF
    Copy to Clipboard
  2. 运行以下命令,将资源清单应用到集群:

    oc apply -f my-bootc-vm.yaml
    Copy to Clipboard

其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat