第 3 章 嵌入在 RHEL for Edge 镜像中供离线使用


rpm-ostree 提交中嵌入 MicroShift 容器意味着您可以在 air-gapped、断开连接或离线环境中运行集群。您可以将红帽构建的 MicroShift 容器嵌入到 Red Hat Enterprise Linux for Edge (RHEL for Edge)镜像中,以便容器引擎不需要从容器 registry 通过网络拉取镜像。工作负载可以在不网络连接的情况下立即启动。

3.1. 为离线部署嵌入 MicroShift 容器

您可以使用镜像构建器使用嵌入式 MicroShift 容器镜像创建 RHEL for Edge 镜像。要嵌入容器镜像,您必须将镜像引用添加到镜像构建器蓝图文件中。

先决条件

  • 您有访问构建主机的 root-user 访问权限。
  • 您的构建主机满足镜像构建器系统要求。
  • 已安装并设置镜像构建器和 composer-cli 工具。
  • 您创建了 RHEL for Edge 镜像蓝图。
  • 安装了 jq。

流程

  1. 获取您要部署的 MicroShift 版本使用的容器镜像引用列表。您可以按照以下步骤 2 来安装 microshift-release-info RPM 软件包,或按照以下步骤下载并解包 RPM。
  2. 安装 microshift-release-info RPM 软件包:

    1. 运行以下命令安装 microshift-release-info RPM 软件包:

      $ sudo dnf install -y microshift-release-info-<release_version>
      Copy to Clipboard Toggle word wrap

      使用整个版本号(如 4.17.1 )将 < release_version > 替换为您要部署的发行版本的数字值。

    2. 运行以下命令,列出 /usr/share/microshift/release 目录的内容,以验证发行信息文件是否存在:

      $ sudo ls /usr/share/microshift/release
      Copy to Clipboard Toggle word wrap

      输出示例

      release-x86_64.json
      release-aarch64.json
      Copy to Clipboard Toggle word wrap

      如果安装了 microshift-release-info RPM,请继续执行第 4 步。

  3. 如果您没有完成第 2 步,请下载并解包 microshift-release-info RPM,而不安装它:

    1. 运行以下命令来下载 RPM 软件包:

      $ sudo dnf download microshift-release-info-<release_version> 
      1
      Copy to Clipboard Toggle word wrap
      1
      使用整个版本号(如 4.17.1 )将 < release_version > 替换为您要部署的发行版本的数字值。

      RPM 输出示例

      microshift-release-info-4.17.1.-202511101230.p0.g7dc6a00.assembly.4.17.1.el9.noarch.rpm
      Copy to Clipboard Toggle word wrap

    2. 运行以下命令解包 RPM 软件包而不安装它:

      $ rpm2cpio <my_microshift_release_info> | cpio -idmv 
      1
      
      ./usr/share/microshift/release/release-aarch64.json
      ./usr/share/microshift/release/release-x86_64.json
      Copy to Clipboard Toggle word wrap
      1
      <my_microshift_release_info > 替换为上一步中的 RPM 软件包的名称。
  4. 运行以下命令,定义包含容器引用信息的 JSON 文件的位置:

    $ RELEASE_FILE=</path/to/your/release-$(uname -m).json> 
    1
    Copy to Clipboard Toggle word wrap
    1
    </path/to/your/release-$(uname -m).json > 替换为 JSON 文件的完整路径。请务必使用您的架构所需的文件。
  5. 运行以下命令,定义 TOML 文件的位置,其中包含构建镜像的说明:

    $ BLUEPRINT_FILE=</path/to/your/blueprint.toml> 
    1
    Copy to Clipboard Toggle word wrap
    1
    </path/to/your/blueprint.toml > 替换为 TOML 文件的完整路径。
  6. 运行以下命令,生成并嵌入蓝图 TOML 文件中的容器镜像引用:

    $  jq -r '.images | .[] | ("[[containers]]\nsource = \"" + . + "\"\n")' "${RELEASE_FILE}" >> "${BLUEPRINT_FILE}"
    Copy to Clipboard Toggle word wrap

    显示容器引用的 TOML 片段示例

    [[containers]]
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db"
    
    [[containers]]
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db"
    Copy to Clipboard Toggle word wrap

  7. 您可以使用以下示例将其添加到镜像构建器蓝图文件中来手动嵌入任何容器镜像:

    将容器镜像手动嵌入到蓝图中的示例

    [[containers]]
    source = "<my_image_pullspec_with_tag_or_digest>"
    Copy to Clipboard Toggle word wrap

    <my_image_pullspec_with_tag_or_digest > 替换为您要部署的 MicroShift 版本所使用的容器镜像的确切引用。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat