红帽容器支持政策

已更新 -

目的

本文档介绍了红帽如何为底层容器技术的不同组合提供支持。该政策基于[红帽对第三方软件的支持政策](https://access.redhat.com/third-party-software-support),并且只针对于以下两个主要产品所提供的技术:

  1. ** Red Hat OpenShift **- 基于 Kubernetes 和 Linux 的完整企业级产品。Red Hat Enterprise Linux CoreOS 作为 Kubernetes 集群中的一个可以完全被管理的组件被包括在内。
  2. ** Red Hat Enterprise Linux(RHEL)**- 完全可定制的容器主机,包括容器引擎,容器运行时库,容器镜像以及 Linux内核。它们作为一个整体被构建和测试。

OpenShift 的设计和部署是针对集群(编配或分布式系统)用例的解决方案,而 Red Hat Enterprise Linux 是针对独立节点的解决方案或作为OpenShift 集群的一部分。本文档重点介绍了底层的技术组合。有关集群解决方案的信息,请查看 [OpenShift Container Platform 支持政策](https://access.redhat.com/support/policy/updates/openshift/policies)。

支持政策概述#{#overview}

红帽对许多底层组件提供支持。客户可以使用这些技术来运行和管理完全受支持的容器基础结构。红帽在以下情况下支持这些技术:

  • [容器编配](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h.6yt1ex5wfo66)- 与 Red Hat OpenShift 一起作为集成 Kubernetes 的容器平台提供Linux(RHEL CoreOS或RHEL)编配功能,并提供管理和应用程序服务。
  • [容器主机](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h.8tyd9p17othl)-RHEL,RHEL CoreOS和RHEL Atomic
  • [容器镜像](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h.dqlu6589ootw)- 基于 Red Hat Enterprise Linux 或 Red Hat Universal Base Image (UBI),红帽提供了三个主要选项(最小(minimal),标准(standar),多服务(multi-service)),以及基于这些基础镜像构建的完整应用程序和分层产品。

可以将底层基础技术视为集成并经过测试的软件堆栈中的层。支持级别由堆栈中每一层中使用的底层组件确定。遵循这些准则将确保客户拥有可支持的容器环境 - 包括编配、主机和镜像。通过开发、测试,发布和支持完整的堆栈,红帽确保客户可以在整个承诺的产品生命周期中放心使用此技术。

下图以堆栈形式显示了支持级别。

为了便于阅读,本文档被分为 容器镜像容器平台 (容器编配、容器主机) 部分。

红帽如何支持容器镜像#{#container_images}

红帽通过 Red Hat Container Catalog(红帽容器目录)提供了一系列可以作为基础系统、中间件和应用程序的容器镜像:

  • 基础图像 - 仅用作为其他构建提供基础镜像的目的。红帽通用基本映像(UBI)提供三种版本 - 标准(standard),最小 (minimal) 和多服务 (multi-service)。
  • 编程语言运行时和框架 - 预先构建的容器镜像,如 PHP、Python、Ruby、NodeJS 等。开发人员可以在无需安装其他软件的情况下直接使用这些镜像来构建应用程序。虽然从技术上讲它们不是[基础图像](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h.hc7hn0blfovy),但此类容器图像包含了基础图像并且可以在此基础上进行构建。
  • 应用程序镜像 - 预先构建的容器镜像,它们本身不是基础镜像。此类容器镜像包含了基础镜像,并作为红帽或 ISV 产品的一部分提供应用程序或服务。

为了获得此政策中介绍的容器镜像,用户必须运行受支持的 Container Platform,且有相应的支持订阅。 Container Platform 支持的详细信息在以下介绍。

下图以堆栈形式显示了支持级别。

容器基础镜像支持#{#container_base_images}

红帽为客户提供了通用基础镜像(UBI),该镜像经过专门设计和测试,是构建应用程序镜像的基础。此外,红帽还提供了用来扩展这些基础镜像以及创建自定义基础镜像或应用程序镜像的工具。红帽建议用户为将来的所有需求使用红帽通用基础镜像。但在 RHEL 7 生命周期结束前,红帽仍然会继续支持 Red Hat Enterprise Linux 7 基础镜像 以满足 ABI/API 例外 。UBI 7 和 RHEL 7提供了完全相同的技术功能和软件包内容。本部分适用于 UBI 和Red Hat Enterprise Linux 7 基础镜像。

在运行受支持的 Container Platform 并具有相应的支持订阅时,红帽会完全支持使用 UBI 镜像或基于 UBI 的容器镜像。 提供的支持级别取决于官方使用指南及 Red Hat Enterprise Linux 产品[生命周期](https://access.redhat.com/support/policy/updates/errata)[^ 2] [^ 3]。容器支持政策适用于 Red Hat Universal Base Image 的所有变体(标准,最小或多服务)。对于基于 UBI 的容器镜像,红帽仅对其中的红帽组件提供支持。

作为 UBI 的一部分提供的所有图像均符合 OCI,可根据我们的 EULA 条款重新发布,并且能够在非红帽平台上运行。红帽为 UBI 提供更新,则无需产品订阅即可获得。该内容是 REL 和 Software Collections (SCL)当前软件包的子集。 具有适当支持订阅的用户可以获得 RHEL 生命周期内提供的所有内容,并可根据以下信息把这些内容添加到自己的镜像中。

扩展容器图像

基本容器镜像提供了一个不可改变的基础。用户可以在基础容器镜像上构建并发布应用程序。 红帽支持通过添加或升级公共红帽 UBI 或具有 RHEL 资格的软件仓库中的软件包来扩展 UBI 基础镜像。 [UBI 内容文章](https://access.redhat.com/support/policy/updates/ubi)概述了,根据 RHEL 生命周期哪些内容作为 UBI 的一部分提供。

下表提供了可以在基础镜像上执行的操作示例,以及红帽支持或不支持的操作。

如果客户进行这些更改 红帽相应的政策
将其他软件包安装到正在运行的容器中。 红帽支持安装的,由红帽通过 UBI 或 RHEL 客户有权限访问的软件仓库提供的软件包。
使用构建工具将其他软件包安装到容器镜像。 如果满足以下条件,红帽支持使用 RHEL 附带的工具扩展基础镜像:

  • Podman、Buildah 和 OpenShift 是唯一支持的工具1
  • 使用 RPM 或 YUM 安装软件包
  • 软件包由红帽通过 UBI 软件仓库或用户有权限访问的软件频道提供。
  • 红帽可能会要求提供构建命令的副本以协助处理镜像。
重新构建基础镜像(在基础镜像中添加或删除通过客户有权限访问的红帽软件频道提供的软件包)。 红帽支持使用上述安装方法创建的基础镜像。红帽不支持把新创建的定制基础镜像作为一个输出的工件(artifact)。

红帽可能会要求提供一份构建说明副本,以了解镜像时如何创建的。一般情况下,应该使用正常的 rpmyum 添加或删除软件包。

将其他红帽产品安装或配置到容器基础镜像中。 红帽不支持该操作。

红帽会尽可能以容器化的形式构建、测试并发布其产品。 请查看红帽产品文档以了解可能的部署配置,包括容器化。

应用程序镜像的支持#{#container_application_images}

针对于本政策,应用程序镜像是指,不是一个[基础容器镜像](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h (.hc7hn0blfovy),且被构建为提供特定厂商(包括红帽、ISV 或开源社区)的功能的镜像。

[应用程序容器镜像](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h.qyxix6qa2k3k)按常规进行开发,构建并发布,且不能改变。 因此,在正常情况下不要对这些容器镜像进行扩展,而是向相关的厂商请求提供新的容器镜像以获得所需的增强功能,安全或程序错误修复。

在特定情况下,可能会需要对一个应用程序镜像进行修改。 红帽支持对带有红帽内容的 UBI 镜像进行扩展,这仅限于上一节中介绍的范围,它要求使用 UBI 作为基础容器镜像构建容器镜像,且可以使用容器镜像元数据对其进行标识。 修改容器镜像可能会使您从第三方供应商处获得支持的权利失效。在进行更改之前,请务必进行检查。

运行和修改应用程序容器镜像的支持范围取决于供应商。 下表概述了红帽对在 UBI 上构建的容器镜像的支持。

如果用户在 Container Platform 上运行容器镜像 红帽相应的政策
在红帽支持的 Container Platform (如 Red Hat Gluster Storage on RHEL w/Podman) 上运行红帽产品容器镜像 红帽支持这种情况。 除非在相应的产品支持政策中另有说明,红帽不支持对容器镜像进行修改。
红帽认证的 ISV 合作伙伴的产品镜像在红帽提供的 Container Platform 上运行 与红帽产品的容器镜像相似,ISV 镜像在没有被改动的情况下被认证和支持。 红帽和 ISV 都不支持最终用户对这些镜像的修改。 ISV 所做的任何修改都需要重新认证。

红帽将协助客户进行问题分析,以确定技术问题是否与 ISV 内容有关,并利用 TSANet 与供应商直接合作解决产品相关问题。

用户如果需要对有关 ISV解决方案的使用或配置获得帮助,则需要自己有相应的商业支持合同,并直接与供应商合作。

ISV 合作伙伴的未经过红帽认证的产品镜像在一个红帽支持的 Container Platform 上运行 当基础层使用 Red Hat UBI 时,红帽对 UBI 层的使用和扩展提供支持。 在基础层上安装或升级软件包可能会影响 ISV 支持的有效性以及应用程序的功能。请参阅第三方支持政策

红帽将协助客户进行问题分析,以确定技术问题是否与 ISV 内容有关,技术支持仅限于 UBI 层及红帽的内容。

基于 Red Hat UBI,由开源社区构建的容器镜像,运行在一个红帽支持的 Container Platform 上。 如果容器镜像是具有 UBI 构建的,则红帽只会对 UBI 层的使用和操作提供支持。 对基础层的修改可能会影响应用程序的功能。

对作为内聚单元的开源社区应用程序或容器镜像不提供支持。

在红帽支持的 Container Platform上运行不包括任何红帽提供的组件的容器镜像 除了启动用于在 Red Hat Container Platform上运行的 OCI 兼容容器镜像之外,红帽不提供任何其他支持。

红帽如何支持您的容器平台

红帽提供了用作容器平台所需的软件。 这可以被部署为两种形式:作为非编配的容器堆栈(单个节点),或作为编配的容器堆栈(多个节点或群集)。

  1. 红帽通过 Red Hat Enterprise Linux 订阅提供支持的独立,非编配堆栈。这包括 RHEL、容器引擎和运行时。
  2. 红帽通过 OpenShift 订阅或 RHEL 的附加订阅提供受支持的 Container 编配堆栈堆栈,其中包括容器主机(操作系统,容器引擎和运行时),容器镜像,registry 服务器和镜像编配。

无论是编配的部署还是非编配的部署,容器平台和容器镜像的支持覆盖级别都是累加的。这意味着,它确定了在引入为特定层(容器主机、容器引擎和运行时,以及容器编配)提供功能的非红帽提供的软件前的支持级别。。 以下概述了容器平台堆栈与红帽提供的技术是如何构成的。

下图以堆栈形式显示了支持级别。

如果客户有这些红帽组件 以及这些非红帽组件 红帽支持
- Red Hat Enterprise Linux 非红帽提供的容器引擎或运行时
例如:上游社区的 docker
  • 只支持基础操作系统
  • 不支持 容器引擎、容器及这些容器中运行的应用程序
- Red Hat Enterprise Linux
- 红帽提供的容器引擎
非红帽提供的容器编配平台
例如:上游社区的 kubernetes
  • 只支持基础操作系统和容器引擎
  • 不支持容器编配平台
  • 不支持由编配平台管理的容器
  • 不支持第三方容器运行时
  • 红帽将对由所提供的容器引擎直接运行的、非编配堆栈的容器提供支持

红帽将会把它视为一个独立的非编配系统提供支持,确保容器引擎按预期方式启动容器。但是其支持不会扩展到编配平台的操作,或任何由编配平台启动的容器。

- Red Hat OpenShift, 包括
-Red Hat Enterprise Linux 或 Red Hat Enterprise Linux CoreOS
- 红帽提供的容器引擎
不是由红帽提供的,或不是基于 Red Hat UBI 构建的容器镜像
  • 只支持基本操作系统、容器引擎和 Red Hat OpenShift
  • 红帽支持通过 OpenShift 运行和管理非红帽提供的容器镜像,该支持范围不会扩展到这些镜像/容器,及容器中的应用程序。

红帽会确保容器引擎和 OpenShift 能够按预期启动容器。 如果容器不是由红帽提供,或不是使用 Red Hat UBI 构建的,则不会对容器的操作提供支持。 对容器镜像的支持已在上面介绍。

[^ 1]:根据 Extras 的支持和生命周期政策,对Red Hat Enterprise Linux 7 的 RHEL Extras 中提供的 docker 软件包提供支持。
[^ 2]:仅在基于 Red Hat UBI 的容器中可以使用 Red Hat UBI 软件仓库并提供支持。
[^ 3]:Red Hat UBI 遵循 Red Hat Enterprise Linux 生命周期。 [后续文章](https://access.redhat.com/support/policy/updates/ubi)中概述了通过 Red Hat UBI 提供的内容。