1.6. 程序错误修复
API 服务器和客户端
- 在以前的版本中,当使用由安全性上下文约束模拟的 pod 规格创建 pod 控制器时,用户可能会收到 Pod 不满足给定命名空间的 pod 安全级别的警告。在这个版本中,如果 pod 控制器创建在该命名空间中没有违反 pod 安全性的 pod,则不再会收到有关 pod 安全的警告。(OCPBUGS-7267)
-
user:check-access
有范围令牌授予发送 SelfSubjectAccessReview 请求的权限。在以前的版本中,除非令牌也具有user:full
范围或角色范围,集群没有足够权限来执行访问权限。在这个版本中,集群会授权一个 SelfSubjectAccessReview 请求,因为它具有完整的用户权限或请求上设置的用户角色的权限,以便能够执行访问权限检查。(OCPBUGS-7415) -
在以前的版本中,当将
.subjects[].kind
设置为ServiceAccount
时,pod 安全准入控制器需要设置RoleBinding
对象的.subject[].namespace
字段,以便可以成功将服务帐户绑定到角色。在这个版本中,如果没有指定.subject[].namespace
,pod 安全准入控制器将使用RoleBinding
对象的命名空间。(OCPBUGS-160) -
在以前的版本中,
ValidatingWebhookConfiguration
和MutatingWebhookConfiguration
对象的所有 webhook 的clientConfig
没有被service-ca
信任捆绑包正确注入caBundle
。在这个版本中,ValidatingWebhookConfiguration
和MutatingWebhookConfiguration
对象的所有 webhook 的clientConfig
都会获得带有service-ca
信任捆绑包正确注入的caBundle
。(OCPBUGS-19318) -
在以前的版本中,当为
namedCertificates
中的servingCertificate
指定了一个无效的 secret 名称时,kube-apiserver 不会变为Degraded=True
。在这个版本中,kube-apiserver 会变为Degraded=True
,并显示不接受证书的原因,以便更轻松地进行故障排除。(OCPBUGS-8404) - 在以前的版本中,可观察性仪表板使用大型查询来显示数据,这会导致在有大量节点的集群上频繁超时。在这个版本中,Observability 仪表板使用预先计算的记录规则,以确保在有大量节点的集群上的可靠性。(OCPBUGS-3986)
裸机硬件置备
-
在以前的版本中,如果裸机的主机名不是由反向 DNS 或 DHCP 提供的,在安装程序置备的基础架构上的裸机集群置备过程中默认为
localhost
。此问题导致 Kubernetes 节点名称冲突,并阻止部署集群。现在,如果检测到主机名是localhost
,则置备代理会将持久主机名设置为BareMetalHost
对象的名称。(OCPBUGS-9072)
Cloud Compute
- 在以前的版本中,Machine API 控制器无法决定使用多个区的 vSphere 集群中的机器区。在这个版本中,区查找逻辑基于虚拟机的主机,因此机器对象代表了正确的区。(OCPBUGS-7249)
-
在以前的版本中,在
clouds.yaml
文件中轮转云凭证后,需要重启 OpenStack 机器 API 供应商才能获取新的云凭证。因此,机器集可扩展为零的功能可能会受到影响。在这个版本中,云凭证不再被缓存,供应商会根据需要再次读取对应的 secret。(OCPBUGS-8687) - 在以前的版本中,Cluster Autoscaler Operator 启动过程中的一些条件会导致一个锁定,阻止 Operator 成功启动并将自身标记为可用。因此,集群会降级。这个版本解决了这个问题。(OCPBUGS-20038)
- 在以前的版本中,用于为 control plane 节点请求客户端凭证的 bootstrap 凭证不包括通用,所有服务帐户组。因此,集群机器批准忽略在这个阶段创建的证书签名请求 (CSR)。在某些情况下,这会阻止 bootstrap 过程中批准 CSR,并导致安装失败。在这个版本中,bootstrap 凭证包括集群机器批准者对服务帐户所需的组。此更改允许机器批准程序在集群生命周期前面从 bootstrap CSR 批准程序接管,并应减少与 CSR 批准相关的 bootstrap 失败。(OCPBUGS-8349)
-
在以前的版本中,如果扩展 Nutanix 集群上的机器超过可用内存来完成操作,机器会处于
Provisioning
状态,且无法扩展或缩减。这个问题已在本发行版本中解决。(OCPBUGS-19731) -
在以前的版本中,对于将 Control Plane Machine Set Operator 配置为使用
OnDelete
更新策略的集群,缓存机器的信息会导致 Operator 错误地平衡机器,并在协调过程中将它们放在意外的故障域中。在这个版本中,Operator 会在创建新机器前立即刷新此信息,以便正确标识要放置机器的故障域。(OCPBUGS-15338) -
在以前的版本中,Control Plane Machine Set Operator 使用
Infrastructure
对象规格来决定集群的平台类型。对于从 OpenShift Container Platform 版本 4.5 及更早版本升级的集群,这个实践意味着 Operator 无法正确确定集群是否在 AWS 上运行,因此不会按预期生成ControlPlaneMachineSet
自定义资源(CR)。在这个版本中,Operator 使用 status 平台类型,该类型会在创建时位于所有集群中填充,现在可以为所有集群生成ControlPlaneMachineSet
CR。(OCPBUGS-11389) - 在以前的版本中,当底层 Machine API 机器运行后,由 control plane 机器集创建的机器被视为就绪。在这个版本中,在链接到该机器的节点就绪前,机器不会被视为就绪。(OCPBUGS-7989)
- 在以前的版本中,Control Plane Machine Set Operator 按照字母顺序对故障域进行优先级排序,并将机器从按字母顺序位于后面的失败的域中移动按字母顺序位于较早的失败域中集群,即使这样做并不能改进跨故障域中的机器可用性。在这个版本中,Operator 被更新为优先选择现有机器中存在的故障域,并遵守提供更好可用性的现有故障域。(OCPBUGS-7921)
- 在以前的版本中,当删除使用 control plane 机器集的 vSphere 集群上的 control plane 机器时,有时会创建两个替换机器。在这个版本中,control plane 机器集不再会导致创建额外的机器。(OCPBUGS-7516)
- 在以前的版本中,当机器集中的可用区和子网 ID 不匹配时,会使用机器集规格成功创建机器,且没有指示不匹配的用户。由于不匹配的值可能会导致某些配置出现问题,所以发生这个情况可能会作为警告信息可见。在这个版本中,会记录有关不匹配的警告。(OCPBUGS-6882)
- 在以前的版本中,当在 Nutanix 上创建 OpenShift Container Platform 集群时,它使用 Dynamic Host Configuration Protocol (DHCP)而不是 IP 地址管理(IPAM)网络配置时,DHCP 不会设置虚拟机的名称。在这个版本中,使用 ignition 配置文件中的值设置虚拟机主机名。因此,这个问题已针对 DHCP 和其他网络配置类型解决。(OCPBUGS-6727)
-
在以前的版本中,可以在
openshift-cluster-api
命名空间中创建多个集群。此命名空间必须只包含一个集群。在这个版本中,无法在这个命名空间中创建额外的集群。(OCPBUGS-4147) -
在以前的版本中,从 control plane 机器集自定义资源的
providerSpec
字段中清除一些参数会导致 control plane 机器删除和创建循环。在这个版本中,如果这些参数被清除或留空,则这些参数会收到一个默认值,这会解决这个问题。(OCPBUGS-2960)
Cloud Credential Operator
-
在以前的版本中,Cloud Credential Operator 实用程序 (
ccoctl
) 为 AWS GovCloud (US) 和 AWS 中国区域使用不正确的 Amazon Resource Names (ARN) 前缀。不正确的 ARN 前缀会导致ccoctl aws create-all
命令在安装过程中创建 AWS 资源失败。此发行版本将 ARN 前缀更新为正确的值。(OCPBUGS-13549) -
在以前的版本中,对 Amazon S3 存储桶的安全更改会导致 Cloud Credential Operator 实用程序(
ccoctl
)命令在安装过程中创建 AWS 资源(ccoctl aws create-all
)失败。在这个版本中,ccoctl
工具被更新来反映 Amazon S3 安全更改。(OCPBUGS-11671)
Cluster Version Operator
在以前的版本中,Cluster Version Operator (CVO)不会按预期协调
SecurityContextConstraints
资源。CVO 现在可以正确地将SecurityContextConstraints
资源与发行镜像中定义的状态协调,从而恢复对它们的任何不支持的修改。希望从以前的 OpenShift Container Platform 版本升级以及根据修改后的系统
SecurityContextConstraints
资源运行工作负载的用户必须遵循 知识库文章 中的流程,以确保其工作负载能够在没有修改的系统SecurityContextConstraint
资源的情况下运行。(OCPBUGS-19465)- 在以前的版本中,当决定首先评估的条件更新风险时,Cluster Version Operator 不会优先选择目标。现在,对于没有应用风险的条件更新,这些更新会在 Cluster Version Operator 检测后更快可用。(OCPBUGS-5469)
开发人员控制台
-
在以前的版本中,如果您尝试在 Developer 控制台中编辑 Helm chart repository 仓库,进入 Helm,点 Repositories 标签页,然后在
菜单中选择 Edit HelmChartRepository,则会出现一个错误页面,它显示了一个
404: Page Not Found
错误。这是因为一个不是最新的组件路径所致。这个问题现已解决。(OCPBUGS-14660) - 在以前的版本中,区分 Samples 页面中列出的样本类型比较困难。在这个版本中,您可以轻松地识别 Samples 页面中显示的徽标中的示例类型。(OCPBUGS-7446)
-
在以前的版本中,在 Pipeline Metrics 页面中,
TaskRun
持续时间标图中只可以看到四个图例。在这个版本中,您可以看到TaskRun
持续时间图表的所有图例。(OCPBUGS-19878) -
在以前的版本中,当在一个未安装 Cluster Samples Operator 的断开连接的集群中使用
Import JAR
表单创建应用程序时,会出现一个问题。在这个版本中,Add 页面中的Import JAR
表单会在 Java Builder Image 不存在时隐藏 Topology 页面。(OCPBUGS-15011) - 在以前的版本中,如果禁用了集群服务版本 (CSV) 副本,Operator 支持的目录不会显示任何目录项。在这个版本中,即使禁用了 CSV 副本,Operator 支持的目录也会在每个命名空间中显示。(OCPBUGS-14907)
- 在以前的版本中,在 Import from Git 和 Deploy Image 流中,Resource Type 部分被移到 Advanced 部分。因此,很难识别创建的资源类型。在这个版本中,Resource Type 部分被移到 General 部分。(OCPBUGS-7395)
etcd Cluster Operator
-
在以前的版本中,
etcdctl
二进制文件会无限期地缓存在本地机器上,从而无法对二进制文件进行更新。现在,每次调用cluster-backup.sh
脚本时都会正确更新二进制文件。(OCPBUGS-19499)
安装程序
- 在以前的版本中,如果您在将 AWS 集群安装到受支持的 secret 分区时没有指定自定义 Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI),安装会失败。在这个版本中,安装程序会在部署集群前验证您在安装配置文件中指定了 RHCOS AMI 的 ID。(OCPBUGS-13636)
- 在以前的版本中,OpenShift Container Platform 安装程序在使用共享 VPC 在 Google Cloud Platform (GCP) 上安装在主机项目中找不到私有托管区。在这个版本中,安装程序会检查主机项目中现有的私有托管区,并使用私有托管区(如果存在)。(OCPBUGS-11736)
- 在以前的版本中,如果您在安装私有 Azure 集群时配置了用户定义的出站路由,集群会错误地使用默认公共负载均衡器部署。使用安装程序置备的基础架构安装集群时发生此行为。在这个版本中,在配置用户定义的路由时,安装程序不再创建公共负载均衡器。(OCPBUGS-9404)
- 在以前的版本中,对于在 RHOSP 上运行的集群,在安装取消置备阶段,安装程序会按顺序删除对象存储容器。这个行为会导致对象的缓慢和低效删除,特别是对于大型容器来说。此问题部分发生,因为使用 Swift 容器随时间积累的对象的镜像流。现在,批量对象删除发生在最多 3 个对 RHOSP API 的调用时,通过每个调用处理较高的对象数来提高效率。此优化可在取消置备过程中加快资源清理速度。(OCPBUGS-9081)
-
在以前的版本中,当堡垒主机在与集群节点相同的 VPC 网络中运行时,对 bootstrap 和集群节点的 SSH 访问会失败。另外,此配置会导致从临时 bootstrap 节点到集群节点的 SSH 访问失败。现在,通过更新 IBM Cloud
SecurityGroupRules
来支持临时 bootstrap 节点和集群节点之间的 SSH 流量来解决这些问题,并支持从堡垒主机到同一 VPC 网络上的集群节点的 SSH 流量。可以在安装程序置备的基础架构失败时准确收集日志和调试信息以进行分析。(OCPBUGS-8035) - 在以前的版本中,在卸载私有集群时,安装程序创建的 DNS 记录不会被删除。在这个版本中,安装程序可以正确地删除这些 DNS 记录。(OCPBUGS-7973)
- 在以前的版本中,文档中提供的脚本用于检查 RHOSP API 中的无效 HTTPS 证书,假设 RHOSP 客户端的最新版本。对于没有客户端最新版本的用户,此脚本会失败。现在,在文档中添加了手动说明,用户可以按照这些文档对客户端的任何版本执行检查。(OCPBUGS-7954)
-
在以前的版本中,当在
agent-config.yaml
或nmstateconfig.yaml
文件中为基于 Agent 的安装定义静态 IP 地址时,在 bootstrap 过程中可能无法配置配置的静态 IP 地址。因此,主机接口会通过 DHCP 选择一个地址。在这个版本中,解决了时间问题,以确保配置的静态 IP 地址正确应用到主机接口。(OCPBUGS-16219) -
在以前的版本中,在基于 Agent 的安装过程中,
install-config.yaml
文件的AdditionalTrustBundle
字段中的证书仅在为镜像设置ImageContentSources
字段时传播到最终镜像。如果没有设置镜像,则额外的证书位于 bootstrap 上,而不是最终镜像。当您设置了代理并希望添加额外的证书时,这可能会导致问题,如 在安装过程中配置集群范围代理 所述。在这个版本中,这些额外证书会传播到最终镜像,无论是否同时设置了ImageContentSources
字段。(OCPBUGS-13535) -
在以前的版本中,
openshift-install agent create
命令在运行无效命令时不会返回帮助输出。在这个版本中,在运行无效的openshift-install agent create
命令时会显示帮助输出。(OCPBUGS-10638) -
在以前的版本中,没有为使用技术预览故障域生成的机器正确设置主网络。因此,带有 ID
control-plane
的端口目标没有被设置为机器上的主要网络,这可能会导致使用 Kuryr 的安装不当地正常工作。现在,如果设置,该字段被设置为使用正确的端口目标。现在,生成的机器的主要网络已被正确设置,允许使用 Kuryr 的安装完成。(OCPBUGS-10570) -
在以前的版本中,当在使用包含摘要的
releaseImage
时运行openshift-install agent create image
命令时,命令会生成以下警告信息:WARNING The ImageContentSources configuration in install-config.yaml should have at-least one source field matching the releaseImage
。这个消息会在每次生成,无论配置ImageContentSources
的方式是什么,并可能导致混淆。在这个版本中,只有在ImageContentSources
被合法设置为与发行镜像匹配的至少一个 source 字段时,才会生成警告信息。(OCPBUGS-10207) -
在以前的版本中,当运行
openshift-install agent create image
命令来生成可引导 ISO 镜像时,命令输出会提供一个指示成功生成的镜像的消息。即使基于 Agent 的安装程序无法从发行镜像中提取基本 ISO 镜像,也会存在此输出消息。在这个版本中,如果基于 Agent 的安装程序找不到基本 ISO 镜像,则命令输出会生成错误消息,这可能代表releaseImage
的问题。(OCPBUGS-9949) - 在以前的版本中,在使用 passthrough 凭证模式的 GCP 上的共享 VPC 安装可能会失败,因为安装程序使用来自默认服务帐户的凭证。在这个版本中,您可以指定用于创建节点的另一个服务帐户,而不是默认的服务帐户。(OCPBUGS-15421)
-
在以前的版本中,如果您在
agent-config.yaml
或nmstateconfig.yaml
配置文件中定义了比计算节点更多的 control plane 节点,您会收到警告信息。现在,如果您在任一文件中指定了此配置,您会收到错误消息,这表示计算节点无法在任一文件中超过 control plane 节点。(OCPBUGS-14877) -
在以前的版本中,如果
agent-config.yaml
文件中的RendezvousIP
字段使用非规范 IPv6 地址,则基于代理的安装会失败。非规范 IPv6 地址包含前导零,例如2001:0db8:0000:0000:0000:0000:0000:0000
。在这个版本中,这些有效的地址可用于RendezvousIP
。(OCPBUGS-14121) - 在以前的版本中,Operator 会缓存云凭证,这会导致在轮转这些凭证时出现身份验证问题。现在,Operator 始终使用最新的凭证。Manila CSI Driver Operator 现在会自动为每个可用的 Manila 共享类型创建一个 OpenShift 存储类。作为此操作的一部分,Operator 会查询 Manila API。(OCPBUGS-14049)
-
在以前的版本中,当配置
install-config.yaml
文件以便在基于 Agent 的安装过程中使用时,将cpuPartitioning
字段改为非默认值不会产生警告,以警告用户,基于 Agent 的安装会忽略该字段。在这个版本中,更改cpuPartitioning
字段会导致用户警告,使配置不会影响安装。(OCPBUGS-13662) -
在以前的版本中,将 Azure 集群安装到现有 Azure Virtual Network (VNet) 可能会失败,因为安装程序会创建一个默认网络安全组,允许从
0.0.0.0
的流量。当现有 VNet 在租户中启用了以下规则时失败:Rule: Network Security Groups should not allow rule with 0.0.0.0/Any Source/Destination IP Addresses - Custom Deny
.在这个版本中,当将集群安装到现有的 VNet 时,安装程序不再会创建默认网络安全组,安装可以成功。(OCPBUGS-11796) 在安装过程中,当集群状态为
installing-pending-user-action
时,安装不会完成,直到状态解决为止。在以前的版本中,如果您运行openshift-install agent wait-for bootstrap-complete
命令,则不会指示如何解决导致这个状态的问题。在这个版本中,命令输出提供了一个指示必须采取哪些操作来解决这个问题的消息。(OCPBUGS-4998)例如,当使用无效的引导磁盘时,
wait-for
输出现在如下:"level=info msg=Cluster has hosts requiring user input level=debug msg=Host master-1 Expected the host to boot from disk, but it booted the installation image - please reboot and fix boot order to boot from disk QEMU_HARDDISK drive-scsi0-0-0-0 (sda, /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0) level=debug msg=Host master-2 Expected the host to boot from disk, but it booted the installation image - please reboot and fix boot order to boot from disk QEMU_HARDDISK drive-scsi0-0-0-0 (sda, /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0) level=info msg=cluster has stopped installing... working to recover installation"
-
在以前的版本中,安装的集群中
assisted-installer-controller
也会持续运行,即使集群完成安装。因为assisted-service
在 bootstrap 节点上运行,而不是在云中运行,且 assisted-service 会在 bootstrap 节点重启后离线,所以assisted-installer-controller
无法与 assisted-service 进行通信,以发布更新和上传日志和循环。现在,assisted-installer-controller
在不使用assisted-service
的情况下检查集群安装,并在集群安装完成后退出。(OCPBUGS-4240) -
在以前的版本中,将集群安装到 AWS Commercial Cloud Services (C2S)
us-iso-east-1
区域会失败,并显示描述UnsupportedOperation
的错误消息。在这个版本中,安装到此区域可以成功。(OCPBUGS-2324) -
在以前的版本中,在 AWS 上安装可能会失败,因为安装程序没有使用所需的服务端点创建
cloud.conf
文件。这会导致机器配置 Operator 创建一个缺少服务端点的空cloud.conf
文件,从而导致错误。在这个版本中,安装程序总是创建cloud.conf
文件,以便安装成功。(OCPBUGS-20401) -
在以前的版本中,如果您使用基于 Agent 的安装程序安装集群,且 pull secret 有一个 null
auth
或email
字段,则安装会失败,而不会提供有用的错误。在这个版本中,openshift-install agent wait-for install-complete
命令会验证您的 pull secret,并在有 null 字段时通知您。(OCPBUGS-14405) -
在以前的版本中,
create agent-config-template
命令只输出带有INFO
的行,但没有有关该命令成功以及模板文件写入的位置的详细信息。现在,如果命令成功,该命令将输出INFO Created Agent Config Template in <path> directory
。(OCPBUGS-13408) -
在以前的版本中,当用户在
agent-config.yaml
文件中指定vendor
提示时,会根据错误字段检查该值,以便提示不匹配。在这个版本中,使用vendor
提示可以正确地选择磁盘。(OCPBUGS-13356) -
在以前的版本中,当在 AWS 上安装集群时将
metadataService.authentication
字段设置为Required
,不会将 bootstrap 虚拟机配置为使用 IMDSv2 身份验证。如果您将 AWS 帐户配置为阻止 IMDSv1 身份验证,这可能会导致安装失败。在这个版本中,metadataService.authentication
字段在设置为Required
时可以正确地将 bootstrap 虚拟机配置为使用 IMDSv2 身份验证。(OCPBUGS-12964) - 在以前的版本中,如果您在安装私有 Azure 集群时配置了用户定义的出站路由,集群会错误地使用默认公共负载均衡器部署。使用安装程序置备的基础架构安装集群时发生此行为。在这个版本中,在配置用户定义的路由时,安装程序不再创建公共负载均衡器。(OCPBUGS-9404)
-
在以前的版本中,vSphere Terraform
vsphere_virtual_machine
资源不包括firmware
参数。此问题导致虚拟机的固件默认设置为bios
,而不是efi
。现在,资源包含firmware
参数,并将efi
设置为参数的默认值,以便虚拟机运行可扩展固件接口(EFI)而不是基本输入/输出系统(BIOS)接口。(OCPBUGS-9378) - 在以前的版本中,对于在 RHOSP 上运行的集群,在安装取消置备阶段,安装程序会按顺序删除对象存储容器。这个行为会导致对象的缓慢和低效删除,特别是对于大型容器来说。此问题部分发生,因为使用 Swift 容器随时间积累的对象的镜像流。现在,批量对象删除发生在最多 3 个对 RHOSP API 的调用时,通过每个调用处理较高的对象数来提高效率。此优化可在取消置备过程中加快资源清理速度。(OCPBUGS-9081)
- 在以前的版本中,如果您在 Azure 上安装了集群,在没有提供订阅 ID 的情况下使用磁盘加密,安装程序不会退出。这会导致安装启动,然后在以后只失败。在这个版本中,安装程序要求您为加密的 Azure 安装指定一个订阅 ID,如果不提供,则退出并显示错误。(OCPBUGS-8449)
-
在以前的版本中,基于代理的安装程序显示二级检查的结果,如
ping
和nslookup
,即使安装成功,也会无害地失败。这可能会导致集群成功安装失败。在这个版本中,只有在主安装检查失败时,二级检查才会显示结果,以便您可以使用二级检查来排除失败的安装。(OCPBUGS-8390) -
使用带有基于代理的安装程序的 IPI
install-config
会导致日志消息显示任何未使用字段的内容。在以前的版本中,这些警告会输出敏感信息,如密码。在这个版本中,vsphere
和baremetal
platform 部分中的 credentials 字段的警告信息已被修改,以避免记录任何敏感信息。(OCPBUGS-8203) - 在以前的版本中,除非节点有自定义的磁盘大小,否则 Azure Stack Hub 上的集群将无法创建新的 control plane 节点,因为无法验证默认的磁盘大小。在这个版本中,默认磁盘大小被设置为 128 GB,安装程序会在 128 到 1023 GB 之间强制实施用户指定的磁盘大小。(OCPBUGS-6759)
- 在以前的版本中,安装程序在使用安装程序置备的基础架构的裸机上安装时,使用端口 80 向 Baseboard Management Controller (BMC) 和部署代理提供镜像。这可能会造成安全问题,因为许多类型的公共流量都使用端口 80。在这个版本中,安装程序使用端口 6180。(OCPBUGS-8509)
Machine Config Operator
-
在以前的版本中,在 AWS 上安装的 OpenShift Container Platform 集群使用 4.1 引导镜像,它无法进行扩展。出现这个问题的原因是,在初始引导一个新机器期间,由 Ignition 配置然后被 MCO 处理并启动的两个 systemd 单元对应用程序 Afterburn 依赖于应用程序 Afterburn。因为 OpenShift Container Platform 4.1 引导镜像不包含 Afterburn,所以这个问题会阻止新节点加入集群。现在,
systemd
单元包含对 Afterburn 以及不依赖于 Afterburn 的回退代码的额外检查。(OCPBUGS-7559)
管理控制台
- 在以前的版本中,警报从非 Prometheus 数据源加载,如日志。这会导致所有警报的来源始终显示为 Prometheus。在这个版本中,警报源会被正确显示。(OCPBUGS-9907)
- 在以前的版本中,Patternfly 4 存在一个问题:在已经进行选择后,在 master 节点的 logs 部分无法选择或更改日志组件。在这个版本中,当您在 master 节点的 log 部分更改日志组件时,可以刷新页面以重新载入默认选项。(OCPBUGS-18727)
-
在以前的版本中,当查看
alertmanager-main
页面的 Metrics 选项卡上的路由详情时,会显示一个空页面。在这个版本中,用户权限已被更新,您可以查看 Metrics 选项卡上的路由详情。(OCPBUGS-15021) - 在以前的版本中,Red Hat OpenShift Service on AWS 使用自定义品牌,favicon 会消失,因此使用自定义品牌时不会出现特定的品牌。在这个版本中,Red Hat OpenShift Service on AWS 品牌是品牌 API 的一部分。(OCPBUGS-14716)
- 在以前的版本中,当预期一个代理时,OpenShift Container Platform Web 控制台不会呈现监控 Dashboard 页面。因此,websocket 连接会失败。在这个版本中,Web 控制台还会检测来自环境变量的代理设置。(OCPBUGS-14550)
-
在以前的版本中,如果 operator CSV 中使用
console.openshift.io/disable-operand delete: "true"
和operator.openshift.io/uninstall-message: "some message"
注解,则卸载指令不会在 web 控制台中显示。在这个版本中,可以选择不使用安装的说明。(OCPBUGS-13782) - 在以前的版本中,PersistentVolumeClaims 命名空间的 Details 页中的大小不正确。在这个版本中,对 PersistentVolumeClaims 命名空间的 Details 页的 Prometheus 查询会包括命名空间标签,显示的大小是正确的。(OCPBUGS-13208)
-
在以前的版本中,在为控制台和下载自定义路由后,下载路由不会在
ConsoleCLIDownloads
链接中更新,并指向默认的下载路由。在这个版本中,当设置自定义下载路由时,ConsoleCLIDownloads
链接会更新。(OCPBUGS-12990) - 在以前的版本中,打印预览从列表视图中显示不完整的拓扑信息。在这个版本中,当资源超过一个页面时,会输出一个完整的资源列表。(OCPBUGS-11219)
-
在以前的版本中,用于代理服务的动态插件有较长的响应时间时,会在 30 秒后超时,并带有
504
错误消息。在这个版本中,在控制台路由中添加了 5 分钟 HAProxy 超时注解,以匹配大多数浏览器的最大超时时间。(OCPBUGS-9917) -
在以前的版本中,提供的 API 页面使用提供的 API 的
displayName
,但这个值并不总是被设置。因此,列表为空,但您仍可以点所有实例来获取新实例的 YAML。在这个版本中,如果没有设置displayName
,列表会显示文本。(OCPBUGS-8682) -
在以前的版本中,
CronJobs
表和详情视图没有挂起
指示。在这个版本中,spec.suspend
添加到CronJobs
的列表和详情视图中。(OCPBUGS-8299) - 在以前的版本中,当在 console Operator 配置中启用单个插件时,重新部署的控制台会失败。在这个版本中,插件列表是唯一的,pod 会如预期运行。(OCPBUGS-5059)
-
在以前的版本中,在升级插件镜像后,仍然需要旧的插件文件。在这个版本中,当请求
plugin-entry.js
资源时,添加了?cacheBuster=${getRandomChars()}
查询字符串。(OCPBUGS-3495)
监控
-
在此次更新之前,因为
node-exporter
收集网络接口信息的方式,在指标提取过程中可能会消耗大量 CPU 资源。此发行版本解决了这个问题,在收集网络接口信息时提高node-exporter
的性能,从而解决了指标提取过程中 CPU 使用量过多的问题。(OCPBUGS-12714) - 在此次更新之前,Thanos Querier 无法根据节点角色去除重复数据的指标。在这个版本中解决了这个问题,Thanos Querier 现在根据节点角色正确去除重复数据的指标。(OCPBUGS-12525)
-
在此次更新之前,
node-exporter
的btrfs
收集器总是被启用,这会导致 CPU 使用量增加,因为 Red Hat Enterprise Linux (RHEL)不支持btrfs
存储格式。在这个版本中,btrfs
收集器被禁用,从而解决了这个问题。(OCPBUGS-11434) -
在此次更新之前,对于
cluster:capacity_cpu_cores:sum
指标,具有infra
角色,但没有master
角色的节点,不会为label_node_role_kubernetes_io
标签分配infra
的值。在这个版本中,带有infra
角色而非master
角色的节点可以被正确标记为infra
。(OCPBUGS-10387) - 在此次更新之前,缺少启动探测会阻止 Prometheus Adapter pod 安装许多自定义资源定义时启动 Prometheus Adapter pod,因为程序初始化所需的时间比存活度探测允许的内容要长。在这个版本中,Prometheus Adapter pod 被配置为使用一个启动探测,它会在失败前等待五分钟,从而解决了这个问题。(OCPBUGS-7694)
-
node_exporter
收集器仅用于为物理接口收集网络接口指标,但在更新之前,node-exporter
收集器不会在收集这些指标时排除 Calico Virtual 网络接口控制器 (NIC)。在这个版本中,在collector.netclass.ignored-devices
列表中添加了cali[a-f0-9]*
值,以确保没有为 Calico Virtual NIC 收集指标。(OCPBUGS-7282) -
在这个版本中,Thanos Querier 默认禁用作为安全措施的跨原始资源共享 (CORS) 标头。如果您仍然需要使用 CORS 标头,您可以通过将
ThanosQuerierConfig
资源的enableCORS
参数的值设置为true
来启用它们。(OCPBUGS-11889)
网络
在以前的版本中,当在入口控制器上配置客户端 mutual TLS (mTLS)时,CA 捆绑包中的证书颁发机构(CA)证书需要超过 1 MB 的证书撤销列表(CRL),因为大小限制而无法更新 CRL 配置映射。由于缺少 CRL,具有有效客户端证书的连接可能会被拒绝,并显示以下错误:
unknown ca
。在这个版本中,CRL 不再放在配置映射中,路由器现在直接下载 CRL。因此,每个入口控制器的 CRL 配置映射不再存在。现在,CRL 被直接下载,且与有效客户端证书的连接不再被拒绝。(OCPBUGS-6661)
在以前的版本中,提供比 OpenShift Container Platform 指定的缓冲区大小为 512 字节的 UDP 响应的不合规上游 DNS 服务器会导致 CoreDNS 抛出溢出错误。因此,它不会为 DNS 查询提供响应。
在这个版本中,用户可以在
dnses.operator.openshift.io
自定义资源(CR)上配置protocolStrategy
字段,成为TCP
。将此字段设置为 TCP 时,CoreDNS 将TCP
协议用于上游请求,并解决与不合规上游 DNS 服务器相关的 UDP 溢出问题。(OCPBUGS-6829)在以前的版本中,如果集群管理员使用具有
NoExecute
效果的污点配置了 infra 节点,Ingress Operator 的 canary pod 不会被调度到这些 infra 节点上。一段时间后,DaemonSet 配置将被覆盖,pod 将在 infra 节点上终止。在这个版本中,Ingress Operator 将 Canary DaemonSet 配置为容许
node-role.kubernetes.io/infra
节点污点,该污点指定了NoExecute
效果。因此,无论指定了哪些效果,canary pod 都会调度到 infra 节点上。(OCPBUGS-9274)在以前的版本中,当在入口控制器上配置客户端 mutual TLS (mTLS)时,如果任何客户端证书颁发机构(CA)证书包含证书撤销列表(CRL)分布点,则不同 CA 发布的 CRL 和 CRL 过期,发布 CA 和发布 CA 间的不匹配会导致下载不正确的 CRL。因此,CRL 捆绑包被更新为包含错误下载 CRL 的额外副本,并且缺少所需的 CRL。由于缺少 CRL,具有有效客户端证书的连接可能会被拒绝,并显示以下错误:
unknown ca
。在这个版本中,下载的 CRL 由发布它们的 CA 跟踪。当 CRL 过期时,分发 CA 的 CRL 发布点用于下载更新的 CRL。因此,有效的客户端证书不再被拒绝。(OCPBUGS-9464)
-
在以前的版本中,当为 Red Hat OpenShift Service Mesh 启用 Gateway API 时,Ingress Operator 无法配置并会返回以下错误:
the spec.techPreview.controlPlaneMode field is not supported in version 2.4+; use spec.mode
。在这个版本中,ServiceMeshControlPlane
自定义资源 (CR) 中的 Service Meshspec.techPreview.controlPlaneMode
API 字段已被spec.mode
替代。因此,Ingress Operator 可以创建ServiceMeshControlPlane
自定义资源,网关 API 可以正常工作。(OCPBUGS-10714) 在以前的版本中,当为网关 API 网关配置 DNS 时,Ingress Operator 会尝试为网关监听程序创建 DNS 记录,即使监听程序指定了带有集群基域之外的域的主机名。因此,Ingress Operator 会尝试并失败发布 DNS 记录,并会返回以下错误:
failed to publish DNS record to zone
。在这个版本中,当为网关监听程序创建
DNSRecord
自定义资源 (CR) 时,如果其域位于集群基域外,Ingress Operator 会将DNSRecord 的
DNS 管理策略设置为Unmanaged
。因此,Ingress Operator 不再尝试发布记录,日志中将不再有failed to publish DNS record to zone
错误。(OCPBUGS-10875)-
在以前的版本中,
oc explain route.spec.tls.insecureEdgeTerminationPolicy
命令记录了可能对某些用户造成混淆的选项。在这个版本中,API 文档已被更新,它会显示insecureEdgeTerminationPolicy
字段的正确可能选项。这仅是对 API 文档的修复。(OCPBUGS-11393) 在以前的版本中,Cluster Network Operator 控制器监控了比必要数量的更广泛的资源,这会导致其协调器被频繁触发。因此,这会增加 Cluster Network Operator 和
kube-apiserver
的负载。在这个版本中,Cluster Network Operator
allowlist
控制器会监控其cni-sysctl-allowlist
配置映射的更改。因此,只有在对cni-sysctl-allowlist
配置映射或default-cni-sysctl-allowlist
配置映射进行修改时,才会触发allowlist
控制器协调器,而不是在任何配置映射改变时都触发。因此,Cluter Network Operator API 请求和配置映射请求会减少。(OCPBUGS-11565)-
与 HaProxy 相关的
segfault
失败已解决。用户不应再收到这些错误。(OCPBUGS-11595) -
在以前的版本中,如果用户在没有端口号的情况下创建
EndpointSlice
端口,CoreDNS 意外终止。在这个版本中,验证被添加到 CoreDNS 中,以防止它意外终止。(OCPBUGS-19805) -
在以前的版本中,当流量只有一个后端服务时,OpenShift 路由器会将流量定向到一个权重为
0
的路由。在这个版本中,路由器不再将流量发送到带有权重0
的单一后端的路由。(OCPBUGS-16623) -
在以前的版本中,Ingress Operator 在没有指定路由上的
spec.subdomain
或spec.host
参数的情况下创建其 Canary 路由。通常,这会导致 API 服务器使用集群的 Ingress 域(与默认 Ingress Controller 的域匹配),为spec.host
参数设置默认值。但是,如果您使用appsDomain
选项配置集群来设置替代 Ingress 域,则路由主机将具有替代域。另外,如果您删除了 Canary 路由,则会使用与默认 Ingress Controller 域不匹配的域重新创建路由,这会导致 canary 检查失败。现在,Ingress Controller 在创建 canary 路由时指定spec.subdomain
参数。如果您使用appsDomain
选项配置集群,然后删除 canary 路由,则 Canary 检查不会失败。(OCPBUGS-16089) -
在以前的版本中,在更新 Operator 状态时,Ingress Operator 不会检查公共托管区中的 DNS 记录状态。这会导致 Ingress Operator 在公共托管区中 DNS 记录出错时将 DNS 状态报告为
Ready
。现在,Ingress Operator 会检查公共和私有托管区的状态,从而解决了这个问题。(OCPBUGS-15978) -
在以前的版本中,CoreDNS
bufsize
设置配置为 512 字节。现在,OpenShift Container Platform CoreDNS 的最大缓冲区大小为 1232 字节。此修改通过减少 DNS 截断和重试的发生来提高 DNS 性能。(OCPBUGS-15605) -
在以前的版本中,Ingress Operator 会在路由器部署中指定
spec.template.spec.hostNetwork: true
参数,而不指定spec.template.spec.containers[].ports[].hostPort
。这会导致 API 服务器为每个端口的hostPort
字段设置默认值,Ingress Operator 会检测到为外部更新并尝试恢复它。现在,Ingress Operator 不再错误地执行这些更新。(OCPBUGS-14995) -
在以前的版本中,DNS Operator 会在启动时在日志中记录
cluster-dns-operator startup has an error message: [controller-runtime] log.SetLogger(…) was never called, logs will not be displayed:
错误信息,这会造成用户误解。现在,启动时不会显示错误消息。(OCPBUGS-14395) -
在以前的版本中,Ingress Operator 保留了为
NodePort
和ClusterIP
类型服务的spec.internalTrafficPolicy
、spec.ipFamilies
和spec.ipFamilyPolicy
字段。然后,API 会为这些字段设置默认值,Ingress Operator 会尝试恢复这些值。在这个版本中,Ingress Operator 指定一个初始值,并修复了由 API 默认值导致的错误。(OCPBUGS-13190) - 在以前的版本中,所有 DNS 的传输控制协议 (TCP) 连接都是负载均衡的。在这个版本中,TCP 连接被启用为首选本地 DNS 端点。(OCPBUGS-9985)
- 在以前的版本中,对于 Intel E810 NIC,当 pod 被删除时,在 SR-IOV 上重置 MAC 地址会导致失败。这会导致在使用 SR-IOV VF 创建 pod 时会有一个较长的延迟。在这个版本中,容器网络接口 (CNI) 不会解决这个问题。(OCPBUGS-5892)
-
在以前的版本中,在 OpenShift Container Platform 中发现了一个问题,一些 pod 处于
terminating
状态。这会影响允许列表控制器的协调循环,这会导致创建多个 pod 的不需要重试。在这个版本中,允许列表控制器只检查属于当前守护进程集的 pod。因此,当一个或多个 pod 未就绪时,重试不再发生。(OCPBUGS-16019)
OpenShift CLI (oc)
在以前的版本中,oc-mirror 插件没有正确解释带有 tag 和 digest 的容器镜像引用,并导致以下错误:
"localhost:6000/cp/cpd/postgresql:13.7@sha256" is not a valid image reference: invalid reference format
这个行为已被修复,现在接受并正确镜像引用。(OCPBUGS-11840)
-
在以前的版本中,您收到
401 - Unauthorized
错误,其中路径组件数超过预期的最大路径组件。这个问题已通过确保在路径组件数量超过最大路径组件时 oc-mirror 会失败。现在,您可以使用--max-nested-paths
标记(接受整数值)设置最大路径组件。默认情况下,最大路径组件没有限制,设置为0
。生成的ImageContentSourcePolicy
将包含到存储库级别的源和镜像引用。(OCPBUGS-8111, OCPBUGS-11910, OCPBUGS-11922) -
在以前的版本中,oc-mirror 标志
--short
、-v
和--verbose
提供了不正确的版本信息。现在,您可以使用 oc mirrorversion
标志,以了解正确的 oc-mirror 版本。oc-mirror 标志--short
,-v
, 和--verbose
已被弃用,并将不再被支持。(OCPBUGS-7845) -
在以前的版本中,当在
imageSetConfig
中指定了一些镜像摘要时,从 registry 镜像到磁盘会失败,且没有标签。oc-mirror 会将默认标签latest
添加到镜像中。现在,这个问题已通过使用截断的摘要作为标签来解决。(OCPBUGS-2633) -
在以前的版本中,oc-mirror 会错误地将 Operator 目录添加到
ImageContentSourcePolicy
规格中。这是一个意外的行为,因为 Operator 目录通过CatalogSource
资源直接从目标 registry 中使用。这个程序错误已通过确保 oc-mirror 不将 Operator 目录添加为ImageContentSourcePolicy
的条目来解决。(OCPBUGS-10051) -
在以前的版本中,当 registry 域名不是镜像引用的一部分时,Operator 的镜像会失败。在这个版本中,如果没有指定 registry 域名,则会从
docker.io
下载镜像。(OCPBUGS-10348) -
在以前的版本中,当容器镜像引用中包含 tag 和 digest 时,oc-mirror 会错误地解释它会导致
invalid reference format
错误。这个问题已被解决,镜像已被成功镜像(mirror)。(OCPBUGS-11840) -
在以前的版本中,如果名称以数字开头,则无法创建
CatalogSource
资源。在这个版本中,CatalogSource
资源名称使用cs-
前缀生成,并与 RFC 1035 兼容。(OCPBUGS-13332) -
在以前的版本中,当使用
registry.conf
文件时,一些镜像没有包含在映射中。在这个版本中,您可以看到映射中包含的镜像,且没有任何错误。(OCPBUGS-13962) -
在以前的版本中,当在
--oci-registries-config
选项中引用的registries.conf
文件中使用了非安全的镜像(mirror)时,oc-mirror 会尝试与 mirror registry 建立 HTTPS 连接。在这个版本中,您可以通过在命令行中指定--source-skip-tls
或--source-use-http
,将 oc-mirror 配置为不使用 HTTPS 连接。(OCPBUGS-14402) - 在以前的版本中,当您试图使用 oc-mirror 插件镜像 OCI 索引时,对镜像进行镜像(mirror)会失败。在这个版本中,您可以使用 oc-mirror 插件镜像 OCI 索引。(OCPBUGS-15329)
-
在以前的版本中,当在低带宽网络上镜像多个大型目录时,因为过期的身份验证令牌导致
HTTP 401 unauthorized
错误,镜像会被中断。这个问题现已解决,在启动每个目录的镜像过程前刷新身份验证令牌。(OCPBUGS-20137)
Operator Lifecycle Manager (OLM)
- 在此次更新之前,Operator Lifecycle Manager (OLM) 可能会导致安装失败,因为 API 服务器忙碌时初始化错误。在这个版本中,为初始化错误添加了一个一分钟重试间隔来解决这个问题。(OCPBUGS-13128)
- 在此次更新之前,如果自定义目录在断开连接的环境中使用与默认红帽目录相同的名称,则会出现竞争条件。如果禁用了默认红帽目录,则目录会在 OperatorHub 自定义资源 (CR) 协调后在启动时创建并删除。因此,自定义目录会与默认的红帽目录一起删除。在这个版本中,OperatorHub CR 在删除任何目录前被协调,从而导致竞争条件。(OCPBUGS-9357)
- 在此次更新之前,一些 Operator 的频道以随机顺序显示在 OperatorHub 中。在这个版本中,Operator 频道以字典顺序显示。(OCPBUGS-7910)
- 在此次更新之前,如果所有者引用文件中没有将 controller 标记设置为 true,则 registry pod 不会由自动扩展安全地排空。在这个版本中,controller 标记被设置为 true,排空节点不再需要强制关闭。(OCPBUGS-7431)
-
在此次更新之前,
collect-profiles
pod 可能会因为生成证书的方式导致常规的 CPU 用量激增。在这个版本中,证书是每天生成的,证书的加载被优化,CPU 用量较低。(OCPBUGS-1684)
OpenShift API 服务器
-
在以前的版本中,在更新和打补丁请求
projects
时,metadata.namespace
字段会自动填充。因此,受影响的请求会生成错误的验证错误。在这个版本中,projects
资源不再自动填充。(OCPBUGS-8232)
Red Hat Enterprise Linux CoreOS (RHCOS)
-
在以前的版本中,在 OpenShift Container Platform 中,使用逻辑卷管理器存储的、带有逻辑卷管理器(LVM)元数据的 OpenShift Container Platform 中的 pod 在终止时可能会卡住。这是因为相同的 LVM 设备在容器和主机上的同时处于活动状态。当在使用 OpenShift Virtualization 的 pod 中运行虚拟机时,会针对虚拟机使用 LVM。在这个版本中,RHCOS 默认只尝试设置和访问位于
/etc/lvm/devices/system.devices
文件中的设备。这可防止虚拟机客户机内对 LVM 设备进行内容访问。(OCPBUGS-5223) -
在以前的版本中,Google Cloud Platform(GCP)Confidential Computing 实例中的 pod 可能会一直处于
ContainerCreating
状态,这会导致卷挂载失败。在这个版本中,增加了对 Google Cloud Platform 中机密计算实例的 Persistent Disk 存储类型的支持,它可用作 OpenShift Container Platform 中的持久性卷。因此,pod 可以进入Running
状态,并且可以挂载卷。(OCPBUGS-7582)
Storage
- 在以前的版本中,当在 IBM Cloud® 集群上启用集群范围代理时,无法置备卷。(OCPBUGS-18142)
-
Storage Operator 对象的
vsphereStorageDriver
字段已弃用。此字段用于选择在 OpenShift Container Platform 4.13 vSphere 集群上进行 CSI 迁移,但它对 OpenShift Container Platform 4.14 及更新版本没有影响。(OCPBUGS-13914)