第 4 章 嵌入红帽构建的 MicroShift 应用程序教程


以下教程提供了如何在 RHEL for Edge 镜像中嵌入应用程序以便在各种环境中在 MicroShift 集群中使用的详细示例。

4.1. 嵌入应用程序 RPM 指南

以下教程回顾 MicroShift 安装步骤,并添加用于嵌入应用程序的工作流的描述。如果您已经熟悉 rpm-ostree 系统,如 Red Hat Enterprise Linux for Edge (RHEL for Edge)和 MicroShift,您可以直接进入相关的操作。

4.1.1. 安装工作流查看

嵌入的应用程序需要类似的工作流将 MicroShift 嵌入到 RHEL for Edge 镜像中。

  • 下图显示了系统工件(如 RPM、容器和文件)如何添加到蓝图中,并由镜像 composer 创建 ostree 提交。
  • 然后,ostree 提交可以遵循 ISO 路径或边缘设备的存储库路径。
  • ISO 路径可用于断开连接的环境,而存储库路径通常用于网络通常连接。

嵌入 MicroShift 工作流

468 RHbM install workflow 1023 1

查看这些步骤可帮助您了解嵌入应用程序所需的步骤:

  1. 要在 RHEL for Edge 上嵌入 MicroShift,您需要将 MicroShift 存储库添加到 Image Builder 中。
  2. 您创建了声明您所需的所有 RPM、容器镜像、文件和自定义的蓝图,包括添加 MicroShift。
  3. 您已将蓝图添加到镜像构建器,并使用 Image Builder CLI 工具(composer-cli)运行构建。此步骤创建 rpm-ostree 提交,用于创建容器镜像。此镜像包含 RHEL for Edge。
  4. 将安装程序蓝图添加到镜像构建器中,以创建 rpm-ostree 镜像(ISO)来从其引导。此构建包含 RHEL for Edge 和 MicroShift。
  5. 下载了使用 MicroShift 嵌入的 ISO,准备好使用、置备它,然后将其安装到边缘设备中。

4.1.2. 嵌入应用程序 RPM 工作流

设置满足 Image Builder 要求的构建主机后,您可以将应用程序以清单目录的形式添加到镜像。这些步骤后,将应用程序或工作负载嵌入到新 ISO 中最简单的方法是创建自己的包含清单的 RPM。您的应用程序 RPM 包含描述部署的所有配置文件。

以下"嵌入的应用程序工作流"镜像演示了如何将 Kubernetes 应用程序清单和 RPM 规格文件合并到单个应用程序 RPM 构建中。此构建成为工作流中包含的 RPM 工件,用于将 MicroShift 嵌入到 ostree 提交中。

嵌入应用程序工作流

468 RHbM install workflow 1023 2

以下流程使用 rpmbuild 工具创建规格文件和本地存储库。规范文件定义了如何构建软件包,将应用程序清单移到 MicroShift 的 RPM 软件包中的正确位置,以便获取它们。然后,该 RPM 软件包被嵌入到 ISO 中。

4.1.3. 准备进行应用程序 RPM

要构建自己的 RPM,请选择您选择的工具,如 rpmbuild 工具,并在主目录中初始化 RPM 构建树。以下是示例步骤。只要您的 RPM 可以被镜像构建器访问,就可以使用您喜欢构建应用程序 RPM 的方法。

先决条件

  • 您已设置了满足 Image Builder 系统要求的 Red Hat Enterprise Linux for Edge (RHEL for Edge) 9.2 构建主机。
  • 有对主机的 root 访问权限。

流程

  1. 运行以下命令,安装 rpmbuild 工具并为其创建 yum 存储库:

    $ sudo dnf install rpmdevtools rpmlint yum-utils createrepo
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,创建构建 RPM 软件包所需的文件树:

    $ rpmdev-setuptree
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令列出确认创建的目录:

    $ ls ~/rpmbuild/
    Copy to Clipboard Toggle word wrap

    输出示例

    BUILD RPMS SOURCES SPECS SRPMS
    Copy to Clipboard Toggle word wrap

4.1.4. 为应用程序清单构建 RPM 软件包

要构建自己的 RPM,您必须创建一个 spec 文件,将应用程序清单添加到 RPM 软件包中。以下是示例步骤。只要应用程序 RPM 和其他镜像构建元素可供镜像构建器访问,您可以使用您喜欢的方法。

