登录 / 注册 Account

红帽企业 Linux(RHEL)8.3 的发布带来了一系列新的容器功能。新功能立足于 RHEL 8.2 中现有功能(红帽企业 Linux 8.2 中的新容器功能)的基础上,让用户更有动力从 RHEL 7 升级到新版本。

摘要速览:

  • 新容器工具培训

  • 更新至 container-tools:rhel8 快速串流

  • Podman 2.0,采用新的 REST 应用编程接口(API)并拥有兼容 Docker 的端点

  • Skopeo 1.X,改进了稳定性和登录/登出功能

  • Buildah 和 Skopeo 镜像"全面可用"并受支持

  • Podman 容器镜像可以用于"技术预览"

  • 新的应用容器镜像

  • Podman 清单支持

更新容器工具快速串流(container-tools:rhel8)

RHEL 8.3 中的 container-tools:rhel8 串流更新到了以下版本:Podman 2.0.5、Buildah 1.15.1 和 Skopeo 1.1.1。

相较于 RHEL 8.2,它一些有趣的新特色功能有:

  • 如果用户使用 --userns=keep-id 运行 Podman,无根 Podman 现在将在 /etc/passwd 中为该用户添加一个条目。

  • podman system connection 命令已经重写以支持多个连接,并重新启用!

  • Podman 现在有一个新的全局标记 --connection,来指定与远程 Podman API 实例的连接。

  • podman search 命令现允许在搜索词中使用通配符。

  • podman play kube 命令现支持 IfNotPresent 提取类型。

  • REST API 和 podman 系统服务不再只是实验阶段,现已正式可用!

  • Podman 命令现支持通过 REST API 使用 --remote 标记进行远程连接。

  • Podman 远程客户端已完全重写,现在使用新的 REST API 取代了 Varlink。

  • podman generate systemd 命令现在支持和容器集一起使用的 --new 标记,允许为容器集创建可移植服务。

  • Buildah:在容器中添加 VFS 附加镜像存储

  • Buildah:更好地集成 containers.conf

Podman 2.0

这是 Podman 的主要新版本,但主要新版本是什么意思?Podman 使用 Semantic Versioning(简称为 SemVer)。semver.org 网站对此有相当全面的描述,我们在这里快速了解一下。在 SemVer 下,每个程序推出一个主要、次要或补丁版时,都会带有 MAJOR. MINOR. 或 PATCH 的版号。例如,在 RHEL 8.3 中,我们发布了 Podman 2.0.5。以下是 semver.org 对每个编号的解释:

  1. 主要版本表示进行了不兼容的 API 更改。

  2. 次要版本表示以向后兼容的方式添加功能。

  3. 补丁版本表示进行向后兼容的漏洞修复。

这次增加了 Podman 的主要版本号,是因为当前基于 varlink 的 API 已替换为新的 REST API,新的 REST API 针对的是 Podman 2.0,而其 Docker 兼容层针对的是 1.40 版本。新的 REST API 是与 Podman 进行程序交互的首选方式。基于 varlink 的接口现已弃用并不再扩展,并计划在 Podman 3.0 中将其删除。

对于使用 Docker 守护进程升级到包含 Podman 的 RHEL 8 的客户来说,此 REST 接口是促进从 RHEL 7 向新版本过渡的最后一步。自从我们推出 RHEL 8,Podman 在许多重要方面兼容 Docker 守护进程。Podman 使用相同的镜像,可以与相同的注册表服务器进行通信,使用相同的运行时(runc),甚至还有 Docker CLI 用户非常熟悉的命令行界面(CLI)。 

  • 图像格式:兼容

  • 注册表格式:兼容

  • 运行时格式:兼容

  • CLI:兼容

  • API:从 2.0 开始兼容

借助此新的 Podman 2.0 REST API,我们将能够解决最后的兼容性问题。解决这个问题后,用户可以将依赖 Docker API 的代码引入到 RHEL 8。这对 Podman 团队来说,是一项巨大成果,我们对此感到十分自豪。

若想深入了解,请查看以下文章和文档:

Buildah 和 Skopeo 的容器镜像

将软件打包成容器镜像,使创造者能够从用户的角度开始创建工作(《容器生活 - 用消费者思维写代码》)。在应用依赖项以及用来创建应用的工具方面,采用这种工作思路的确非常重要。为了减少阻碍,并确保符合开源容器运动(OCI)的工具能够覆盖每个用例,红帽正在开发容器工具的容器化版本,如 Buildah、Skopeo 和 Podman。

