第 1 章 RHEL 的镜像模式简介
使用 RHEL 的镜像模式构建、测试,并使用与应用程序容器一样的工具和技术来部署操作系统。RHEL 的镜像模式可以使用 registry.redhat.io/rhel10/rhel-bootc bootc 镜像提供。RHEL bootc 镜像与现有应用程序通用基础镜像(UBI)不同之处在于,它们包含传统上被排除在外的引导所需的其他组件,如内核、initrd、引导装载程序、固件等。
rhel-bootc 和基于 rhel-bootc 容器镜像的用户创建容器受到 Red Hat Enterprise Linux 最终用户许可协议(EULA) 的影响。您不被允许公开重新分发这些镜像。
图 1.1. 使用 RHEL 的镜像模式构建、部署和管理操作系统
红帽为以下计算机架构提供了 bootc 镜像:
- AMD 和 Intel 64 位体系架构 (x86-64-v2)
- 64 位 ARM 架构(ARMv8.0-A)
- IBM Power Systems 64-bit Little Endian 架构(ppc64le)
- IBM Z 64-bit 架构(s390x)
Anaconda 在 s390x 和 ppc64le 构架上可能无法正常工作。如需更多信息,请参阅 发行注记。
RHEL 的镜像模式的好处贯穿于系统的整个生命周期。以下列表包含一些最重要的优点:
- 容器镜像比其他镜像格式更易于理解和使用,且可快速构建
- Containerfiles,也称为 Dockerfile,提供了一种简单的方法来定义镜像的内容和构建指令。与其他镜像创建工具相比,构建和迭代容器镜像通常要快得多。
- 整合流程、基础架构和发布工件
- 因为您将应用程序作为容器分发,所以您可以使用同样的基础设施和流程来管理底层操作系统。
- 不可变的更新
-
正如容器化应用程序以不可变的方式更新一样,使用 RHEL 的镜像模式,操作系统也是如此。您可以以使用
rpm-ostree系统的同样的方式引导到更新,并在需要时回滚。 - 跨混合云环境的可移植性
- 您可以在物理、虚拟化、云和边缘环境中使用 bootc 镜像。
虽然容器提供构建、传输和运行镜像的基础,但理解在使用安装机制部署这些引导镜像后,或者将它们转换为磁盘镜像后,系统不会作为容器运行非常重要。
- Bootc 支持以下容器镜像格式和磁盘镜像格式:
| 镜像类型 | 目标环境 |
|---|---|
|
| 物理、虚拟化、云和边缘环境。 |
|
| Amazon 机器镜像. |
|
| QEMU (针对 Red Hat OpenStack、Red Hat OpenStack services for OpenShift 和 OpenShift Virtualization)、Libvirt (RHEL)等环境为目标)。 |
|
| vSphere 的 VMDK。 |
|
| 安装至找到的第一个磁盘的无人值守 Anaconda 安装程序。 |
|
| 未格式化的裸磁盘。也在 QEMU 和 Libvirt 中支持 |
|
| 用于虚拟 PC 的 VHD 等。 |
|
| Google Compute Engine (GCE)环境。 |
容器通过提供以下可能性来简化 RHEL 系统的生命周期:
- 构建容器镜像
-
您可以通过修改 Containerfile 来在构建时配置操作系统。RHEL 的镜像模式可通过
registry.redhat.io/rhel10/rhel-bootc容器镜像提供。您可以使用 Podman、OpenShift Container Platform 或其他标准容器构建工具来管理容器和容器镜像。您可以使用 CI/CD 管道自动化构建过程。 - 版本控制、镜像和测试容器镜像
- 您可以使用 Podman 或 OpenShift Container Platform 等任何容器工具版本化、镜像化、自省和签名派生的 bootc 镜像。
- 将容器镜像部署到目标环境中
有几个如何部署镜像的选项:
- Anaconda: 是 RHEL 使用的安装程序。您可以使用 Anaconda 和 Kickstart 将所有镜像类型部署到目标环境中,以自动化安装过程。
-
bootc-image-builder:是一种容器化工具,它将容器镜像转换为不同类型的磁盘镜像,并可选择将它们上传到镜像注册中心或对象存储中。 -
bootc: 是一个负责从容器注册中心获取容器镜像,并将其安装到系统、更新操作系统,或从现有的基于 ostree 的系统进行切换的工具。RHEL bootc 镜像默认包含bootc工具,并可用于所有镜像类型。它旨在取代rpm-ostree。
- 更新您的操作系统
-
系统支持部署后带回滚的就地事务更新。默认情况下,自动更新是开启的。systemd 服务单元和 systemd 定时器单元文件检查容器注册中心中的更新,并将其应用到系统。由于更新是事务性的,所以需要重新启动。对于需要更复杂的或计划部署的环境,请禁用自动更新,并使用
bootc工具更新您的操作系统。
RHEL 有两种部署模式。两者都在部署期间提供同样的稳定性、可靠性和性能。看看它们的不同:
-
软件包模式 :操作系统使用 RPM 软件包,并使用
dnf软件包管理器进行更新。root 文件系统是可变的。但是,操作系统不能作为容器化应用程序进行管理。 -
镜像模式 :一种构建、部署和管理 RHEL 的容器原生方法。同样的 RPM 软件包作为基础镜像提供,更新作为容器镜像部署。root 文件系统默认是不可变的,但
/etc和/var除外,大多数内容来自容器镜像。
您可以选择使用 镜像模式 或 软件包模式 部署来构建、测试和共享您的操作系统。镜像模式 还允许您以与任何其他容器化应用程序一样的方式管理操作系统。
1.1. 先决条件 复制链接链接已复制到粘贴板!
- 您有一个订阅的 RHEL 10 系统。如需更多信息,请参阅 RHEL 系统注册入门文档。
- 您有一个容器注册中心。您可以在本地创建注册中心,或者在 Quay.io 服务上创建一个免费帐户。要创建 Quay.io 帐户,请参阅 Red Hat Quay.io 页面。
- 您有一个具有生产或开发人员订阅的红帽帐户。Red Hat Enterprise Linux Overview 页面上提供了免费的开发人员订阅。
- 您已认证到 registry.redhat.io 。如需更多信息,请参阅 Red Hat Container Registry 身份验证 文章。