先决条件

  • 您已设置了满足 Image Builder 系统要求的 Red Hat Enterprise Linux for Edge (RHEL for Edge) 9.2 构建主机。
  • 有对主机的 root 访问权限。
  • 构建 RPM 软件包所需的文件树已创建。

流程

  1. ~/rpmbuild/SPECS 目录中,使用以下模板创建一个文件,如 & lt;application_workload_manifests.spec > :

    spec 文件示例

    Name: <application_workload_manifests>
    Version: 0.0.1
    Release: 1%{?dist}
    Summary: Adds workload manifests to microshift
    BuildArch: noarch
    License: GPL
    Source0: %{name}-%{version}.tar.gz
    #Requires: microshift
    %description
    Adds workload manifests to microshift
    %prep
    %autosetup
    %install 
    1
    
    rm -rf $RPM_BUILD_ROOT
    mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/microshift/manifests
    cp -pr ~/manifests $RPM_BUILD_ROOT/%{_prefix}/lib/microshift/
    %clean
    rm -rf $RPM_BUILD_ROOT
    
    %files
    %{_prefix}/lib/microshift/manifests/**
    %changelog
    * <DDD MM DD YYYY username@domain - V major.minor.patch>
    - <your_change_log_comment>
    Copy to Clipboard Toggle word wrap

    1
    %install 部分在 RPM 软件包 /usr/lib/microshift/manifests/ 中创建目标目录,并从源主目录 ~/manifests 复制清单。
    重要

    所有必需的 YAML 文件都必须位于源主目录 ~/manifests 中,如果您使用的是 kustomize,则包括 kustomize.yaml 文件。

  2. 运行以下命令,在 ~/rpmbuild/RPMS 目录中构建 RPM 软件包:

    $ rpmbuild -bb ~/rpmbuild/SPECS/<application_workload_manifests.spec>
    Copy to Clipboard Toggle word wrap

4.1.5. 在蓝图中添加应用程序 RPM

要将应用程序 RPM 添加到蓝图中,您必须创建一个本地仓库,供 Image Builder 用于创建 ISO。使用这个流程,您的工作负载所需的容器镜像可以通过网络拉取。

先决条件

  • 有对主机的 root 访问权限。
  • 工作负载或应用程序 RPM 存在于 ~/rpmbuild/RPMS 目录中。

流程

  1. 运行以下命令来创建本地 RPM 存储库:

    $ createrepo ~/rpmbuild/RPMS/
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,为 Image Builder 授予对 RPM 存储库的访问权限:

    $ sudo chmod a+rx ~
    Copy to Clipboard Toggle word wrap
    注意

    您必须确保 Image Builder 具有访问镜像构建所需的所有文件所需的权限,或者构建无法继续。

  3. 使用以下模板创建蓝图文件 repo-local-rpmbuild.toml

    id = "local-rpm-build"
    name = "RPMs build locally"
    type = "yum-baseurl"
    url = "file://<path>/rpmbuild/RPMS" 
    1
    
    check_gpg = false
    check_ssl = false
    system = false
    Copy to Clipboard Toggle word wrap
    1
    指定创建您选择的位置的路径部分。在后续命令中使用此路径来设置存储库并复制 RPM。
  4. 运行以下命令,将存储库添加为镜像构建器的源:

    $ sudo composer-cli sources add repo-local-rpmbuild.toml
    Copy to Clipboard Toggle word wrap
  5. 通过添加以下几行,将 RPM 添加到蓝图中:

    …
    [[packages]]
    name = "<application_workload_manifests>" 
    1
    
    version = "*"
    …
    Copy to Clipboard Toggle word wrap
    1
    在此处添加工作负载的名称。
  6. 运行以下命令,将更新的蓝图推送到镜像构建器:

    $ sudo composer-cli blueprints push repo-local-rpmbuild.toml
    Copy to Clipboard Toggle word wrap
  7. 此时,您可以运行 Image Builder 来创建 ISO,或嵌入容器镜像供离线使用。

    1. 要创建 ISO,请运行以下命令启动镜像构建器:

      $ sudo composer-cli compose start-ostree repo-local-rpmbuild edge-commit
      Copy to Clipboard Toggle word wrap

在这种情况下,容器镜像在启动时由边缘设备通过网络拉取。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat