第 1 章 RHEL 的镜像模式简介
使用 RHEL 的镜像模式构建、测试,并使用与应用程序容器一样的工具和技术来部署操作系统。使用 registry.redhat.io/rhel9/rhel-bootc
bootc 镜像可以使用 RHEL 的镜像模式。RHEL bootc 镜像与现有应用程序通用基础镜像(UBI)不同,它们包含通常排除的引导所需的其他组件,如内核、initrd、引导装载程序、固件等。
红帽将 rhel9/rhel-bootc
容器镜像作为技术预览提供。技术预览功能提供对未来产品创新的早期访问,使客户能够在开发过程中测试功能并提供反馈。但是,这些功能不被完全支持。技术预览功能的文档可能不完整,或者仅包含基本安装和配置信息。如需有关 技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
图 1.1. 使用 RHEL 的镜像模式构建、部署和管理操作系统
红帽为以下计算机架构提供 bootc 镜像:
- AMD 和 Intel 64 位体系架构 (x86-64-v2)
- 64 位 ARM 架构(ARMv8.0-A)
RHEL 的镜像模式的好处贯穿于系统的整个生命周期。以下列表包含一些最重要的优点:
- 容器镜像比其他镜像格式更易于理解和使用,且可快速构建
- Containerfiles,也称为 Dockerfile,提供了一种简单的方法来定义镜像的内容和构建指令。与其他镜像创建工具相比,构建和迭代容器镜像通常要快得多。
- 整合流程、基础架构和发布工件
- 因为您将应用程序作为容器分发,所以您可以使用同样的基础设施和流程来管理底层操作系统。
- 不可变的更新
-
正如容器化应用程序以不可变的方式更新一样,使用 RHEL 的镜像模式,操作系统也是如此。您可以以使用
rpm-ostree
系统的同样的方式引导到更新,并在需要时回滚。
不支持使用 rpm-ostree
进行更改或安装内容。
- 跨混合云环境的可移植性
- 您可以在物理、虚拟化、云和边缘环境中使用引导镜像。
虽然容器为构建、传输和运行镜像提供基础,但在部署这些引导镜像后(使用安装机制),或者将它们转换为磁盘镜像非常重要,但系统不会作为容器运行。
支持的镜像类型 如下:
- 容器镜像格式:OCI
磁盘镜像格式:
- ISO
- QEMU copy-on-write (QCOW2), Raw
- Amazon 机器镜像 (AMI)
- 虚拟机镜像(VMI)
- 虚拟机磁盘(VMDK)
容器通过提供以下可能性来简化 RHEL 系统的生命周期:
- 构建容器镜像
-
您可以通过修改 Containerfile 来在构建时配置操作系统。RHEL 的镜像模式可使用
registry.redhat.io/rhel9/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 9 系统。如需更多信息,请参阅 RHEL 系统注册文档。
- 您有一个容器注册中心。您可以在本地创建注册中心,或者在 Quay.io 服务上创建一个免费帐户。要创建 Quay.io 帐户,请参阅 Red Hat Quay.io 页面。
- 您有一个具有生产或开发人员订阅的红帽帐户。Red Hat Enterprise Linux Overview 页面上提供了免费的开发人员订阅。
- 您已认证到 registry.redhat.io 。如需更多信息,请参阅 红帽容器注册中心身份验证 文章。