随着 RHEL 8.3 的发布,我们推出了 Podman 技术预览容器镜像,以及 BuildahSkopeo 的全面可用(GA)镜像。我们诚邀您使用这些镜像并向我们提供反馈。我们的目标是提供一套容器化应用,可以用来在任何已经运行容器的地方构建其他应用。

新的应用容器镜像

在 RHEL 8.3 中,我们发布了许多容器镜像的更新版本,旨在帮助用户构建应用。如需更多详细信息,请参阅发行说明和红帽生态系统目录中的 RHEL 8 产品页面

红帽通用基础镜像(UBI)8 产品页面

RHEL 8 产品页面

  • GCC 工具集/Perftools 10

  • Grafana

  • PCP

Podman 清单支持

无论 RHEL 8 是安装在 x86、ARM、POWER 还是 Z 上,您都可以在上面运行 podman run -it ubi8 命令。这个命令非常简单,但每个物理架构的容器镜像都不一样。每个容器镜像中的二进制文件都是针对该特定架构编译的。为 x86 编译的二进制文件不能在 ARM 处理器上运行,反之亦然。要使相同的命令在每个架构上都能运行,红帽需要将多个容器镜像嵌入到同一个容器存储库中。对于 RHEL 8 镜像,这意味着有 4 个不同的镜像嵌入到每个存储库中(例如,registry.access.redhat.com/ubi8/ubi),每个受支持的架构(例如,x86、ARM、POWER 和 Z)对应一个镜像。

这个新的 podman manifest 子命令可以帮助用户与必要的元数据交互,以便使用这些多架构存储库。此元数据在 OCI 术语中被称为镜像索引,或在 Docker 术语中被称为清单列表,本质上是一段 JSON 元数据,可为 Podman 或 Docker 等容器引擎提供它们所需的基本信息,即一个存储库中有哪些架构(x86、ARM、POWER、Z)可用。

RHEL 8.3 中最新发布的 Podman 提供了创建多架构镜像(适用于多个架构的镜像)并将其推送到远程服务器所需的基础工具。这些功能对构建高级容器镜像的客户很有用。

创建本地清单的示例:

podman manifest create localhost/list

然后,进行检查:

podman manifest inspect localhost/list

输出:

{  "schemaVersion": 2,  "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",  "manifests": null }

借助 RHEL 容器工具,提升您的 Linux 技能

由于容器在行业中的重要性愈发提高,红帽特将两门核心 Linux 课程延长了一天,以涵盖容器的相关内容。从 2020 年 10 月 1 日起,红帽系统管理二(RH134)和 RHCSA 快速提升课程(RH199)从 4 天延长到 5 天,最后一天会重点介绍容器,力图帮助用户准备好使用 Kubernetes 和红帽 OpenShift 。

参加 RH134 和 RH199 课程的学员将利用 RHEL 容器工具, 在单个 RHEL 服务器上以容器的形式获取、运行和管理服务。 

OpenShift 建立在值得信赖的 RHEL 基础上,提供您所熟悉和期望的相同安全防护功能、稳定性和生态系统。和红帽将 Linux 推广到企业一样,我们也在向企业推广 Kubernetes。而且因为容器从根本上来说是一种 Linux 技术,所以红帽能够为您提供最佳路径,帮助您在自己的核心技能中加入容器和 Kubernetes 技能。

这次 Linux 课程升级后,红帽认证系统管理员考试(EX200)将会包括容器资料。新的考试内容会让考生实际操作真实的容器应用,并将考试时长延长了 30 分钟。

红帽企业 Linux 7 EX200 不受这些变化的影响。只有红帽企业 Linux 8.2 RH199、RH134 和 EX200 的内容有所变化。红帽系统管理一(RH124)不包括容器,但使用工具也已经更新到 RHEL 8.2。

有关这些培训和认证更新的更多信息,请参阅专题博文提升技能登录页面

结论

无论是在容器镜像中,还是在容器主机上,红帽的容器都始于 RHEL。最新版本 RHEL 8.3 提供了作为 OpenShift 和其他平台基础的功能。

我们诚邀您了解我们所有的新功能:产品文档发行说明生态系统目录中新的 UBI 镜像


About the author

Scott McCarty is technical product manager for the container subsystem team, which enables key product capabilities in OpenShift Container Platform and Red Hat Enterprise Linux. Focus areas includes container runtimes, tools, and images. Working closely with engineering teams, at both a product and upstream project level, he combines personal experience with customer and partner feedback to enhance and tailor strategic container features and capabilities.

Read full bio