4.11. 使用自定义置备服务器使用自定义镜像


重要

技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

默认情况下,OpenStackBaremetalSet CR 会自动为每个节点集创建一个 OpenStackProvisionServer CR,为节点置备提供捆绑的操作系统镜像。您可以创建自定义 OpenStackProvisionServer CR,为不同的操作系统镜像提供服务。

先决条件

  • 包含 data plane 部署所需的所有软件包的 QCOW2 容器镜像,如下所示:

    • QCOW2 磁盘镜像和 checksum 文件。
    • 将 QCOW2 容器镜像复制到 DEST_DIR 环境变量中指定的目录中的端点脚本,如 copy_out.sh

流程

  1. 为适合您的环境的容器镜像生成 checksum 文件:

    • 生成 SHA256 校验和文件:

      $ sha256sum <image_file_name>.qcow2 > <image_file_name>.qcow2.sha256sum
    • 生成 MD5 checksum 文件:

      $ md5sum <image_file_name>.qcow2 > <image_file_name>.qcow2.md5sum
    • 生成 SHA512 校验和文件:

      $ sha512sum <image_file_name>.qcow2 > <image_file_name>.qcow2.sha512sum
  2. 克隆 edpm-image-builder 存储库:

    $ git clone https://github.com/openstack-k8s-operators/edpm-image-builder.git
  3. 进入 edpm-image-builder 目录:

    $ cd edpm-image-builder
  4. edpm-image-builder 目录中创建容器镜像文件:

    $ FROM registry.access.redhat.com/ubi9/ubi-minimal:9.6
    $ COPY <image_file_name>.qcow2 /
    $ COPY <image_file_name>.qcow2.sha256sum /
    $ COPY copy_out.sh /copy_out.sh
    $ RUN chmod +x /copy_out.sh
    $ ENTRYPOINT ["/copy_out.sh"]

    其中:

    <image_file_name>

    指定 QCOW2 容器镜像的名称。

    注意
    • 文件复制到根目录中,因为 copy_out.sh 的默认 SRC_DIR/。如果要使用不同的源目录,您可以在容器文件中设置 ENV SRC_DIR=<path >。
    • 您可以使用压缩(.qcow2.gz)或使用 copy_out.sh 脚本解压缩的(.qcow2)镜像。
  5. 构建并推送容器镜像:

    $ buildah bud -f Containerfile -t <your_registry>/my-custom-os-image:latest
    $ buildah push <your_registry>/my-custom-os-image:latest

    其中:

    <your_registry>
    指定容器 registry 的 URL。
  6. 创建定义自定义置备服务器的 OpenStackProvisionServer CR:

    apiVersion: baremetal.openstack.org/v1beta1
    kind: OpenStackProvisionServer
    metadata:
      name: openstackprovisionserver
    spec:
      interface: <connection_interface>
      port: <connection_port>
      osImage: <image_file_name>.qcow2
      osContainerImageUrl: <your_registry>/my-custom-os-image:latest
      apacheImageUrl: registry.redhat.io/ubi9/httpd-24:latest
      agentImageUrl: quay.io/openstack-k8s-operators/openstack-baremetal-operator-agent:latest

    其中:

    <connection_interface>
    指定用于连接自定义置备服务器的接口。
    <connection_port>
    指定用于连接到自定义置备服务器的端口。
    <image_file_name>
    指定 QCOW2 容器镜像的名称。
    <your_registry>
    指定容器 registry 的 URL。
  7. 保存您的自定义 OpenStackProvisionServer CR 文件。
  8. 应用 OpenStackProvisionServer CR 配置:

    $ oc apply -f <provision_server_cr_file>

    其中:

    <provision_server_cr_file>
    指定您创建的新 OpenStackProvisionServer CR 文件的文件名。
  9. 将自定义 OpenStackProvisionServer CR 添加到适用的 OpenStackDataPlaneNodeSet CR 中。以下是使用自定义 OpenStackProvisionServer CR 的 OpenStackDataPlaneNodeSet CR 示例:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    metadata:
      name: example-nodeset
    spec:
      baremetalSetTemplate:
        provisionServerName: <provision_server_name>
        osImage: <image_file_name>.qcow2
        deploymentSSHSecret: <custom_ssh_secret>
        ctlplaneInterface: <ctrl_plane_interface>
      nodes:
        edpm-compute-0:
          hostName: edpm-compute-0

    其中:

    <provision_server_name>
    指定自定义 OpenStackProvisionServer CR 的名称。
    <image_file_name>
    指定 QCOW2 容器镜像的名称。
    <custom_ssh_secret>
    指定用于部署的 SSH secret。
    <ctrl_plane_interface>
    指定用于置备的 control plane 接口。
  10. 应用更新的 OpenStackDataPlaneNodeSet CR 配置:

    $ oc apply -f openstack_data_plane.yaml
  11. 通过确认状态为 SetupReady 来验证 data plane 资源是否已更新:

    $ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m

    当状态为 SetupReady 时,命令会返回一个 condition met 信息,否则会返回超时错误。

    如需有关 data plane 条件和状态的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件 和状态

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部