第 3 章 嵌入应用程序以供离线使用
您可以在 Red Hat Enterprise Linux for Edge (RHEL for Edge)镜像中嵌入基于微服务的工作负载和应用程序。嵌入意味着您可以在 air-gapped、断开连接或离线环境中运行 MicroShift 集群的红帽构建。
3.1. 嵌入工作负载容器镜像以供离线使用
要在边缘的设备中嵌入没有网络连接的容器镜像,您必须创建一个新容器,挂载 ISO,然后将内容复制到文件系统中。
先决条件
- 有到主机的 root 访问权限。
- 应用程序 RPM 已添加到蓝图中。
-
已安装 OpenShift CLI(
oc
)。
流程
运行以下命令,呈现清单,提取所有容器镜像引用,并将应用程序镜像转换为蓝图容器源:
$ oc kustomize ~/manifests | grep "image:" | grep -oE '[^ ]+$' | while read line; do echo -e "[[containers]]\nsource = \"${line}\"\n"; done >><my_blueprint>.toml
运行以下命令,将更新的蓝图推送到镜像构建器:
$ sudo composer-cli blueprints push <my_blueprint>.toml
如果您的工作负载容器位于私有存储库中,则必须为镜像构建器提供必要的 pull secret:
-
在
/etc/osbuild-worker/osbuild-worker.toml
文件中,将osbuilder worker
配置的[containers]
部分中的auth_file_path
设置为指向 pull secret。 如果需要,为 pull secret 创建目录和文件,例如:
目录和文件示例
[containers] auth_file_path = "/<path>/pull-secret.json" 1
- 1
- 使用之前设置的自定义位置来复制和检索镜像。
-
在
运行以下命令来构建容器镜像:
$ sudo composer-cli compose start-ostree <my_blueprint> edge-commit
-
继续您首选的
rpm-ostree
镜像流,如等待构建完成、导出镜像并将其集成到rpm-ostree
存储库或创建可引导 ISO。