1.3. 新功能及功能增强
此版本对以下方面进行了改进。
1.3.1. Red Hat Enterprise Linux CoreOS (RHCOS)
1.3.1.1. 在引导时删除安装 Ignition 配置
之前,使用 coreos-installer
程序安装的节点会在 /boot/ignition/config.ign
文件中保留安装 Ignition 配置。从 OpenShift Container Platform 4.9 安装镜像开始,在置备节点时会删除该文件。此更改不会影响在以前的 OpenShift Container Platform 版本上安装的集群,因为它们仍然使用较旧的 bootimage。
1.3.1.2. RHCOS 现在使用 RHEL 8.4
RHCOS 现在使用 OpenShift Container Platform 4.9 中的 Red Hat Enterprise Linux (RHEL) 8.4 软件包。这些软件包为您提供最新的修复、功能和增强,如 NetworkManager 功能,以及最新的硬件支持和驱动程序更新。
1.3.2. 安装和升级
1.3.2.1. 使用用户置备的基础架构在 Microsoft Azure Stack Hub 上安装集群
OpenShift Container Platform 4.9 引进了对使用用户置备的基础架构在 Azure Stack Hub 上安装集群的支持。
您可以使用红帽提供的 Azure Resource Manager (ARM) 示例模板来协助部署过程,或自行创建。您也可以自由选择通过其他方法创建所需的资源;ARM 模板仅作示例之用。
详情请参阅使用 ARM 模板在 Azure Stack Hub 上安装集群。
1.3.2.2. 在更新集群前暂停机器健康检查
在升级过程中,集群中的节点可能会临时不可用。对于 worker 节点,机器健康检查可能会认为这样的节点不健康,并重新引导它们。为避免重新引导这样的节点,OpenShift Container Platform 4.9 引入了 cluster.x-k8s.io/paused=""
注解,允许您在更新集群前暂停 MachineHealthCheck
资源。
如需更多信息,请参阅暂停 MachineHealthCheck 资源。
1.3.2.3. 在机器 CIDR 中增加 Azure 子网的大小
Microsoft Azure 的 OpenShift Container Platform 安装程序现在在机器 CIDR 中创建尽量大的子网。这可让集群使用适当的大小来容纳集群中节点数量的机器 CIDR。
1.3.2.4. 支持中国的 AWS 区域
OpenShift Container Platform 4.9 引入了对中国 AWS 区域的支持。现在,您可以在 cn-north-1(Beijing)
和 cn-northwest-1 (Ningxia)
区域安装和更新 OpenShift Container Platform 集群。
如需更多信息,请参阅在 AWS 中国上安装集群。
1.3.2.5. 在 baremetal 网络中使用 Virtual Media 扩展集群
在 OpenShift Container Platform 4.9 中,您可以使用 baremetal
网络上的 Virtual Media 扩展使用 provisioning
网络部署的安装程序置备的集群。当 ProvisioningNetwork
配置设置为 Managed
时,您可以使用此功能。要使用此功能,您必须在 provisioning
自定义资源 (CR) 中将 virtualMediaViaExternalNetwork
配置设置设置为 true
。您还必须编辑机器集以使用 API VIP 地址。详情请参阅准备使用 baremetal 网络上的 Virtual Media 进行部署。
1.3.2.6. 从 OpenShift Container Platform 4.8 升级到 4.9 时所需的管理员确认
OpenShift Container Platform 4.9 使用 Kubernetes 1.22,它删除了大量已弃用的 v1beta1
API。
OpenShift Container Platform 4.8.14 引入了一项要求,即管理员必须先提供手动确认,然后才能从 OpenShift Container Platform 4.8 升级到 4.9。这有助于防止升级到 OpenShift Container Platform 4.9 后出现问题,其中已删除的 API 仍在由运行或与集群交互的工作负载、工具或其他组件使用。管理员必须针对将要删除的任何 API 评估其集群,并迁移受影响的组件,以使用适当的新 API 版本。完成此操作后,管理员可以向管理员提供确认。
所有 OpenShift Container Platform 4.8 集群都需要此管理员确认,然后才能升级到 OpenShift Container Platform 4.9。
如需更多信息,请参阅准备升级到 OpenShift Container Platform 4.9。
1.3.2.7. 支持在使用 PCI 直通的 RHOSP 部署中安装
OpenShift Container Platform 4.9 引进了对在依赖 PCI 透传 的 Red Hat OpenStack Platform (RHOSP) 部署上安装的支持。
1.3.2.8. 将 etcd 版本 3.4 升级到 3.5
OpenShift Container Platform 4.9 支持 etcd 3.5。在升级集群前,请验证是否存在有效的 etcd 备份。etcd 备份可确保在发生升级失败时可以恢复集群。在 OpenShift Container Platform 4.9 中,etcd 升级是自动的。根据集群的转换状态到版本 4.9,etcd 备份可能会可用。但是,建议在集群升级开始前验证备份是否存在。
1.3.2.9. 使用安装程序置备的基础架构在 IBM Cloud 上安装集群
OpenShift Container Platform 4.9 引进了对使用安装程序置备的基础架构在 IBM Cloud® 上安装集群的支持。该流程与裸机上的安装程序置备的基础架构几乎相同,但有以下区别:
-
IBM Cloud 上 OpenShift Container Platform 4.9 安装程序置备的安装需要
provisioning
网络、IPMI 和 PXE 引导。红帽不支持在 IBM Cloud 上使用 Redfish 和虚拟介质进行部署。 - 您必须在 IBM Cloud 上创建和配置公共和私有 VLAN。
- 在开始安装过程前,IBM Cloud 节点必须可用。因此,您必须首先创建 IBM 云节点。
- 您必须准备 provisioner 节点。
-
您必须在公共的
baremetal
网络中安装和配置 DHCP 服务器。 -
您必须配置
install-config.yaml
文件,以便每个节点都使用 IPMI 指向 BMC,并将 IPMI 权限级别设置为OPERATOR。
详情请参阅在 IBM Cloud 上部署安装程序置备的集群。
1.3.2.10. 改进了对安装程序置备的集群中的 Fujitsu 硬件的支持
在 Fujitsu 硬件上部署安装程序置备的集群并使用 Fujitsu 集成 Remote Management Controller (iRMC) 时,OpenShift Container Platform 4.9 添加了对 worker 节点的 BIOS 配置支持。详情请参阅为 worker 节点配置 BIOS。
1.3.3. Web 控制台
1.3.3.1. 从 Node 页面访问节点日志
在这个版本中,管理员可以从 Node 页面访问节点日志。要查看节点日志,您可以通过单击 Logs 选项卡在单个日志文件和日志日志单元之间切换。
1.3.3.2. 按节点类型划分集群利用率
现在,您可以在集群仪表板上的 Cluster 使用率 卡中按节点类型过滤。创建时,其他节点类型将显示在列表中。
1.3.3.3. 用户首选项
在这个版本中,添加了一个用户首选项页用于进行自定义设置,如默认项目、视角和拓扑视图。
1.3.3.4. 从项目列表中隐藏默认项目
在这个版本中,您可以从 web 控制台刊头的 Project 下拉菜单中隐藏 default projects
默认项目。在搜索和过滤前,您仍然可以切换为显示 default projects
。
1.3.3.5. 在 web 控制台中添加用户首选项
在这个版本中,您可以在 web 控制台中添加用户首选项。用户可以选择自己的默认透视图、项目、拓扑和其他首选项。
1.3.3.6. Developer Perspective (开发者视角)
- 现在,您可以通过 Git 存储库导入 devfile、Dockerfile 或构建器镜像来进一步自定义部署。您还可以编辑文件导入类型并选择不同的策略来导入文件。
- 现在,通过开发者控制台中的更新的 Pipeline builder 用户界面中的 Add task 和 Quick Search 来在管道中 添加新任务。用户现在可以添加 Tekton Hub 中的任务。
- 要编辑构建配置,您可以使用 Developer 视角的 Builds 视图中的 Edit BuildConfig 选项。用户可以使用 Form view 和 YAML view 来编辑构建配置。
- 您可以使用拓扑 Graph view 的上下文菜单添加服务或创建与 Operator 支持的服务的连接。
- 您可以使用拓扑 Graph view 的上下文菜单中的 +Add 操作在应用程序组中添加服务或删除服务。
- 现在,OpenShift Pipelines Operator 启用的 Pipelines Repository list 视图中提供了对 pipeline as code 的初始支持。
- 对拓扑的 Observe 页面中的 Application Monitoring 部分进行了可用性增强。
1.3.4. IBM Z 和 LinuxONE
在这个版本中,IBM Z 和 LinuxONE 与 OpenShift Container Platform 4.9 兼容。可以使用 z/VM 或 RHEL KVM 进行安装。有关安装说明,请参阅以下文档:
主要改进
IBM Z 和 LinuxONE 中的 OpenShift Container Platform 4.9 支持以下新功能:
- Helm
- 支持多个网络接口
- Service Binding Operator
支持的功能
IBM Z 和 LinuxONE 也支持以下功能:
目前,支持以下 Operator:
- Cluster Logging Operator
- NFD Operator
- OpenShift Elasticsearch Operator
- Local Storage Operator
- Service Binding Operator
- 加密数据存储在 etcd 中
- 多路径(Multipathing)
- 使用 iSCSI 的持久性存储
- 使用本地卷的持久性存储(本地存储 Operator)
- 使用 hostPath 的持久性存储
- 使用 Fibre Channel 持久性存储
- 使用 Raw Block 的持久性存储
- OVN-Kubernetes
- 三节点集群支持
- SCSI 磁盘中的 z/VM 模拟 FBA 设备
- 4K FCP 块设备
以下功能仅适用于 IBM Z 和 LinuxONE 上的 OpenShift Container Platform 4.9:
- IBM Z 和 LinuxONE 为附加的 ECKD 存储的虚拟机启用了 HyperPAV
限制
请注意,OpenShift Container Platform 对 IBM Z 和 LinuxONE 有如下限制:
以下 OpenShift Container Platform 技术预览功能不被支持:
- 精度时间协议 (PTP) 硬件
以下 OpenShift Container Platform 功能不被支持:
- 使用机器健康检查功能自动修复损坏的机器
- CodeReady Containers (CRC)
- 在节点上控制过量使用和管理容器密度
- CSI 卷克隆
- CSI 卷快照
- FIPS 加密
- Multus CNI 插件
- NVMe
- OpenShift Metering
- OpenShift Virtualization
- 在 OpenShift Container Platform 部署过程中启用 Tang 模式磁盘加密。
- worker 节点必须运行 Red Hat Enterprise Linux CoreOS(RHCOS)
- 必须使用 NFS 或其他支持的存储协议来置备持久性共享存储
- 必须使用本地存储(如 iSCSI、FC 或者带有 DASD、FCP 或 EDEV/FBA 的 LSO)置备持久性非共享存储
1.3.5. IBM Power 系统
在这个版本中,IBM Power Systems 与 OpenShift Container Platform 4.9 兼容。有关安装说明,请参阅以下文档:
主要改进
使用 OpenShift Container Platform 4.9 的 IBM Power 系统支持以下新功能:
- Helm
- 支持 Power10
- 支持多个网络接口
- Service Binding Operator
支持的功能
IBM Power 系统还支持以下功能:
目前,支持以下 Operator:
- Cluster Logging Operator
- NFD Operator
- OpenShift Elasticsearch Operator
- Local Storage Operator
- Cluster Network Operator
- Service Binding Operator
- 多路径(Multipathing)
- 使用 iSCSI 的持久性存储
- 使用本地卷的持久性存储(本地存储 Operator)
- 使用 hostPath 的持久性存储
- 使用 Fibre Channel 持久性存储
- 使用 Raw Block 的持久性存储
- OVN-Kubernetes
- 4K 磁盘支持
- NVMe
- 加密数据存储在 etcd 中
- 三节点集群支持
- Multus SR-IOV
限制
OpenShift Container Platform 在 IBM Power 上会有以下限制:
以下 OpenShift Container Platform 技术预览功能不被支持:
- 精度时间协议 (PTP) 硬件
以下 OpenShift Container Platform 功能不被支持:
- 使用机器健康检查功能自动修复损坏的机器
- CodeReady Containers (CRC)
- 在节点上控制过量使用和管理容器密度
- FIPS 加密
- OpenShift Metering
- OpenShift Virtualization
- 在 OpenShift Container Platform 部署过程中启用 Tang 模式磁盘加密。
- worker 节点必须运行 Red Hat Enterprise Linux CoreOS(RHCOS)
- 持久性存储必须是使用本地卷、网络文件系统(NFS)或 Container Storage Interface(CSI)的 Filesystem 类型
1.3.6. 安全性与合规性
1.3.6.1. 使用自定义规则配置审计日志策略
现在,您可以更精细地控制 OpenShift Container Platform 的审计日志记录级别。您可以使用自定义规则为不同的组指定不同的审计策略配置集(Default
、WriteRequestBodies
、AllRequestBodies
或 None
)。
如需更多信息,请参阅使用自定义规则配置审计日志策略。
1.3.6.2. 禁用审计日志
现在,您可以使用 None
audit 策略配置集禁用 OpenShift Container Platform 审计日志记录。
不建议禁用审计日志记录,除非您完全意识到在进行故障排除时无法记录数据的风险。如果禁用审计日志记录且出现支持情况,您可能需要启用审计日志记录并重现问题,才能正确排除故障。
如需更多信息,请参阅禁用审计日志记录。
1.3.6.3. 自定义 OAuth 服务器 URL
现在,您可以自定义内部 OAuth 服务器的 URL。如需更多信息,请参阅自定义内部 OAuth 服务器 URL。
1.3.6.4. 网络绑定磁盘加密 (NBDE)
OpenShift Container Platform 4.9 提供了持续维护 NBDE 配置系统的新程序。NBDE 允许您加密物理和虚拟机上的硬盘驱动器的根卷,而无需在重启机器时手动输入密码。如需更多信息,请参阅关于磁盘加密技术。
1.3.7. etcd
1.3.7.1. 自动轮转 etcd 证书
在 OpenShift Container Platform 4.9 中,etcd 证书会自动轮转,并由系统管理。
1.3.7.2. API 服务器上的额外 TLS 安全配置集设置
Kubernetes API 服务器 TLS 安全配置集设置现在也受到 etcd 的认可。
1.3.8. 网络
1.3.8.1. linuxptp 服务的改进
OpenShift Container Platform 4.9 对 PTP 包括以下更新:
-
新的
ptp4lConf
字段 -
将
linuxptp
服务配置为边界时钟的新选项
如需更多信息,请参阅 将 linuxptp 服务配置为边界时钟。
1.3.8.2. 使用 PTP 快速事件通知框架监控 PTP 快速事件
现在,裸机集群提供了 PTP 事件的快速事件通知。PTP Operator 会为每个配置的 PTP 网络接口生成事件通知。事件通过 REST API 为在同一节点上运行的应用提供。快速事件通知由 AMQ Interconnect Operator 提供的高级消息队列协议 (AMQP) 消息总线传输。
如需更多信息,请参阅关于 PTP 和时钟同步错误事件。
1.3.8.3. OVN-Kubernetes 集群网络供应商出口 IP 功能在节点间实现平衡
现在,如果为给定命名空间分配多个出口 IP 地址,则 OVN-Kubernetes 的出口 IP 功能现在会在节点间平衡网络流量。每个 IP 地址必须位于不同的节点上。如需更多信息,请参阅为 OVN-Kubernetes 项目配置出口 IP。
1.3.8.4. SR-IOV 容器化数据平面开发套件 (DPDK) 现已正式发布(GA)
容器化数据平面开发套件 (DPDK) 现在在 OpenShift Container Platform 4.9 中是 GA。如需更多信息,请参阅在DPDK 和 RDMA 模式中使用虚拟功能 (VF)。
1.3.8.5. SR-IOV 支持将 vhost-net 与 Fast Datapath DPDK 应用程序搭配使用
SR-IOV 现在支持 vhost-net 用于 Intel 和 Mellanox NIC 上的 Fast Datapath DPDK 应用程序。您可以通过配置 SriovNetworkNodePolicy
资源来启用此功能。如需更多信息,请参阅 SR-IOV 网络配置对象。
1.3.8.6. SR-IOV 支持单节点集群
单节点集群支持 SR-IOV 硬件和 SR-IOV Network Operator。请注意,配置 SR-IOV 网络设备会导致单个节点重新引导,并且您必须为 Operator 配置 disableDrain
字段。如需更多信息,请参阅配置 SR-IOV Network Operator。
1.3.8.7. SR-IOV 支持的硬件
OpenShift Container Platform 4.9 添加了对其他 Broadcom 和 Intel 硬件的支持。
- Broadcom BCM57414 和 BCM57508
如需更多信息,请参阅支持的设备。
1.3.8.8. MetalLB 负载均衡器
此发行版本引入了 MetalLB Operator。安装和配置 MetalLB Operator 后,您可以部署 MetalLB,为裸机集群上的服务提供原生负载均衡器实现。其他类似裸机的内部基础架构也可以受益。
Operator 引入了自定义资源 AddressPool
。您可以使用 MetalLB 可分配给服务的 IP 地址范围来配置地址池。当您添加类型为 LoadBalancer
的服务时,MetalLB 从池中分配 IP 地址。
在这个发行版本中,红帽只支持在第 2 层模式中使用 MetalLB。
如需更多信息,请参阅关于 MetalLB 和 MetalLB Operator。
1.3.8.9. CNI VRF 插件已正式发布
CNI VRF 插件以前在 OpenShift Container Platform 4.7 中作为技术预览功能引进,现在包括在 OpenShift Container Platform 4.9 中。
如需更多信息,请参阅将二级网络分配给 VRF。
1.3.8.10. Ingress 控制器超时配置参数
此发行版本为 Ingress Controller tuningOptions
参数引入了六个超时配置:
-
clientTimeout
指定连接在等待客户端响应时保持打开的时长。 -
serverFinTimeout
指定连接在等待服务器响应关闭连接时保持打开的时长。 -
serverTimeout
指定连接在等待服务器响应时保持打开的时长。 -
clientFinTimeout
指定连接在等待客户端响应关闭连接时保持打开的时长。 -
tlsInspectDelay
指定路由器可以保存数据以查找匹配的路由的时长。 -
tunnelTimeout
指定隧道连接(包括 WebSocket 连接)在隧道闲置期间保持打开的时长。
如需更多信息,请参阅 Ingress 控制器配置参数。
1.3.8.11. 双向 TLS 身份验证
现在,您可以通过设置 spec.clientTLS
将 Ingress Controller 配置为启用 mutual TLS (mTLS )身份验证。clientTLS
字段指定 Ingress Controller 的配置,以验证客户端证书。
如需更多信息,请参阅配置双向 TLS 身份验证。
1.3.8.12. 自定义 HAProxy 错误代码响应页面
集群管理员可以为 503、404 或两个错误页面指定自定义 HTTP 错误代码响应页面。
如需更多信息,请参阅自定义 HAProxy 错误代码响应页面。
1.3.8.13. provisioningNetworkInterface 配置设置是可选的
在 OpenShift Container Platform 4.9 中,安装程序置备的集群的 provisioningNetworkInterface
配置设置是可选的。provisioningNetworkInterface
配置设置标识用于 provisioning
网络的 NIC 名称。在 OpenShift Container Platform 4.9 中,您也可以在 install-config.yml
文件中指定 bootMACAddress
配置设置,它可让 Ironic 识别连接到 provisioning
网络并与其绑定的 NIC 的 IP 地址。您还可以在 provisioning 自定义资源中省略 provisioningInterface
配置设置,以便 provisioning 自定义资源使用 bootMACAddress
配置设置。
1.3.8.14. DNS Operator managementState
在 OpenShift Container Platform 4.9 中,现在可以更改 DNS Operator managementState
。默认情况下,DNS Operator 的 managementState
设置为 Managed
,这意味着 DNS Operator 会主动管理其资源。您可以将其更改为 Unmanaged
,这意味着 DNS Operator 不管理其资源。
以下是更改 DNS Operator managementState
的用例:
-
您是一个开发者,希望测试配置更改来查看它是否解决了 CoreDNS 中的问题。您可以通过将
managementState
设置为Unmanaged
来停止 DNS Operator 覆盖更改。 -
您是一个集群管理员,报告了 CoreDNS 的问题,但在解决这个问题前需要应用一个临时解决方案。您可以将 DNS Operator 的
managementState
字段设置为Unmanaged
以应用临时解决方案。
如需更多信息,请参阅更改 DNS Operator managementState。
1.3.8.15. 负载均衡器配置,作为 RHOSP 上集群的云供应商选项
对于在 RHOSP 上运行的集群,现在可以将 Octavia 配置为云供应商选项进行负载均衡。
如需更多信息,请参阅设置云供应商选项。
1.3.8.16. 添加了对 TLS 1.3 和 Modern 配置集的支持
此发行版本添加了对 TLS 1.3 和 HAProxy 中的 Modern
配置集的 Ingress Controller 支持。
如需更多信息,请参阅 Ingress Controller TLS 安全配置集。
1.3.8.17. 用于 HTTP Strict Transport Security 要求的全局准入插件
集群管理员可以在每个域基础上配置 HTTP Strict Transport Security (HSTS) 验证,并为路由器添加准入插件,名为 route.openshift.io/RequiredRouteAnnotations
。如果集群管理员将这个插件配置为强制 HSTS,那么任何新创建的路由都必须配置一个兼容的 HSTS 策略,该策略会根据集群 Ingress 配置上的全局设置进行验证,名为 ingresses.config.openshift.io/cluster
。
如需更多信息,请参阅 HTTP 严格传输安全性。
1.3.8.18. Ingress 空请求策略
在 OpenShift Container Platform 4.9 中,您可以通过设置 logEmptyRequests
和 HTTPEmptyRequests
字段将 Ingress Controller 配置为记录或忽略空请求。
如需更多信息,请参阅 Ingress 控制器配置参数。
1.3.8.19. 在 web 控制台中创建网络策略
使用 cluster-admin
角色登录到 web 控制台,现在您可以从控制台中的表单在集群中的任何命名空间中创建新网络策略。在以前的版本中,这只能在 YAML 中直接完成。
1.3.9. 存储
1.3.9.1. 使用 AWS EBS CSI 驱动程序 operator 的持久性存储已正式发布
OpenShift Container Platform 可以使用 AWS Elastic Block Store(EBS)的 Container Storage Interface(CSI)驱动来置备持久性卷(PV)。此功能以前在 OpenShift Container Platform 4.5 中作为技术预览功能,现在在 OpenShift Container Platform 4.9 中正式发布并启用。
如需更多信息,请参阅 AWS EBS CSI Driver Operator。
1.3.9.2. 使用 Azure Stack Hub CSI Driver Operator 的持久性存储(通用可用性)
OpenShift Container Platform 可以使用 Azure Stack Hub 存储的 CSI 驱动程序置备 PV。Azure Stack Hub 是 Azure Stack 产品组合的一部分,允许您在内部环境中运行应用程序,并在数据中心内提供 Azure 服务。管理此驱动程序的 Azure Stack Hub CSI Driver Operator 对 4.9 来说是新的,并正式发布。
如需更多信息,请参阅 Azure Stack Hub CSI Driver Operator。
1.3.9.3. 使用 AWS EFS CSI Driver Operator 的持久性存储(技术预览)
OpenShift Container Platform 可以使用 AWS Elastic File Service (EFS) 的 CSI 驱动程序置备 PV。管理此驱动程序的 AWS EFS CSI Driver Operator 只是一个技术预览。
如需更多信息,请参阅 AWS EFS CSI Driver Operator。
1.3.9.4. 自动 CSI 迁移支持 GCE(技术预览)
从 OpenShift Container Platform 4.8 开始,树内卷插件自动迁移到其等同的 CSI 驱动程序作为一个技术预览功能提供。此功能现在支持从 Google Compute Engine Persistent Disk (GCE PD) in-tree 插件自动迁移到 Google Cloud Platform (GCP) Persistent Disk CSI 驱动程序。
如需更多信息,请参阅 CSI 自动迁移。
1.3.9.5. 自动 CSI 迁移支持 Azure Disk(技术预览)
从 OpenShift Container Platform 4.8 开始,树内卷插件自动迁移到其等同的 CSI 驱动程序作为一个技术预览功能提供。此功能现在支持从 Azure Disk in-tree 插件自动迁移到 Azure Disk CSI 驱动程序。
如需更多信息,请参阅 CSI 自动迁移。
1.3.9.6. VMware vSphere CSI Driver Operator 会自动创建存储策略(技术预览)
vSphere CSI Operator Driver 存储类现在使用 vSphere 的存储策略。OpenShift Container Platform 会自动创建一个存储策略,该策略以云配置中配置的数据存储为目标。
如需更多信息,请参阅 VMWare vSphere CSI Driver Operator。
1.3.9.7. 为 Local Storage Operator 提供新的指标
OpenShift Container Platform 4.9 为 Local Storage Operator 提供了以下新指标:
-
lso_discovery_disk_count
:每个节点中发现的设备总数 -
lso_lvset_provisioned_PV_count
:LocalVolumeSet
对象创建的 PV 总数 -
lso_lvset_unmatched_disk_count
: Local Storage Operator 没有选择进行置备的磁盘总数,因为不匹配条件 -
lso_lvset_orphaned_symlink_count
: 使用 PV 的设备数,它们不再与LocalVolumeSet
对象标准匹配 -
lso_lv_orphaned_symlink_count
:包含 PV 的设备数,它们不再符合LocalVolume
对象标准 -
lso_lv_provisioned_PV_count
:LocalVolume
置备的 PV 总数
如需更多信息,请参阅使用本地卷的持久性存储。
1.3.9.8. 现在提供了 oVirt CSI 驱动程序重新定义大小功能
OpenShift Container Platform 4.9 为 oVirt CSI Driver 添加了重新定义大小功能,用户可以增加其现有持久性卷声明 (PVC) 的大小。在这个功能前,用户必须创建增大大小的新 PVC,并将所有内容从旧的持久性卷 (PV) 移到新 PV,这可能会导致数据丢失。现在,用户可以编辑现有的 PVC,oVirt CSI Driver 将调整底层 oVirt 磁盘的大小。
1.3.10. Registry
1.3.10.1. Image Registry 在 Azure Stack Hub 安装中使用 Azure Blob Storage
在 OpenShift Container Platform 4.9 中,集成的 Image Registry 对于使用用户置备的基础架构在 Microsoft Azure Stack Hub 上安装的集群使用 Azure Blob Storage。
详情请参阅使用 ARM 模板在 Azure Stack Hub 上安装集群。
1.3.11. Operator 生命周期
以下新功能和增强功能与使用 Operator Lifecycle Manager (OLM) 运行 Operator 相关。
1.3.11.1. Operator Lifecycle Manager 升级到 Kubernetes 1.22
从 OpenShift Container Platform 4.9 开始,Operator Lifecycle Manager (OLM) 支持 Kubernetes 1.22。因此,大量 v1beta1
API 已被删除并更新至 v1
。依赖于删除的 v1beta1
API 的 Operator 不会在 OpenShift Container Platform 4.9 上运行。在将集群升级到 OpenShift Container Platform 4.9 之前,集群管理员应将其安装的 Operator 升级到 latest
频道。
Kubernetes 1.22 对 CustomResorceDefinition
API 的 v1
引入了几个显著的更改。
1.3.11.2. 基于文件的目录
基于文件的目录是 Operator Lifecycle Manager (OLM) 中目录格式的最新迭代。格式是之前基于纯文本(JSON 或 YAML)和声明式配置演进,现已弃用 SQLite 数据库格式,并且完全向后兼容。此格式的目标是启用 Operator 目录编辑、可组合性和可扩展性。
如需有关基于文件的目录规格的更多信息,请参阅 Operator Framework 打包格式。
有关使用 opm
CLI 创建基于文件的目录的说明,请参阅管理自定义目录。
1.3.11.3. 对单节点 OpenShift 的 Operator Lifecycle Manager 支持
Operator Lifecycle Manager (OLM) 现在包括在 Single Node OpenShift (SNO) 集群中,启用自助服务 Operator 安装。
1.3.11.4. 对集群管理员错误报告功能的增强
对于管理员,应该可以在不需要了解各种低级别 API 的交互过程或访问 OLM pod 日志的情况下,就可以成功调试这些问题,所以 OpenShift Container Platform 4.9 在 OLM 中引入了以下增强功能,以便为管理员提供更易理解的错误报告和消息:
1.3.11.4.1. 更新 Operator 组状态条件
在以前的版本中,如果命名空间包含多个 Operator 组或找不到服务帐户,Operator 组的状态将无法报告错误。在这个版本中,这些场景更新 Operator 组的状态条件以报告错误。
1.3.11.4.2. 指明安装计划失败的原因
在这个发行版本前,如果安装计划失败,订阅条件不会说明发生失败的原因。现在,如果安装计划失败,订阅状态条件表示失败的原因。
1.3.11.4.3. 指示解决订阅状态冲突
由于依赖项解析会将命名空间中的所有组件视为单个单元,如果发生解析失败,命名空间上的所有订阅现在都会显示错误。
1.3.11.5. 自定义目录源的镜像模板
为避免集群升级可能会使 Operator 安装处于不受支持的状态或没有持续更新路径,您可以启用自动更改 Operator 目录的索引镜像版本作为集群升级的一部分。
将 olm.catalogImageTemplate
注解设置为您的目录镜像名称,并在构建镜像标签的模板时使用一个或多个 Kubernetes 集群版本变量。
如需更多信息,请参阅自定义目录源的镜像模板。
1.3.12. Operator 开发
以下新功能和增强功能与使用 Operator SDK 开发 Operator 相关。
1.3.12.1. 高可用性或单节点集群检测和支持
OpenShift Container Platform 集群能够以高可用性 (HA) 模式配置,该模式使用多个节点,或者在非 HA 模式中使用单一节点。单一节点集群(也称为单节点 OpenShift(SNO))可能会具有更为保守的资源限制。因此,在单一节点集群中安装 Operator 务必要进行相应调整,并且仍然运行良好。
通过访问 OpenShift Container Platform 中提供的集群高可用性模式 API,Operator 作者可使用 Operator SDK 来让 Operator 检测集群的基础架构拓扑,不论是 HA 模式还是非 HA 模式。可以开发使用检测到的集群拓扑的自定义 Operator 逻辑,以自动将 Operator 及其管理的任何 Operands 或工作负载的资源要求切换到最适合拓扑的配置集。
如需更多信息,请参阅高可用性或单节点集群检测和支持。
1.3.12.2. 对网络代理的 Operator 支持
Operator 作者现在可以开发支持网络代理的 Operator。使用代理的 Operator 支持检查 Operator 部署中的环境变量,并将变量传递给所需的 Operands。集群管理员配置对 Operator Lifecycle Manager (OLM) 处理的环境变量的代理支持。如需更多信息,请参阅 Operator SDK 指南来使用 Go、Ansible 和 Helm 开发 Operator。
1.3.12.3. 验证从 Kubernetes 1.22 中删除的 API 的捆绑包清单
现在,您可以使用 bundle validate
子命令的 Operator Framework 套件检查从 Kubernetes 1.22 中删除的 API 捆绑包清单。
例如:
$ operator-sdk bundle validate .<bundle_dir_or_image> \ --select-optional suite=operatorframework \ --optional-values=k8s-version=1.22
如果您的捆绑包清单包含从 Kubernetes 1.22 中删除的 API,则命令会显示警告消息。警告消息指明您需要迁移的 API 以及 Kubernetes API 迁移指南的链接。
如需更多信息,请参阅从 Kubernetes 1.22 中删除的 beta API 列表和 Operator SDK CLI 。
1.3.13. Builds
作为使用 OpenShift Container Platform 进行构建的开发人员,您可以使用以下新功能:
- 您可以挂载构建卷,为运行的构建授予您不想在输出容器镜像中保留的信息的访问权限。构建卷可以提供存储库凭据等敏感信息,这些凭据仅在构建时需要这些凭据或配置。构建卷与构建输入不同,后者的数据可以保留在输出容器镜像中。
-
您可以根据 BuildConfig 状态中记录的信息,配置镜像更改来触发构建。这样,您可以在 GitOps 工作流中的构建中使用
ImageChange
触发器。
1.3.14. 镜像
1.3.14.1. 通配符域作为 registry 源
此发行版本引入了在镜像 registry 设置中使用通配符域作为 registry 源的支持。使用通配符域,如 *.example.com
,您可以将集群设置为从多个子域推送和拉取镜像,而无需手动输入每个子域的镜像。如需更多信息,请参阅镜像控制器配置参数。
1.3.15. 机器 API
1.3.15.1. Red Hat Enterprise Linux (RHEL) 8 现在支持计算机器
从 OpenShift Container Platform 4.9 开始,计算机器可以使用 Red Hat Enterprise Linux (RHEL) 8.4。在以前的版本中,计算机器不支持 RHEL 8。
您无法将 RHEL 7 计算机器升级到 RHEL 8。您必须部署新的 RHEL 8 主机,并且应该删除旧的 RHEL 7 主机。
1.3.16. 节点
1.3.16.1. 调度程序配置集 GA
使用调度程序配置集调度 pod 现已正式发布。这是配置调度程序策略的替代。可用的调度程序配置集如下:
-
LowNodeUtilization
:此配置集尝试在节点间平均分配 pod,以获得每个节点的资源用量较低。 -
HighNodeUtilization
:此配置集会尽量将 pod 放置到尽量少的节点中,以最小化每个节点用量。 -
NoScoring
:这是一个低延迟配置集,通过禁用所有分数(score)插件来实现最快的调度周期。这可能会为更快的调度决策提供更好的要求。
如需更多信息,请参阅使用调度程序配置集调度 pod。
1.3.16.2. 新的 descheduler 配置集和自定义
descheduler 配置集现在可用:
-
SoftTopologyAndDuplicates
:此配置集与TopologyAndDuplicates
相同,但具有软拓扑约束的 pod(如whenUnsatisfiable: ScheduleAnyway
)也被视为驱除。 -
EvictPodsWithLocalStorage
:此配置集允许带有本地存储的 pod 有资格被驱除。 -
EvictPodsWithPVC
:此配置集允许带有持久性卷声明的 pod 有资格驱除。
您还可以自定义 LifecycleAndUtilization
配置集的 pod 生命周期值。
如需更多信息,请参阅使用 descheduler 驱除 pod。
1.3.16.3. 多次登录到同一 registry
在将 docker/config.json
文件配置为允许 pod 从私有 registry 拉取镜像时,您现在可以列出同一 registry 中的特定存储库,每个存储库都有特定于该 registry 路径的凭证。在以前的版本中,您只能从给定的 registry 中列出一个存储库。现在,您还可以使用特定命名空间定义 registry。
1.3.16.4. 增强的节点资源的监控
节点相关的指标和警报已被改进,您可以更早地表明节点何时受到影响。
1.3.16.5. 使用 Poison Pill Operator 增强补救
Poison Pill Operator 现在通过使用 watchdog 设备来提供增强的补救。如需更多信息,请参阅关于 watchdog 设备。
1.3.16.6. 使用 Node Health Check Operator 部署节点健康检查(技术预览)
您可以使用 Node Health Check Operator 来部署 NodeHealthCheck
控制器。控制器识别不健康的节点,并使用 Poison Pill Operator 来修复不健康的节点。
1.3.17. Red Hat OpenShift Logging
在 OpenShift Container Platform 4.7 中,Cluster Logging 变为了 Red Hat OpenShift Logging。如需更多信息,请参阅 Red Hat OpenShift Logging 的发行注记。
1.3.18. 监控
此版本的监控堆栈包括以下新功能和修改后的功能:
1.3.18.1. 监控堆栈组件和依赖项
监控堆栈组件和依赖项的更新包括:
- Prometheus 更新到 2.29.2
- Prometheus Operator 更新到 0.49.0
- Prometheus Adapter 更新到 0.9.0
- Alertmanager 更新到 0.22.2
- Thanos 更新到 0.22.0
1.3.18.2. 警报规则
New
-
HighlyAvailableWorkloadIncorrectlySpread
告知您,当两个具有高可用性监控组件的实例在同一节点上运行并附加持久性卷时,可能会出现的问题。 -
当节点内核没有可用的文件描述符时,
NodeFileDescriptorLimit
会触发警报。警告级别警报会以超过 70% 的使用量触发,关键级别的警报会触发超过 90% 的使用量。 -
PrometheusLabelLimitHit
检测目标何时超过定义的标签限值。 -
PrometheusTargetSyncFailure
会在 Prometheus 无法同步目标时检测。 - 所有关键警报规则都包含到 runbooks 的链接。
-
增强
-
AlertManagerReceiversNotConfigured
和KubePodCrashLooping
现在包含较少的假正状态。 -
KubeCPUOvercommit
和KubeMemoryOvercommit
现在在非同构环境中更强大。 -
NodeFilesystemAlmostOutOfSpace
警报规则的for
时长设置已从 1 小时改为 30 分钟,以便系统在磁盘空间低时更快地检测。 -
KubeDeploymentReplicasMismatch
现在会如预期触发。在以前的版本中,此警报没有触发。 以下警报现在包含一个
namespace
标签:-
AlertmanagerReceiversNotConfigured
-
KubeClientErrors
-
KubeCPUOvercommit
-
KubeletDown
-
KubeMemoryOvercommit
-
MultipleContainersOOMKilled
-
ThanosQueryGrpcClientErrorRate
-
ThanosQueryGrpcServerErrorRate
-
ThanosQueryHighDNSFailures
-
ThanosQueryHttpRequestQueryErrorRateHigh
-
ThanosQueryHttpRequestQueryRangeErrorRateHigh
-
ThanosSidecarPrometheusDown
-
Watchdog
-
-
红帽不保证指标、记录规则或警报规则的向后兼容。
1.3.18.3. Alertmanager
- 您可以为平台和用户定义的项目监控堆栈添加和配置额外的外部 Alertmanager。
- 您可以禁用本地 Alertmanager 实例。
使用新的
monitoring-alertmanager-edit
用户角色,非管理员用户可以为默认平台监控创建并静默警报。要允许这些用户创建和静默警报,除了cluster-monitoring-view
角色外,还需要为他们分配新的monitoring-alertmanager-edit
角色。重要在这个版本中,
cluster-monitoring-view
角色仅限于允许访问 Alertmanager。分配了这个角色的非管理员用户,在早期版本的 OpenShift Container Platform 中允许创建和静默警报,现在将无法执行此操作。要允许非管理员用户在 OpenShift Container Platform 4.9 中的 Alertmanager 中创建和静默警报,除了cluster-monitoring-view
角色外,还需要为他们分配新的monitoring-alertmanager-edit
角色。
1.3.18.4. Prometheus
- 您可以为 Prometheus 中的平台监控和用户定义的项目启用和配置远程写入存储。通过此功能,您可以将最接近的指标发送到长期存储。
要减少 Prometheus 的总内存消耗,以下同时带有空
pod
和namespace
标签的 cAdvisor 指标被丢弃:-
container_fs_.*
-
container_spec_.*
-
container_blkio_device_usage_total
-
container_file_descriptors
-
container_sockets
-
container_threads_max
-
container_threads
-
container_start_time_seconds
-
container_last_seen
-
-
如果没有为平台监控配置持久性存储,升级和集群中断可能会导致数据丢失。当系统检测到没有为平台监控配置持久性存储时,
Degraded
条件中增加了警告消息。 -
您可以通过在项目中添加
openshift.io/user-monitoring: "false"
标签,从openshift-user-workload-monitoring
项目中排除单独用户定义的项目。 -
您可以为
openshift-user-workload-monitoring
项目配置enforcedTargetLimit
参数,以设置提取的目标数量的整体限制。
1.3.18.5. 删除 Prometheus UI 链接
第三方 Prometheus UI 的链接已从 OpenShift Container Platform Web 控制台的 Observe openshift-monitoring
项目中的 Networking
1.3.18.6. Grafana
因为运行默认 Grafana 仪表板可能会从用户工作负载中获取资源,所以您可以禁用 Grafana 仪表板部署。
1.3.19. Metering
此发行版本删除了 OpenShift Container Platform Metering Operator。
1.3.20. 可伸缩性和性能
1.3.20.1. 特殊资源 Operator(技术预览)
现在,您可以使用特殊资源 Operator (SRO) 来帮助管理现有 OpenShift Container Platform 集群上的内核模块和驱动程序的部署。目前,这是一个技术预览功能。
如需更多信息,请参阅关于特殊资源 Operator。
1.3.20.2. 内存管理器正式发布
现在,由 Performance Addon Operator 配置了一个 kubelet 子组件,现在在使用以下 Topology Manager 策略配置的节点上都默认启用所有 pod:
-
single-numa-node
-
restricted
1.3.20.3. 其他用于延迟测试的工具
OpenShift Container Platform 4.9 引入了两个额外的工具来测量系统延迟:
-
hwladetect
测量裸机硬件能够达到的基准 -
cyclictest
在hwlatdetect
通过验证后会调度一个重复的计时器,并测量所需与实际触发时间之间的差别
如需更多信息,请参阅运行延迟测试。
1.3.20.4. 集群最大限制
针对 OpenShift Container Platform 4.9 的集群最大限制指导信息已更新。
此发行版本没有针对 OVN-Kubernetes 测试执行大规模测试。
使用 OpenShift Container Platform Limit Calculator 可以估算出您的环境的集群限制。
1.3.20.5. Zero touch provisioning(技术预览)
OpenShift Container Platform 4.9 支持 zero touch provisioning (ZTP),它允许您在远程站点使用裸机设备声明配置来置备新的边缘站点。ZTP 在基础架构部署中使用 GitOps 部署实践集。GitOps 使用 Git 存储库中存储的声明性规范(如 YAML 文件和其他定义的模式)来实现这些任务,从而提供用于部署基础架构的框架。Open Cluster Manager (OCM) 将声明性输出用于多站点部署。如需更多信息,请参阅大规模配置边缘站点。
1.3.21. Insights Operator
1.3.21.1. 导入 RHEL 简单内容访问证书(技术预览)
在 OpenShift Container Platform 4.9 中,Insights Operator 可以从 Red Hat OpenShift Cluster Manager 导入 RHEL Simple Content Access (SCA) 证书。
如需更多信息,请参阅使用 Insights Operator 导入 RHEL Simple Content Access 证书。
1.3.21.2. 深入了解 Operator 数据收集功能的增强
在 OpenShift Container Platform 4.9 中,Insights Operator 会收集以下附加信息:
-
集群中的所有
MachineConfig
资源定义。 -
在集群中安装的
PodSecurityPolicies
的名称。 -
如果已安装,
ClusterLogging
资源定义。 -
如果
SamplesImagestreamImportFailing
警报触发,则来自openshift-cluster-samples-operator
命名空间中的ImageStream
定义和容器日志的最后 100 行。
通过这些附加信息,红帽可在 Insights Advisor 中提供改进的补救步骤。
1.3.22. 认证和授权
1.3.22.1. 以手动模式支持带有 Cloud Credential Operator 的 Microsoft Azure Stack Hub
在这个版本中,可以通过以手动模式配置 Cloud Credential Operator (CCO) 在 Microsoft Azure Stack Hub 上安装。
如需更多信息,请参阅使用手动模式。
1.3.23. OpenShift 沙盒容器(sandboxed containers)支持 OpenShift Container Platform(技术预览)
要查看 OpenShift 沙盒容器、新功能、错误修复、已知问题以及异步勘误更新,请参阅 OpenShift 沙盒容器 1.1 发行注记。