容器是 Linux 操作系统用户空间的轻量级版本 - 事实上,它是最低限度的。 然而,它仍然是一个成熟的操作系统,因此这个容器本身的质量与成熟的操作系统一样重要。 这就是为什么我们长期以来提供
但现在一切都变了
随着红帽通用基础镜像 (UBI) 的发布,无论您是否订阅,您现在都可以获得官方红帽容器镜像所期望的可靠性、安全性和性能。 这意味着您可以在 UBI 上构建容器化应用程序,将其放入您选择的容器注册表中,并与世界共享。 红帽通用基础映像可让您在任何环境(您想要的地方)中构建、共享和协作开发容器化应用程序。
借助 UBI,您几乎可以在任何基础设施上发布和运行您的应用程序。 但如果您在红帽平台(例如红帽 OpenShift 和红帽企业 Linux)上运行它们,您可以获得额外的好处(更多黄金!)。 在我们继续更详细地描述 UBI 之前,让我提供一个简短的常见问题解答,说明为什么需要 RHEL 订阅。 那么,在 RHEL/OpenShift 平台上运行 UBI 映像时会发生什么?
现在我们对营销感到满意,让我们更详细地讨论 UBI
使用 UBI 的理由
当您知道 UBI 将使您受益时,您应该有何感受:
- 我的 开发商 希望使用可以在任何环境中分发和运行的容器镜像
- 我的团队 操作 想要一个具有企业级生命周期的受支持的基础映像
- 我的 建筑师 想要提供
Kubernetes运算符 致我的客户/最终用户 - 我的 顾客 他们不想为整个红帽环境提供企业级支持而大吃一惊
- 我的 社区 想要在任何地方共享、运行、发布容器化应用程序
如果至少其中一种场景适合您,那么您绝对应该考虑 UBI。
不仅仅是一个基本图像
UBI 比成熟的操作系统要小,但 UBI 有三个重要的东西:
- 一组三个基本映像(ubi、ubi-minimal、ubi-init)
- 具有各种编程语言(nodejs、ruby、python、php、perl等)的现成运行环境的镜像
- YUM 存储库中具有最常见依赖项的一组相关包
UBI 是作为在容器中开发和交付的云原生和 Web 应用程序的基础而创建的。 UBI 中的所有内容都是 RHEL 的子集。 UBI 中的所有软件包均通过 RHEL 渠道提供,并且在 Red Hat 支持的平台(例如 OpenShift 和 RHEL)上运行时,与 RHEL 一样受到支持。
确保对容器的高质量支持需要工程师、安全专家和其他额外资源的大量努力。 这不仅需要测试基础映像,还需要分析它们在任何支持的主机上的行为。
为了帮助减轻升级负担,红帽正在积极开发和支持,例如,UBI 7可以在RHEL 8主机上运行,UBI 8可以在RHEL 7主机上运行,这为用户提供了灵活性、信心和安心。请注意他们在此过程中需要的信息,例如容器镜像或所使用的主机中的平台更新。 现在这一切都可以分为两个独立的项目。
三个基本图像
最小 – 专为具有所有依赖项(Python、Node.js、.NET 等)的应用程序而设计
- 预装内容的最小集合
- 没有 suid 可执行文件
- 最小的包管理器工具(安装、更新和删除)
平台 – 适用于在 RHEL 上运行的任何应用程序
- OpenSSL 统一加密堆栈
- 完整的 YUM 堆栈
- 包括有用的基本操作系统实用程序(tar、gzip、vi 等)
多服务——可以轻松地在一个容器中运行多个服务
- 配置为在启动时运行 systemd
- 能够在构建阶段启用服务
具有现成的编程语言运行环境的容器镜像
除了允许您安装编程语言支持的基础映像之外,UBI 还包括预构建映像,以及适用于多种编程语言的现成运行时环境。 许多开发人员可以简单地抓取图像并开始开发他们正在开发的应用程序。
随着 UBI 的推出,红帽提供了两套镜像 - 基于 RHEL 7 和基于 RHEL 8。它们分别基于 Red Hat Software Collections (RHEL 7) 和 Application Streams (RHEL 8)。 这些运行时保持最新,并且按照标准每年最多接收四次更新,因此您始终运行最新、最稳定的版本。
以下是 UBI 7 容器镜像列表:
以下是 UBI 8 的容器镜像列表:
关联包
使用现成的图像确实非常方便。 红帽使它们保持最新状态,并随着 RHEL 新版本的发布以及关键 CVE 更新根据更新政策变得可用时进行更新
但有时,在创建应用程序时,您可能突然需要一些额外的包。 或者,有时,为了使应用程序正常工作,您需要更新一个或另一个包。 这就是为什么 UBI 映像附带一组可通过 yum 获得的 RPM,并且使用快速且高度可用的内容交付网络进行分发(您已经获得了软件包!)。 当您在关键发布点对 CI/CD 运行 yum 更新时,您可以确定它会起作用。
RHEL 是基础
我们不厌其烦地重复 RHEL 是一切的基础。 您知道红帽的哪些团队致力于创建基础映像吗? 例如这些:
- 工程团队负责确保 glibc 和 OpenSSL 等核心库以及 Python 和 Ruby 等语言运行时在容器中使用时提供一致的性能并可靠地运行工作负载。
- 产品安全团队负责及时纠正图书馆和语言环境中的错误和安全问题,他们的工作有效性通过专门的指标进行评估
集装箱健康指数等级 . - 由产品经理和工程师组成的团队致力于添加新功能并确保较长的产品生命周期,让您对自己的投资充满信心。
红帽企业 Linux 为容器提供了出色的主机和映像,但许多开发人员重视以各种格式使用系统的能力,其中一些格式可能超出了 Linux 系统支持的用例。 这就是通用 UBI 镜像发挥作用的地方。
假设现在,在这个阶段,您只是在寻找一个基础镜像来开始开发一个简单的容器化应用程序。 或者您是否已经距离未来更近了,并从在容器引擎上运行的独立容器转向使用构建和认证在 OpenShift 上运行的 Operator 的云原生历史。 无论如何,全民基本收入将为此提供良好的基础。
容器包括采用新包装格式的操作系统用户空间的轻量级版本。 UBI镜像的发布为容器化开发树立了新的行业标准,使企业级容器可供任何用户、独立软件开发人员和开源社区使用。 特别是,软件开发人员可以使用单一的、经过验证的基础来标准化他们的产品,用于所有容器化应用程序,包括
如何开始处理图像
简而言之,非常简单。 Podman 不仅可以在 RHEL 上使用,还可以在 Fedora、CentOS 和其他几个 Linux 发行版上使用。 您所要做的就是从以下存储库之一下载图像,然后就可以开始了。
对于 UBI 8:
podman pull registry.access.redhat.com/ubi8/ubi
podman pull registry.access.redhat.com/ubi8/ubi-minimal
podman pull registry.access.redhat.com/ubi8/ubi-init
对于 UBI 7:
podman pull registry.access.redhat.com/ubi7/ubi
podman pull registry.access.redhat.com/ubi7/ubi-minimal
podman pull registry.access.redhat.com/ubi7/ubi-init
好吧,请查看完整的通用基础映像指南
来源: habr.com