发版说明
# OCP 4.11 发版说明
Red Hat OpenShift Container Platform 为软件开发人员和 IT 机构提供了一个混合云应用平台。使用这个平台可以在配置和管理成本最小化的情况下,利用安全、可扩展的资源部署新的或已有的应用程序。OpenShift Container Platform 支持大量编程语言和开发平台,如 Java、JavaScript、Python、Ruby 和 PHP。
OpenShift Container Platform 基于 Red Hat Enterprise Linux(RHEL)和 Kubernetes,为当今的企业级应用程序提供了一个更加安全、可扩展的多租户操作系统,同时提供了集成的应用程序运行时及程序库。OpenShift Container Platform 可以满足用户对安全性、隐私、合规性及监管的要求。
# 1.1关于此版本
OpenShift Container Platform(RHSA-2022:5069 (opens new window))现已正式发布。此发行版本使用 Kubernetes 1.24 (opens new window) 和 CRI-O 运行时。OpenShift Container Platform 4.11 的新功能、改变以及已知的问题包括在此文档中。
OpenShift Container Platform 4.11 集群位于 https://console.redhat.com/openshift。使用 OpenShift Container Platform 的 Red Hat OpenShift Cluster Manager 应用程序,您可以将 OpenShift 集群部署到内部环境或云环境中。
OpenShift Container Platform 4.11 需要运行在 Red Hat Enterprise Linux(RHEL)8.4 和 8.5 上,以及 Red Hat Enterprise Linux CoreOS 4.11 上。
您必须将 RHCOS 机器用于 control plane,而 compute 系统可以使用 RHCOS 或 RHEL。
# 1.2新功能及特性增强
此版本对以下方面进行了改进。
# 1.2.1 Red Hat Enterprise Linux CoreOS (RHCOS)
# 1.2.1.1改进了对使用 Fabric 的 NVMe 的支持
OpenShift Container Platform 4.11 引入了 nvme-cli 软件包,它为管理 NVMe 设备提供了一个接口。
# 1.2.1.2 使用 kdump 在 AMD64 机器上调查内核崩溃
RHCOS 现在支持 kdump 用于 OpenShift Container Platform 4.11 中的 x86_64 架构。对其它构架上的 kdump 的支持仍为技术预览。
# 1.2.1.3. 使用 kdump 调查 ARM64 机器上的内核崩溃(技术预览)
RHCOS 现在支持 kdump 用于 OpenShift Container Platform 4.11 中的 arm64 架构,作为技术预览。
# 1.2.1.4. RHCOS 现在使用 RHEL 8.6
RHCOS 现在在 OpenShift Container Platform 4.11 及更高版本中使用 Red Hat Enterprise Linux (RHEL) 8.6 软件包。这可让您获得最新的修复、功能和增强,以及最新的硬件支持和驱动程序更新。
# 1.2.1.5. 更新了 RHCOS registry URL
下载 RHCOS 引导镜像的重定向器主机名现在是 rhcos.mirror.openshift.com。您必须配置防火墙以授予引导镜像的访问权限。如需更多信息,请参阅为 OpenShift Container Platform 配置防火墙 (opens new window)。
# 1.2.2 安装和升级
# 1.2.2.1. RHEL 9 支持 OpenShift 安装程序
现在支持将 Red Hat Enterprise Linux (RHEL) 9 与 OpenShift 安装程序(openshift-install)搭配使用。
如需更多信息,请参阅您的平台安装文档中的"包含安装程序"部分。
# 1.2.2.2. 在单一节点上安装 OpenShift Container Platform 的新最小系统要求
此发行版本更新了在单一节点上安装 OpenShift Container Platform 的最低系统要求。在单一节点上安装 OpenShift Container Platform 时,您应该配置至少 16 GB RAM。特定工作负载的要求中可能需要额外 RAM。支持的平台的完整列表包括裸机、vSphere、Red Hat OpenStack Platform(RHOSP)和 Red Hat Virtualization Platform。在所有情况下,当使用 openshift-installer 二进制文件安装单节点 OpenShift 时,您必须在 install-config.yaml 配置文件中指定 platform.none: {} 参数。
# 1.2.3 安装后配置
# 1.2.3.1. 集群功能
作为集群管理员,您可以在安装或安装后启用集群功能来选择或取消选择一个或多个可选组件。
如需更多信息,请参阅集群功能 (opens new window)。
# 1.2.3.2. 异构架构上的 OpenShift Container Platform(技术预览)
OpenShift Container Platform 4.11 在技术预览中引进了 Azure 安装程序安装程序置备的基础架构的异构架构集群支持。此功能作为第二天操作提供,它能够将 arm64 worker 节点添加到带有异构安装程序二进制文件置备的现有 x86_64 Azure 集群。您可以通过创建一个使用手动生成的 arm64 引导镜像的自定义 Azure 机器集来将 rm64 worker 添加到异构集群中。目前不支持 arm64 构架上的 control planes。如需更多信息,请参阅配置异构集群 (opens new window)。
注意:
您可以使用发行镜像
-pullsec 将集群手动升级到最新的异构发行镜像。如需更多信息,请参阅 升级您的异构集群 (opens new window)。
# 1.2.4 Web控制台
# 1.2.4.1. Developer Perspective (开发者视角)
- 在这个版本中,您可以在 Developer 视角中,将包含管道的 GitHub 存储库添加到 OpenShift Container Platform 集群中。现在,当相关 Git 事件(如推送或拉取请求)被触发时,可以在集群中的 GitHub 存储库中运行管道和任务。
- 在管理员视角中,您可以将 GitHub 应用程序与 OpenShift 集群配置为使用管道作为代码。使用这个配置,可以执行构建部署所需的一组任务。
- 在这个版本中,您可以使用自己的一组策展的任务创建自定义管道。您可以直接从开发人员控制台搜索、安装和升级任务。
- 在这个版本中,您可以在 web 终端中有多个标签,查看 bash 历史记录,web 终端会保持打开,直到您关闭浏览器窗口或标签页。
- 在这个版本中,在开发者视角的 Add+ 页面中,添加了一个新的菜单来共享项目和 Helm Chart 仓库,以便向项目中添加或删除用户。
# 1.2.5. OpenShift CLI (oc)
# 1.2.5.1. RHEL 9 支持 OpenShift CLI (oc)
现在支持将 Red Hat Enterprise Linux (RHEL) 9 与 OpenShift CLI (oc) 搭配使用。
注意
不支持将 OpenShift CLI(
oc)安装为 Red Hat Enterprise Linux(RHEL)9 的 RPM。您必须下载二进制文件,为 RHEL 9 安装 OpenShift CLI。如需更多信息,请参阅安装 OpenShift CLI (opens new window)。
# 1.2.6. IBM Power
在这个版本中,IBM Power 与 OpenShift Container Platform 4.11 兼容。有关安装说明,请参阅以下文档:
# 主要改进
OpenShift Container Platform 4.11 的 IBM Power 支持以下新功能:
- 备用身份验证提供程序
- CSI 卷
- 克隆
- 扩展
- Snapshot
- File Integrity Operator
- IPv6
- 用户定义项目的监控
- Operator API
- OC CLI 插件
# 支持的功能
IBM Power 还支持以下功能:
- 目前,支持以下 Operator:
- Cluster Logging Operator
- Compliance Operator
- Local Storage Operator
- NFD Operator
- NMState Operator
- OpenShift Elasticsearch Operator
- Cluster Network Operator
- Service Binding Operator
- Vertical Pod Autoscaler Operator
- 支持以下 Multus CNI 插件:
- Bridge
- Host-device
- IPAM
- IPVLAN
- 加密数据存储在 etcd 中
- Helm
- Pod 横向自动扩展
- 多路径(Multipathing)
- Multus SR-IOV
- OVN-Kubernetes,包括 IPsec 加密
- 使用 iSCSI 的持久性存储
- 使用本地卷的持久性存储(本地存储 Operator)
- 使用 hostPath 的持久性存储
- 使用 Fibre Channel 持久性存储
- 使用 Raw Block 的持久性存储
- 支持多个网络接口
- 支持 Power10
- 三节点集群支持
- 4K 磁盘支持
# 限制
OpenShift Container Platform 对 IBM Power 的影响如下:
- 以下 OpenShift Container Platform 技术预览功能不被支持:
- 精度时间协议 (PTP) 硬件
- 以下 OpenShift Container Platform 功能不被支持:
- 使用机器健康检查功能自动修复损坏的机器
- CodeReady Containers (CRC)
- 在节点上控制过量使用和管理容器密度
- FIPS 加密
- OpenShift Metering
- OpenShift Virtualization
- 在 OpenShift Container Platform 部署过程中启用 Tang 模式磁盘加密
- Compute 节点必须运行 Red Hat Enterprise Linux CoreOS(RHCOS)
- 持久性存储必须是使用本地卷、Red Hat OpenShift Data Foundation、网络文件系统(NFS)或 Container Storage Interface(CSI)的 Filesystem 类型
# 1.2.7. 安全性与合规性
# 1.2.7.1. 审计日志现在包含 OAuth 服务器审计事件
现在,OAuth 服务器审计事件被记录在审计日志中的元数据级别。登录事件包括失败的登录尝试。
如需更多信息,请参阅关于审计日志策略配置集 (opens new window)。
# 1.2.8. 监控
此版本的监控堆栈包括以下新功能和修改后的功能。
# 1.2.8.1. 监控堆栈组件和依赖项更新
监控堆栈组件和依赖项的更新包括:
- Alertmanager 更新到 0.24.0
- kube-state-metrics 更新到 2.5.0
- Prometheus 更新到 2.36.2
- Prometheus operator 更新到 0.57.0
- Thanos 更新到 0.26.0
# 1.2.8.2. 对警报规则的更改
注意
红帽不保证记录规则或警报规则的向后兼容性。
- New
- 添加了
KubePersistentVolumeInodesFillingUp警报,它与现有KubePersistentVolumeFillingUp警报类似,但应用到内节点,而不是卷空间。 - 添加了
PrometheusScrapeBodySizeLimitHit警报,以检测目标达到正文大小限制。 - 添加了
PrometheusScrapeSampleLimitHit警报以检测目标达到示例限制。
- 添加了
- 已更改
- 修复了
KubeDaemonSetRolloutStuck警报,以使用kube-state-metrics中的更新指标kube_daemonset_status_updated_number_scheduled。 - 将
KubeJobCompletion警报替换为KubeJobNotCompleted。新的KubeJobNotCompleted警报可以避免,当一个早期的作业失败但大多数当前的作业都成功的情况下产生假的正状态。 - 更新了
NodeNetworkInterfaceFlapping警报,以便从警报表达式中排除tunbr接口。
- 修复了
# 1.2.9 其他栏目
<补充完善内容>
# 1.3主要的技术变化
OpenShift Container Platform 4.11 包括以下显著的技术更改。
# 更新为设置路由器负载平衡算法的默认值
haproxy.router.openshift.io/balance 变量设置路由器负载平衡算法,现在默认为 random,而不是 leastconn。如需更多信息,请参阅特定于路由的注解 (opens new window)。
# LegacyServiceAccountTokenNoAutoGeneration 默认为 on
要与上游的 Kubernetes (opens new window) 将 LegacyServiceAccountTokenNoAutoGeneration 功能门移到 beta 过程保持一致,OpenShift Container Platform 现在也会遵循这个安全功能和启用了该功能的发行版本。因此,在创建新服务帐户(SA)时,服务帐户令牌 secret 不再自动生成。在以前的版本中,OpenShift Container Platform 会自动将服务帐户令牌添加到每个新 SA 的 secret 中。
如果需要服务帐户令牌 secret,您必须手动使用 TokenRequest API 来请求绑定的服务帐户令牌或创建服务帐户令牌 secret。
升级到 4.11 后,现有服务帐户令牌 secret 不会被删除,并可以继续按预期工作。
在 OpenShift Container Platform 4.11 中,Service Account token secret 仍然显示为自动生成。但是,每个服务帐户不再会有两个 secret,而现在只有一个 secret,这会在以后的版本中进一步缩减为零。这些令牌不起作用。现在,dockercfg secret 仍然作为 secret 生成,在升级过程中不会删除任何 secret。
- 有关使用 TokenRequest API 的详情,请参考使用绑定服务帐户令牌 (opens new window)
- 有关创建服务帐户令牌 secret 的信息,请参阅创建服务帐户令牌 secret (opens new window)。
# Operator SDK 1.22.0
OpenShift Container Platform 4.11 支持 Operator SDK 1.22.0。请参阅安装 Operator SDK CLI (opens new window) 来安装或更新到这个最新版本。
注意
Operator SDK 1.22.0 支持 Kubernetes 1.24。
如果您之前使用 Operator SDK 1.16.0 创建或维护的 Operator 项目,请更新您的项目以保持与 Operator SDK 1.22.0 的兼容性。
- 更新基于 Go 的 Operator 项目 (opens new window)
- 更新基于 Ansible 的 Operator 项目 (opens new window)
- 更新基于 Helm 的 Operator 项目 (opens new window)
- 更新基于 Helm 的 Operator 项目 (opens new window)
# Cluster Operator 不再被称为平台 Operator
OpenShift Container Platform 文档之前提到的集群 Operator,替代命名"platform Operators"。因为这个双命名可能会导致与 Operator 类型相关的混淆,所以在引用 cluster Operator(由 ClusterOperator API 对象表示)时,不再使用术语 "platform Operator"。OpenShift Container Platform 4.11 及更早的文档集现已更新为只使用术语 "cluster Operator"。
例如,请参阅集群 Operator 参考 (opens new window)。
# 1.4弃用和删除的功能
之前版本中的一些功能已被弃用或删除。
弃用的功能仍然包含在 OpenShift Container Platform 中,并将继续被支持。但是,这个功能会在以后的发行版本中被删除,且不建议在新的部署中使用。有关 OpenShift Container Platform 4.11 中已弃用并删除的主要功能的最新列表,请参考下表。表后列出了更多已弃用和删除的功能的更多详细信息。
在下表中,被标记为以下状态的功能:
- GA: 正式发行
- DEP: 已弃用
- REM: 删除
Table 1. 弃用和删除的功能
| Feature | OCP 4.9 | OCP 4.10 | OCP 4.11 |
|---|---|---|---|
| Operator 目录的 SQLite 数据库格式 | DEP | DEP | DEP |
Cluster Samples Operator 的 ImageChangesInProgress 条件 | DEP | DEP | DEP |
Cluster Samples Operator 的 MigrationInProgress 条件 | DEP | DEP | DEP |
| Cluster Loader | DEP | REM | REM |
| 使用自己的 RHEL 7 计算机器 | DEP | REM | REM |
| Jenkins Operator | DEP | REM | REM |
| 监控堆栈中的 Grafana 组件 | - | DEP | REM |
| 访问监控堆栈中的 Prometheus 和 Grafana UI | DEP | REM | |
| vSphere 6.7 更新 2 或更早版本 | DEP | DEP | REM |
| vSphere 7.0 Update 1 或更早版本 | - | - | DEP |
# 1.4.1 已弃用的功能
# 1.4.1.1. 用于请求令牌的 OpenShift CLI (oc) 命令和标志已弃用
以下用于请求令牌的 oc 命令和标志现已弃用:
oc serviceaccounts create-kubeconfig命令oc serviceaccounts get-token命令oc serviceaccounts new-token命令oc registry login命令的--service-account/-z标志
使用 oc create token 命令来请求令牌。
# 1.4.1.2 Red Hat Virtualization(RHV)作为 OpenShift Container Platform 的主机平台已弃用
即将推出的 OpenShift Container Platform 版本中将弃用 Red Hat Virtualization(RHV)。对 RHV 上的 OpenShift Container Platform 的支持将在未来的 OpenShift Container Platform 版本中删除,目前还计划为从 OpenShift Container Platform 4.14 开始删除
# 1.4.1.3 对 vSphere 7.0 Update 1 更早版本的支持已弃用
在 OpenShift Container Platform 4.11 中,对 VMware vSphere 7.0 Update 1 或更早版本的支持已被弃用。虽然 vSphere 7.0 Update 1 或更早版本被完全支持,但红帽建议您使用 vSphere 7.0 Update 2 或更高版本。
# 1.4.1.4 对 ESXi 7.0 Update 1 或更早版本的支持已弃用
在 OpenShift Container Platform 4.11 中,对 VMware ESXi 7.0 Update 1 或更早版本的支持已被弃用。虽然 EXSi 7.0 Update 1 或更早版本被完全支持,但红帽建议您使用 ESXi 7.0 Update 2 或更高版本。
# 1.4.2 删除的功能
# 1.4.2.1. 删除了对 OpenShift CLI (oc) 的 RHEL 7 支持
删除了在 OpenShift CLI (oc) 中使用 Red Hat Enterprise Linux (RHEL) 7 的支持。如果您在 RHEL 中使用 OpenShift CLI (oc),则必须使用 RHEL 8 或更高版本。
# 1.5.2.2. OpenShift CLI (oc) 命令已被删除
本发行版本中删除了以下 OpenShift CLI(oc)命令:
oc adm migrate etcd-ttloc adm migrate image-referencesoc adm migrate legacy-hpaoc adm migrate storage
# 1.4.2.3 Grafana component removed from monitoring stack
The Grafana component is no longer a part of the {product-title} {product-version} monitoring stack. As an alternative, go to Observe → Dashboards in the {product-title} web console to view monitoring dashboards.
# 1.4.2.4 Prometheus and Grafana user interface access removed from monitoring stack
Access to the third-party Prometheus and Grafana user interfaces have been removed from the {product-title} {product-version} monitoring stack. As an alternative, click Observe in the {product-title} web console to view alerting, metrics, dashboards, and metrics targets for monitoring components.
# 1.4.2.5 Support for virtual hardware version 13 is removed
In {product-title} 4.11, support for virtual hardware version 13 is removed. Support for virtual hardware version 13 was deprecated in {product-title} 4.9. Red Hat recommends that you use virtual hardware version 15 or later.
# 1.5 程序缺陷修复
# 裸机硬件置备(错误类型)
在以前的版本中,当将 RHCOS 镜像写入一些磁盘时,
qemu-img将空间分配给整个磁盘,包括稀疏区域。这延长了在某些硬件上写入进程的时间。在这个版本中,禁用镜像创建中的qemu-img稀疏。因此,在受影响的硬件上镜像写入将不再需要很长时间。(BZ#2002009 (opens new window))在以前的版本中,如果为
RootDeviceHints设置rotational字段,则主机可能会失败。在这个版本中,RootDeviceHints中的rotational字段会被正确复制并被检查。因此,在使用rotational字段时置备会成功。(BZ#2053721 (opens new window))在以前的版本中,Ironic 无法使用虚拟介质置备 Nokia OE 20 服务器,因为 BMC 需要在请求中明确设置
TransferProtocolType属性,尽管这是可选属性。另外,BMC 还需要使用一个专用的RedFish设置资源来覆盖引导订购,而大多数 BMC 只是使用system资源。发生此错误的原因是,Nokia OE 20 严格要求 vMedia 附加一个可选的TransferProtocolType属性,且需要使用RedFish设置资源来覆盖引导序列。因此,基于虚拟介质的置备会在 Nokia OE 20 上会失败。这个问题有两个临时解决方案:- 当 vMedia 附加请求失败时,出现错误表示缺少
TransferProtocolType属性,请重试请求并明确指定此属性。 - 检查系统中是否存在 RedFish 设置资源。如果存在,请将其用于引导序列覆盖。
因此,基于虚拟介质的置备会在 Nokia OE 20 机器上成功。(BZ#2059567 (opens new window))
- 当 vMedia 附加请求失败时,出现错误表示缺少
在以前的版本中,在使用 OpenShift Container Platform 裸机 IPI 部署时,Ironic API 检查器镜像无法清理属于被动多路径设置一部分的磁盘。在这个版本中,当使用主动或被动存储阵列时,会失败。现在,当客户想使用主动或被动的多路径设置时,可以使用 OpenShift Container Platform 裸机 IPI。(BZ#2089309 (opens new window))
在以前的版本中,Ironic 无法将
wwn序列号与多路径设备匹配。因此,在install-config.yaml配置文件中的rootDeviceHint参数中无法使用wwn的序列号。在这个版本中,Ironic 会识别wwn序列号作为多路径设备的唯一标识符。作为结果,现在可以为install-config.yaml文件为设备 mapper 设备使用wwn序列号。(BZ#2098392 (opens new window))
# Builds
在以前的版本中,在
BuildConfig实例的ImageLabel名称中使用正斜杠(/)会导致错误。在这个版本中,通过更改用于验证的实用程序解决了这个问题。因此,您可以在BuildConfig实例的ImageLabel名称中使用正斜杠。(BZ#2105167 (opens new window))在以前的版本中,当使用
$ oc new-app --search <image_stream_name>命令时,可能会收到与docker.io镜像相关的错误信息。这会给用户造成混淆,因为 OpenShift Container Platform 不使用指向docker.io的镜像流。在这个版本中,添加了代码检查以防止对docker.io的引用。因此,该命令的输出不包括消息。(BZ#2049889 (opens new window))在以前的版本中,共享资源 CSI Driver 指标不会导出到 Telemetry 服务。因此,无法分析 Shared Resource CSI Driver 的使用指标。在这个版本中,共享资源 CSI Driver 指标会公开到 Telemetry 服务。因此,可以收集和分析 Shared 资源 CSI Driver 的使用指标。(BZ#2058225 (opens new window))
默认情况下,Buildah 会输出日志文件的步骤,包括环境变量的内容,其中可能包括 构建输入 secret (opens new window)。虽然您可以使用
--quiet构建参数来禁止打印这些环境变量,但如果使用 Source-to-image(S2I)构建策略,则此参数将不可用。当前发行版本解决了这个问题。要禁止打印环境变量,请在构建配置中设置BUILDAH_QUIET环境变量:sourceStrategy: ... env: - name: "BUILDAH_QUIET" value: "true"1
2
3
4
5在此次更新之前,使用
$ oc new-app --search <image_stream_name>命令提供了一个警告,您可能无法访问容器镜像"docker.io/library/<image_name>:<tag>"。这会导致 OpenShift Container Platform 带有指向docker.io的镜像流的混乱。在这个版本中解决了这个问题,增加了代码检查以防止混淆对 'docker.io' 的引用。现在,该命令的输出不包括docker.io的信息(BZ#2049889 (opens new window))
# 1.6已知问题
在 OpenShift Container Platform 4.1 中,匿名用户可以访问发现端点。之后的版本会取消对这端点的访问,以减少可能的安全漏洞攻击面。一些发现端点被转发到聚合的 API 服务器。但是,升级的集群中会保留未经身份验证的访问,因此现有用例不会中断。
如果您是一个从 OpenShift Container Platform 4.1 升级到 4.8 的集群的集群管理员,您可以撤销或继续允许未经身份验证的访问。除非对未经身份验证的访问有特殊需要,否则您应该撤销它。如果您继续允许未经身份验证的访问,请注意相关的风险。
警告
如果您的应用程序依赖未经身份验证的访问,在撤销了未经身份验证的访问后可能会收到 HTTP
403错误。使用以下脚本撤销对发现端点的未经身份验证的访问:
## Snippet to remove unauthenticated group from all the cluster role bindings $ for clusterrolebinding in cluster-status-binding discovery system:basic-user system:discovery system:openshift:discovery ; do ### Find the index of unauthenticated group in list of subjects index=$(oc get clusterrolebinding ${clusterrolebinding} -o json | jq 'select(.subjects!=null) | .subjects | map(.name=="system:unauthenticated") | index(true)'); ### Remove the element at index from subjects array oc patch clusterrolebinding ${clusterrolebinding} --type=json --patch "[{'op': 'remove','path': '/subjects/$index'}]"; done1
2
3
4
5
6
7
8此脚本从以下集群角色绑定中删除未经身份验证的对象:
cluster-status-bindingdiscoverysystem:basic-usersystem:discoverysystem:openshift:discovery
oc annotate命令不适用于包含了等号(=)的 LDAP 组名称,因为命令使用等号作为注释名称和值之间的分隔符。作为临时解决方案,使用oc patch或oc edit添加注解。(BZ#1917280 (opens new window))在监控堆栈中,如果您为用户定义的警报启用并部署了专用的 Alertmanager 实例,您可以在 OpenShift Container Platform Web 控制台的 Developer 视角中静默警报。这个问题不存在临时解决方案。(BZ#2100860 (opens new window))