1.6. 程序错误修复


API 服务器和客户端
  • 在以前的版本中,组 machineconfiguration.openshift.io 中的 MachineConfigControllerConfig 资源的内容没有从审计日志中排除。在这个版本中,它们不包括在审计日志中,因为它们可能包含 secret。(OCPBUGS-55709)
  • 在以前的版本中,kube-apiserver 服务级别目标(SLO)警报表达式错误地、独立于总请求数地计算了读取和写入的成功比率。这会导致在中断期间,出现误导的 burn 比率的数据。在这个版本中进行了相关的修复,可以正确地根据请求总数计算成功比率。这使数据更加可靠。(OCPBUGS-49764)
  • 在以前的版本中,如果 etcd 访问丢失,删除集群 bootstrap 可能会破坏 kube-apiserver 的就绪情况,这可能会导致停机。在这个版本中,在删除 bootstrap 前会保证每个 kube-apiserver 都有 2 个稳定的 etcd 端点,这可以保持推出时的可用性。(OCPBUGS-48673)
  • 在以前的版本中,Static Pod Operator API 允许未设置 currentRevision 的,以及多个非零 targetRevision 条目的无效节点状态,这会导致节点和安装程序控制器失败。在这个版本中,添加了新的验证规则来强制正确的修订字段,以确保稳定且一致的静态 pod 状态处理。(OCPBUGS-46380)
  • 在以前的版本中,节点控制器会从其列表器中应用过时的 NodeStatus 数据,从而意外覆盖其他控制器的最新更新。在这个版本中,使用受管字段使控制器在不冲突的情况下更新单独的条目,这样可保留准确和并发节点状态更新。(OCPBUGS-46372)
  • 在以前的版本中,用于删除 etcd bootstrap 成员的一个固定的五分钟超时会过早启动。即使有足够的总时间,这也会导致 HA 集群中出现大量失败。在这个版本中,这个小的超时时间会依赖整个 bootstrap 进度启动,这样可确保可靠和仲裁安全的 etcd bootstrap 移除过程。(OCPBUGS-46363)
  • 在以前的版本中,在检测两个 kube-apiserver 端点后,Bootstrap 会取消阻塞(包括 bootstrap 实例),从而导致一个持久性实例出现 0% 的可用性。在这个版本中,在多个永久实例就绪前,teardown 会被延迟。这样可确保在推出部署的过程中保持 kube-apiserver 的可用性。(OCPBUGS-46010)
  • 在以前的版本中,当临时 control plane 停机时,networkConfig.status.ServiceNetwork 不会被填充,当生成的证书没有 SAN 中的 Kubernetes 服务 IP 时,客户端无法通过默认 kubernetes 服务连接到 kube-apiserver。在这个版本中,如果 networkConfig.status.ServiceNetwork 是 nil,会跳过证书生成。客户端连接将稳定且有效。(OCPBUGS-45943)
  • 在以前的版本中,安装程序会在 etcd 成员被删除前删除 bootstrap 机器。这会导致 HA 集群中的仲裁丢失。在这个版本中,来自 SNO 的检查会扩展到所有拓扑,使用 etcd operator 的 condition 作为安全删除符号,这样可在 bootstrap teardown 过程中确保 etcd 集群稳定性。(OCPBUGS-45482)
  • 在以前的版本中,当 CRD 请求处理过程中设置了 image 和 error 字段时,openshift-apiserver 可能会出现 panic,这会导致在某些情况下 API 服务器运行时崩溃和不稳定。在这个版本中,添加了一个保护功能,以便在两个字段未设置时安全地处理问题单来确保不会出现 panic,从而导致更强大的稳定的 CRD 请求处理进程不会崩溃。(OCPBUGS-45861)
裸机硬件置备
  • 在以前的版本中,来自 Ironic Python Agent (IPA)的 NetworkManager 日志没有包括在 ramdisk 日志中,而是只包括 ramdisk 日志中的 dmesg 日志。在这个版本中,metal3 pod 的 metal3-ramdisk-logs 容器中存在 ramdisk 日志现在包含来自主机的整个日志,而不是只使用 dmesg 日志和 IPA。(OCPBUGS-56042)
  • 在以前的版本中,ramdisk 日志不包括明确的文件分隔符,从而导致一个文件中的内容被合并到另一个文件的随机行中。因此,区分特定内容属于哪个文件会比较困难。在这个版本中,文件条目会包括文件分隔符,因此每个文件都可以与合并到 ramdisk 日志文件的其他文件区分。(OCPBUGS-55743)
  • 在以前的版本中,如果您忘记了包含 Redfish 系统 ID,如 redfish://host/redfish/v1/,而不是 redfish://host/redfish/v1/Self,在 Baseboard Management Console (BMC) URL 中存在一个 JSON 解析问题。在这个版本中,BMO 可以在没有 Redfish 系统 ID 作为有效地址的情况下处理 URL,而不会造成 JSON 解析问题。(OCPBUGS-56026)
  • 在以前的版本中,在置备过程中存在一个竞争条件,如果 DHCP 响应速度较慢,可能会导致用于机器和节点对象的不同主机名。这可以防止 worker 节点的 CSR 自动被批准。在这个版本中,竞争条件已被修复,worker 节点的 CSR 现在可以正确地批准。(OCPBUGS-55315)
  • 在以前的版本中,某些 SuperMicro 机器模型(如 ars-111gl-nhr )使用不同于其他 SuperMicro 机器的不同虚拟介质设备字符串,这可能会导致虚拟介质引导尝试在这些服务器上失败。在这个版本中,添加了一个额外的条件检查,以检查受影响的特定模型并相应地调整行为,以便 ars-111gl-nhr 等 SuperMicro 模型现在可以从虚拟介质引导。(OCPBUGS-56639)
  • 在以前的版本中,在删除具有相关 DataImageBaremetalHost 后,DataImage 仍然存在。在这个版本中,如果在 BaremetalHost 被删除后,DataImage 会被删除。(OCPBUGS-51294)
Cloud Compute
  • 当升级使用与 UEFI 不兼容的引导磁盘的 GCP 集群时,您无法启用 Shielded VM 支持。在以前的版本中,这会阻止创建新的计算机器。在这个版本中,已知 UEFI 不兼容的磁盘会禁用 Shielded VM 支持。这主要会影响客户使用 GCP marketplace 镜像从 OpenShift Container Platform 版本 4.12 升级到 4.13。(OCPBUGS-17079)
  • 在以前的版本中,在 Azure 上运行的集群中的虚拟机会失败,因为附加的网络接口控制器(NIC)处于 ProvisioningFailed 状态。在这个版本中,Machine API 控制器会检查 NIC 的置备状态,并定期刷新虚拟机以防止这个问题。(OCPBUGS-31515)
  • 在以前的版本中,在使用证书签名请求(CSR)具有其他子系统的大型集群中,CSR 批准者计算不相关的、未批准的 CSR 总并阻止进一步批准。在这个版本中,CSR 批准者使用 signerName 属性作为过滤器,仅包含它可以被批准的 CSR。因此,当相关 signerName 值有大量未批准的 CSR 时,CSR 批准者才会防止新的批准。(OCPBUGS-36404)
  • 在以前的版本中,Machine API 控制器只读了区号来填充机器区信息。对于只支持可用性集的 Azure 区域中的机器,集合号代表区,因此 Machine API 控制器不会填充其区信息。在这个版本中,Machine API 控制器引用 Azure fault domain 属性。此属性可用于可用性集和可用性区域,因此控制器在每次情况下都正确读取错误域,机器始终报告一个区域。(OCPBUGS-38570)
  • 在以前的版本中,在 GCP 区 API 错误消息中增加粒度会导致机器控制器错误地将带有无效配置的机器标记为有效的,并带有临时云错误。这个行为会阻止无效的机器转换到失败状态。在这个版本中,机器控制器可以正确地处理更精细的错误消息,以便具有无效区或项目 ID 的机器可以正确地变为失败状态。(OCPBUGS-43531)
  • 在以前的版本中,缺少链接操作所需的一些权限。链接操作会创建云控制器管理器和 OpenShift Container Platform 所需的其他 Azure 资源所需的子资源。在这个版本中,Azure 的云控制器管理器具有以下链接操作的权限:

    • Microsoft.Network/applicationGateways/backendAddressPools/join/action
    • Microsoft.Network/applicationSecurityGroups/joinIpConfiguration/action
    • Microsoft.Network/applicationSecurityGroups/joinNetworkSecurityRule/action
    • Microsoft.Network/ddosProtectionPlans/join/action
    • Microsoft.Network/gatewayLoadBalancerAliases/join/action
    • Microsoft.Network/loadBalancers/backendAddressPools/join/action
    • Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action
    • Microsoft.Network/loadBalancers/inboundNatRules/join/action
    • Microsoft.Network/networkInterfaces/join/action
    • Microsoft.Network/networkSecurityGroups/join/action
    • Microsoft.Network/publicIPAddresses/join/action
    • Microsoft.Network/publicIPPrefixes/join/action
    • Microsoft.Network/virtualNetworks/subnets/join/action

    (OCPBUGS-44126)

  • 在以前的版本中,缺少链接操作所需的一些权限。链接操作会创建 Machine API 和 OpenShift Container Platform 需要的其他 Azure 资源所需的子资源。在这个版本中,Azure 的 Machine API 供应商具有以下链接操作的权限:

    • Microsoft.Compute/disks/beginGetAccess/action
    • Microsoft.KeyVault/vaults/deploy/action
    • Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
    • Microsoft.Network/applicationGateways/backendAddressPools/join/action
    • Microsoft.Network/applicationSecurityGroups/joinIpConfiguration/action
    • Microsoft.Network/applicationSecurityGroups/joinNetworkSecurityRule/action
    • Microsoft.Network/ddosProtectionPlans/join/action
    • Microsoft.Network/gatewayLoadBalancerAliases/join/action
    • Microsoft.Network/loadBalancers/backendAddressPools/join/action
    • Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action
    • Microsoft.Network/loadBalancers/inboundNatPools/join/action
    • Microsoft.Network/loadBalancers/inboundNatRules/join/action
    • Microsoft.Network/networkInterfaces/join/action
    • Microsoft.Network/networkSecurityGroups/join/action
    • Microsoft.Network/publicIPAddresses/join/action
    • Microsoft.Network/publicIPPrefixes/join/action
    • Microsoft.Network/virtualNetworks/subnets/join/action

    (OCPBUGS-44130)

  • 在以前的版本中,当计算机器设置 CR 中的 publicIp 参数设置为 false 时,在现有子网中安装 AWS 集群会失败。在这个版本中,确保安装程序在某些环境中为 AWS 集群置备机器时,为 publicIp 设置的配置值不再会导致问题。(OCPBUGS-44373)
  • 在以前的版本中,使用非 UEFI 磁盘的 GCP 集群无法加载。此发行版本添加了一个检查,以确保磁盘在启用需要 UEFI 的功能(如安全引导)前与 UEFI 兼容。此更改添加了 compute.images.getcompute.images.getFromFamily 权限要求。因此,如果您不需要这些功能,您可以使用非 UEFI 磁盘。(OCPBUGS-44671)
  • 在以前的版本中,当 AWS DHCPOptionSet 参数配置为使用包含尾部句点(..)的自定义域名时,OpenShift Container Platform 安装会失败。在这个版本中,提取 EC2 实例的主机名并将其转换为 Kubelet 节点名称的逻辑会被更新为修剪尾部周期,以便生成的 Kubernetes 对象名称有效。此参数中的结尾句点不再会导致安装失败。(OCPBUGS-45306)
  • 在以前的版本中,Azure 可用性集故障域的数量使用固定值 2。此设置适用于大多数 Azure 区域,因为故障域计数通常至少为 2。但是,此设置在 centraluseuapeastusstg 区域中失败。在这个版本中,区域中的可用性设置故障域的数量会被动态设置。(OCPBUGS-45663)
  • 在以前的版本中,当临时 API 服务器断开连接时,Azure 云控制器管理器 panicked。在这个版本中,Azure 云控制器管理器可以正确地从临时断开连接中恢复。(OCPBUGS-45859)
  • 在以前的版本中,由于不正确的或缺失的注解,一些服务会处于 pending 状态。在这个版本中,添加到 Azure service.beta.kubernetes.io/azure-load-balancer-tcp-idle-timeout 和 GCP cloud.google.com/network-tier 注解中的验证可以解决这个问题。(OCPBUGS-48481)
  • 在以前的版本中,用于从 AWS 获取供应商 ID 的方法可能无法根据需要为 kubelet 提供这个值。因此,有时机器可能会处于不同的状态,无法完成初始化。在这个版本中,kubelet 启动时会一致设置供应商 ID。(OCPBUGS-50905)
  • 在以前的版本中,Azure 云控制器管理器中的一个不正确的端点会导致在 Microsoft Azure Government Cloud 上安装失败。这个问题已在本发行版本中解决。(OCPBUGS-50969)
  • 在以前的版本中,Machine API 有时会在 IBM Cloud 上创建过程中检测到不健康的 control plane 节点,并尝试替换该节点。这实际上会销毁集群。在这个版本中,Machine API 只在集群创建过程中尝试替换不健康的计算节点,且不会尝试替换不健康的 control plane 节点。(OCPBUGS-51864)
  • 在以前的版本中,在节点就绪前被驱除的 Azure spot 机器可能会处于 provisioned 状态。在这个版本中,Azure spot 实例使用 delete-eviction 策略。此策略可确保机器在抢占时正确变为 failed 状态。(OCPBUGS-54617)
  • 在以前的版本中,一个程序错误修复更改了可用性集配置,它将故障域计数改为使用最大可用值而不是固定值 2。这会导致在这个程序错误修复前创建的计算集出现扩展的问题,因为控制器会尝试更改不可变的可用性集。在这个版本中,可用性集在创建后不再被修改,允许受影响的计算机器集正确进行扩展。(OCPBUGS-56653)
  • 在以前的版本中,openshift-cnv 命名空间组件不提供 openshift.io/required-scc 注解。工作负载没有请求所需的安全内容约束 (SCC)。在这个版本中,openshift.io/required-scc 注解被添加到 openshift-cnv 命名空间组件中,以便工作负载可以请求所需的 SCC。(OCPBUGS-49657)
Cloud Credential Operator
  • 在以前的版本中,aws-sdk-go-v2 软件开发工具包(SDK)无法在 Amazon Web Services (AWS)安全令牌服务(STS)集群上验证 AssumeRoleWithWebIdentity API 操作。在这个版本中,pod-identity-webhook 包含一个默认区域,以便这个问题不再保留。(OCPBUGS-41727)
Cluster Autoscaler
  • 在以前的版本中,当 Machine Set 缩减并达到其最小大小时,Cluster Autoscaler 可能会保留最后一个剩余的节点,使其带有一个无法调度污点,使其无法作为一个节点被使用。这个问题是由 Cluster Autoscaler 中的计数错误造成的。在这个版本中,计数错误已被修复,当 Machine Set 缩减并达到其最小值时,Cluster Autoscaler 可以正常工作。(OCPBUGS-54231)
  • 在以前的版本中,一些集群自动扩展指标不会被初始化,因此不可用。在这个版本中,这些指标会被初始化并可用。(OCPBUGS-25852)
  • 在以前的版本中,会因为机器集中失败的机器,导致 Cluster Autoscaler 无法扩展。这是因为 Cluster Autoscaler 以各种非运行阶段计算机器的方式发生。在这个版本中,不正确的问题已被修复,Cluster Autoscaler 可以准确计算机器。(OCPBUGS-11115)
Cluster Resource Override Admission Operator
  • 在以前的版本中,Cluster Resource Admission Override Operator 在从 OpenShift Container Platform 4.16 升级到 OpenShift Container Platform 4.17 时无法删除旧的 secret。这会导致 Cluster Resource Override Admission Operator Webhook 停止工作,并阻止在启用了 Cluster Resource Override Admission Operator 的命名空间中创建 pod。在这个版本中,旧的 secret 会被删除,Cluster Resource Override Admission Operator 的错误处理有所改进,并解决了在命名空间中创建 pod 的问题。(OCPBUGS-54886)
  • 在以前的版本中,如果您删除了 clusterresourceoverride-operator 服务或卸载 Cluster Resource Admission Override Operator,则 v1.admission.autoscaling.openshift.io API 服务将无法访问,并阻止集群功能,比如在集群中安装其他 Operator。在这个版本中,如果卸载 Cluster Resource Admission Override Operator,则 v1.admission.autoscaling.openshift.io API 服务也会被删除,以便集群功能不会受到影响。(OCPBUGS-48115)
  • 在以前的版本中,如果您在 ClusterResourceOverride CR 中指定了 forceSelinuxRelabel 参数,然后将参数改为另一个值,则更改的值不会反映在 clusterresourceoverride-configuration Config Map 中。将 selinux 重新标记临时解决方案功能应用到集群时需要此配置映射。在这个版本中,这个问题已被解决,当 forceSelinuxRelabel 参数改变时,clusterresource override-configuration Config Map 会收到更新。(OCPBUGS-44649)
Cluster Version Operator
  • 在以前的版本中,ClusterVersion 条件的状态可以从 ImplicitlyEnabled 改为 ImplicitlyEnabledCapabilities。在这个版本中,ClusterVersion 条件类型已被修复,并从 ImplicitlyEnabled 改为 ImplicitlyEnabledCapabilities。(OCPBUGS-56771)
  • 在以前的版本中,自定义安全上下文约束(SCC)会影响任何由 Cluster Version Operator 生成的 pod,以接收集群版本升级。在这个版本中,OpenShift Container Platform 会为每个 pod 设置一个默认 SCC,以便任何创建的自定义 SCC 都不会影响 pod。(OCPBUGS-31462)
  • 在以前的版本中,当 Cluster Operator 升级需要很长时间时,Cluster Version Operator 不会报告任何内容,因为它无法确定升级是否仍在进行中或进程卡住。在这个版本中,为 Cluster Version Operator 报告的 Cluster Version 状态添加了一个新的未知状态,以提醒集群管理员检查集群并避免等待阻止的 Cluster Operator 升级。(OCPBUGS-23514)
ImageStreams
  • 在以前的版本中,如果这些 registry 配置了 NeverContactSource,则镜像导入会阻止 registry,即使设置了镜像 registry。在这个版本中,当 registry 配置镜像时,镜像导入不再被阻断。这样可确保镜像导入成功,即使原始源在 ImageDigestMirrorSetImageTagMirrorSet 资源中被设置为 NeverContactSource。(OCPBUGS-44432)
安装程序
  • 在以前的版本中,如果您试图安装具有最小特权的 Amazon Web Services (AWS) 集群,且您没有在 install-config.yaml 文件中指定实例类型,集群安装会失败。出现这个问题的原因是,安装程序无法找到集群在支持的可用区中可以使用的支持实例类型。例如,ap-southeast-4eu-south-2 可用区中无法使用 m6i.xlarge 默认实例类型。在这个版本中,openshift-install 程序需要 ec2:DescribeInstanceTypeOfferings AWS 权限来防止在 m6i.xlarge 或者另一个支持的实例类型在支持的可用区中不可用的情况。(OCPBUGS-46596)
  • 在以前的版本中,安装程序不会阻止用户在裸机上安装单节点集群,这会导致安装失败。在这个版本中,安装程序会防止在不支持的平台上安装单节点集群。(OCPBUGS-56811)
  • 在以前的版本中,当您诊断与为 VMware vSphere 运行 openshift-install destroy cluster 命令相关的问题时,日志并没有提供足够的信息。因此,无法知道集群没有从虚拟机(VM)中删除的原因。在这个版本中,当销毁集群时会提供更加详细的日志信息。(OCPBUGS-56372)
  • 在以前的版本中,当在 Amazon Web Services (AWS)上安装到现有虚拟私有云(VPC)时,在为 control plane 节点的机器集自定义资源和对应的 AWS EC2 实例之间的 AWS Availability Zone 间的子网信息可能会出现潜在的不匹配。因此,当 control plane 节点分散到三个可用区中,且重新创建了差异可能会导致出现不平衡的 control plane,因为两个节点在同一可用区内发生。在这个版本中,它确保了机器集自定义资源中的子网可用区信息以及 EC2 实例中的子网可用区信息匹配,并解决了这个问题。(OCPBUGS-55492)
  • 在以前的版本中,当使用 OVNKubernetes 网络插件安装集群时,如果插件被指定为 OVNkubernetes(小写的 "k"),则安装可能会失败。在这个版本中,无论大小写,安装程序都可以正确地解释插件名称。(OCPBUGS-54606)
  • 配置代理后,安装程序会将 machineNetwork CIDR 添加到 noProxy 字段。在以前的版本中,如果 machineNetwork CIDR 也由 noProxy 字段中的用户配置,这会导致一个重复的条目,这不被 ignition 允许,并可能会阻止主机正常引导。在这个版本中,如果已设置,安装程序不会将 machineNetwork CIDR 添加到 noProxy 字段。(OCPBUGS-53183)
  • 在以前的版本中,即使用户管理的负载均衡器正在使用中,API 和入口 VIP 也会被自动分配。这个行为并不是预期的。现在,API 和入口 VIP 不再被自动分配。如果没有在 install-config.yaml 文件中明确设置这些值,安装会失败并显示错误,提示用户提供它们。(OCPBUGS-53140)
  • 在以前的版本中,当使用基于代理的安装程序时,在硬件发现过程中不会检测到光纤通道(FC)多路径卷的 WWN。因此,当指定 wwn root 设备提示时,所有多路径 FC 卷都会被排除。在这个版本中,多路径 FC 卷会收集 WWN,因此当存在多个多路径卷时,用户可以使用 wwn root 设备提示来选择它们。(OCPBUGS-52994)
  • 在以前的版本中,当在 Azure 上安装集群时,安装程序不包括对 NVMe 或 SCSI 的支持,这会阻止使用需要它的虚拟机实例系列。在这个版本中,安装程序可以使用需要 NVMe 或 SCSI 支持的虚拟机实例系列。(OCPBUGS-52658)
  • 在以前的版本中,当使用用户提供的加密密钥在 GCP 上安装集群时,安装程序可能无法找到密钥环。在这个版本中,安装程序会找到用户提供的加密密钥环,因此安装不会失败。(OCPBUGS-52203)
  • 在以前的版本中,当在 GCP 上安装集群时,如果网络不稳定无法在安装过程中获取 GCP 标签,则安装可能会失败。在这个版本中,安装程序已被改进,可以在安装过程中容忍网络不稳定的情况。(OCPBUGS-50919)
  • 在以前的版本中,安装程序没有检查在 VMware vSphere 集群中关闭的 ESXi 主机,这会导致安装失败,因为无法上传 OVA。在这个版本中,安装程序会检查每个 ESXi 主机的电源状态,并跳过任何已关闭的电源,从而解决这个问题并允许成功导入 OVA。(OCPBUGS-50649)
  • 在以前的版本中,当使用基于代理的安装程序时,在断开连接的环境中构建 Agent ISO 镜像时,会输出大量 unable to read image 的错误信息。在这个版本中,这些错误的信息已被删除,不再出现。(OCPBUGS-50637)
  • 在以前的版本中,当在 Azure 上安装集群时,如果没有 IP 地址可用性的正确权限,安装程序会崩溃并带有分段错误。在这个版本中,安装程序会正确识别缺少的权限,并安全地失败。(OCPBUGS-50534)
  • 在以前的版本中,当 ClusterNetwork 无类别域间路由(CIDR)掩码值大于 hostPrefix 值和 networking.ovnKubernetesConfig.ipv4.internalJoinSubnet 部分时,安装程序会在 install-config.yaml 文件中提供验证检查并返回 Golang 运行时错误。在这个版本中,安装程序仍然失败验证检查,并现在会输出指示无效的 hostPrefix 值的描述性错误消息。(OCPBUGS-49784)
  • 在以前的版本中,当在 IBM Cloud® 上安装集群时,安装程序无法在 ca-mon 区域上安装,即使它可用。在这个版本中,安装程序与最新可用的 IBM Cloud® 区域是最新的。(OCPBUGS-49623)
  • 在以前的版本中,当在具有用户提供的公共 IPv4 池的现有 VPC 中只有最小权限的 AWS 上安装集群后,因为缺少权限,集群无法被销毁。在这个版本中,安装程序会传播 ec2:ReleaseAddress 权限,以便可以销毁集群。(OCPBUGS-49594)
  • 在以前的版本中,VMware vSphere 的安装程序没有为故障域验证 install-config.yaml 中提供的网络数量。如果指定了超过最多的 10 个网络,则安装会使用不受支持的配置继续进行,而不是提供错误信息。在这个版本中,安装程序会验证配置的网络数量,这可以防止使用超过最大限制的配置的问题。(OCPBUGS-49351)
  • 在以前的版本中,在带有现有子网(BYO VPC)在 Local 或 Wavelength 区的 AWS 上安装集群会导致边缘子网资源缺少 kubernetes.io/cluster/<InfraID>:shared 标签。在这个版本中,确保 install-config.yaml 文件中使用的所有子网都有所需的标签。(OCPBUGS-48827)
  • 在以前的版本中,一个问题会阻止在安装过程中在 Nutanix 集群的故障域中配置多个子网。这个问题已在本发行版本中解决。(OCPBUGS-49885)
  • 在以前的版本中,当在 AWS 上安装集群时,安装程序调查中没有 ap-southeast-5 区域,即使 OpenShift Container Platform 支持这个区域。在这个版本中,可以使用 ap-southeast-5 区域。(OCPBUGS-47681)
  • 在以前的版本中,当销毁在 GCP 上安装的集群时,一些资源可能会保留下来,因为安装程序不会等待所有 destroy 操作都成功完成。在这个版本中,destroy API 会等待以确保正确删除所有资源。(OCPBUGS-47489)
  • 在以前的版本中,当在 us-east-1 区域的 AWS 上安装集群时,如果 install-config.yaml 文件中没有指定区,则安装会失败,因为 use1-az3 区不支持 OpenShift Container Platform 支持的任何实例类型。在这个版本中,当安装配置文件中没有指定区时,安装程序会防止使用 use1-az3 区。(OCPBUGS-47477)
  • 在以前的版本中,当在 GCP 上安装集群时,如果您对项目启用了 constraints/compute.vmCanIpForward 约束,安装会失败。在这个版本中,安装程序会在启用了这个约束时禁用它,可以使安装成功完成。(OCPBUGS-46571)
  • 在以前的版本中,当在 GCP 上安装集群时,安装程序将无法检测用户是否提供了不存在的加密密钥环,从而导致安装失败。在这个版本中,安装程序会正确地验证用户提供的加密密钥环是否存在,从而防止失败。(OCPBUGS-46488)
  • 在以前的版本中,当销毁在 Microsoft Azure 上安装的集群时,bootstrap 节点的入站 NAT 规则和安全组不会被删除。在这个版本中,正确的资源组可确保在集群销毁时所有资源都被删除。(OCPBUGS-45429)
  • 在以前的版本中,当在 ap-southeast-5 区域中的 AWS 上安装集群时,因为存在不正确的负载均衡器主机名,安装可能会失败。在这个版本中,安装程序已被改进来组成正确的主机名,以便安装可以成功。(OCPBUGS-45289)
  • 在以前的版本中,当在 GCP 上安装集群时,安装程序可能无法找到它所创建的服务帐户,因为在 Google 服务器上激活服务帐户的延迟。在这个版本中,安装程序会在尝试使用创建的服务帐户前等待适当的时间。(OCPBUGS-45280)
  • 在以前的版本中,当在 AWS 上安装集群时,如果您指定了边缘机器池,但没有指定实例类型,则安装可能会失败。在这个版本中,安装程序需要为边缘机器池提供实例类型。(OCPBUGS-45218)
  • 在以前的版本中,当销毁在 GCP 上安装的集群时,带有 kubernetes-io-cluster-<cluster-id>: owned 的 PVC 磁盘不会被删除。在这个版本中,安装程序会在销毁集群时正确找到并删除这些资源。(OCPBUGS-45162)
  • 在以前的版本中,在断开连接的安装中,当为源配置了多个镜像的 imageContentSources 参数时,创建代理 ISO 镜像的命令可能会失败,具体取决于镜像配置序列。在这个版本中,当创建代理 ISO 并解决了这个问题时,会正确处理多个镜像。(OCPBUGS-44938)
  • 在以前的版本中,当在 AWS 上安装集群时,如果设置了 publicIPv4Pool 参数,但 ec2:AllocateAddress 权限不存在,安装会失败。在这个版本中,安装程序需要这个权限存在。(OCPBUGS-44925)
  • 在以前的版本中,在共享虚拟私有云(VPC)安装过程中,安装程序会将记录添加到安装程序创建的私有 DNS 区中,而不是将记录添加到集群的专用 DNS 区域。因此,安装会失败。在这个版本中,安装程序会搜索现有的私有 DNS 区域,如果找到,则该区与 install-config.yaml 文件提供的网络配对,并解决了这个问题。(OCPBUGS-44641)
  • 在以前的版本中,您可以在 Amazon Web Services (AWS) 标签名称中添加空格,但安装程序不支持它们。这种情况会导致安装程序输出 ERROR failed to fetch Metadata 信息。在这个版本中,AWS 标签的正则表达式会验证具有空格的任何标签名称,以便安装程序接受这些标签,且不再因为空格而输出错误。(OCPBUGS-44199)
  • 在以前的版本中,当销毁在 GCP 上安装的集群时,转发规则、健康检查和防火墙规则不会被删除,从而导致错误。在这个版本中,当集群销毁时,所有资源都会被删除。(OCPBUGS-43779)
  • 在以前的版本中,当在 Microsoft Azure 上安装集群时,指定 Standard_M8-4ms 实例类型会导致错误,因为实例类型以十进制格式而不是整数格式指定其内存。在这个版本中,安装程序可以正确地解析内存值。(OCPBUGS-42241)
  • 在以前的版本中,当在 VMware vSphere 上安装集群时,如果 API 和 Ingress 服务器虚拟 IP 位于机器网络之外,安装可能会失败。在这个版本中,安装程序会包括机器网络中的 API 和 Ingress 服务器虚拟 IP。如果您指定了 API 和 Ingress 服务器虚拟 IP,请确保它们位于机器网络中。(OCPBUGS-36553)
  • 在以前的版本中,当在 IBM Power Virtual Server 上安装集群时,如果因为镜像导入错误选择了 Madrid 区域,安装会失败。在这个版本中,安装程序已被修改为使用正确的存储桶名称,使安装可以成功完成。(OCPBUGS-50899)
  • 在以前的版本中,当销毁在 IBM Power Virtual Server 上安装的集群时,一些资源(包括网络子网)不会被删除。在这个版本中,当集群销毁时,所有网络资源都会被删除。(OCPBUGS-50657)
  • 在以前的版本中,当使用 Assisted Installer 安装集群时,因为拉取镜像时,安装可能会失败。在这个版本中,增加了超时时间,以便安装程序可以完成拉取镜像。(OCPBUGS-50655)
  • 在以前的版本中,在一些较慢的 PrismCentral 环境中,当使用 prism-api 调用来加载 RHCOS 镜像时,安装程序会失败。在以前,超时值为 5 分钟。在这个版本中,prism-api 调用超时值是一个在 install-config.yaml 文件中的可配置参数(platform.nutanix.prismAPICallTimeout),默认值为 10 分钟。(OCPBUGS-48570)
  • 在以前的版本中,一个问题会阻止在安装过程中在 Nutanix 集群的故障域中配置多个子网。这个问题已在本发行版本中解决。(OCPBUGS-48044)
  • 在以前的版本中,当使用安装程序置备的基础架构在 IBM Power Virtual Server 上安装集群时,安装程序会选择一个随机机器网络,而不是使用用户提供的网络。在这个版本中,安装程序使用用户提供的机器网络。(OCPBUGS-45286)
  • 在以前的版本中,当 openshift-install agent create pxe-files 命令创建 pxe-files 命令时创建的临时目录在命令完成后不会被删除。在这个版本中,在命令完成后,临时目录会被正确删除。(OCPBUGS-39583)
Machine Config Operator
  • 在以前的版本中,ContainerRuntimeConfig 会为 runc 运行时设置 --root 路径不正确。这会导致容器使用不正确的 root 路径运行,并导致容器操作出现问题。在这个版本中,容器运行时的 --root 路径是正确的,并与指定的运行时匹配,从而实现一致的操作。(OCPBUGS-47629)
  • 在以前的版本中,如果集群包含 Red Hat Enterprise Linux (RHEL) worker 节点,这在 OpenShift Container Platform 4.19 及更新的版本中不再被支持,但用户不会得到警告。在这个版本中,Machine Config Operator 会检测 RHEL 节点,并通知用户与 OpenShift Container Platform 4.19 不兼容。(OCPBUGS-54611)
  • 在以前的版本中,当 Machine Config Operator (MCO) 在暂存更新后快速重新引导节点时,更新会失败。在这个版本中,MCO 会在重启系统前等待 staging 操作完成,从而允许更新完成。(OCPBUGS-51150)
  • 在以前的版本中,在删除 MachineOSConfig 对象后,关联的 MachineOSBuild 对象不会被删除。这是因为 MachineOSBuild 对象的所有权没有被设置。在这个版本中,所有对象都是为构建创建的,当删除 MachineOSConfig 对象时,所有关联的对象都会被删除。(OCPBUGS-44602)
管理控制台
  • 在以前的版本中,开发者视角中的项目详情没有包括“面包屑”导航。在这个版本中,添加了面包屑导航栏。(OCPBUGS-52298)
  • 在以前的版本中,在打开 web 终端时打开 Project 下拉列表时显示会有问题。在这个版本中,问题已被修复,您可以在 web 终端打开时使用 Project 下拉列表。(OCPBUGS-45325)
  • 在以前的版本中,在 OpenShift Container Platform Web 控制台中无法重新运行使用解析器的 PipelineRuns CR。如果您试图重新运行 CR,则会生成 "Invalid PipelineRun configuration, unable to start Pipeline"。在这个版本中,您可以重新运行使用解析器的 PipelineRuns CR,而不会遇到这个问题。(OCPBUGS-44265)
  • 在以前的版本中,当您使用 Form View 在 OpenShift Container Platform Web 控制台中编辑 DeploymentDeploymentConfig API 对象时,在其中一个对象的 YAML 配置中都存在重复的 ImagePullSecrets 参数。在这个版本中,确保没有为其中一个对象自动添加重复的 ImagePullSecrets 参数。(OCPBUGS-41974)
  • 在以前的版本中,会根据 PipelineRun 名称获取特定 PipelinerunTaskRun。如果两个 PipelineRuns 具有相同的名称,则两个 PipelineRunsTaskRun 都会被获取并显示。在这个版本中,特定 PipelineRunTaskRun 将基于 PipelineRun UID 而不是 PipelineRun 名称获取。(OCPBUGS-36658)
  • 在以前的版本中,如果没有运行的 pod,Test Serverless function 按钮没有响应。在这个版本中,当没有运行的 pod 时,这个按钮会被禁用。(OCPBUGS-32406)
  • 在以前的版本中,失败的 TaskRun 的结果不会显示在 UI 中。在这个版本中,TaskRun 的结果始终可用,即使已失败。(OCPBUGS-23924)
  • 在以前的版本中,在只执行 control plane 升级时,控制台会警告用户必须在 60 天内更新计算节点。在这个版本中,控制台不再显示这个无效的警报。(OCPBUGS-56077)
  • 在以前的版本中,Notification Drawer 中的 Critical Alerts 部分无法折叠。在这个版本中,这个部分可以折叠。(OCPBUGS-55702)
  • 在以前的版本中,当查看已安装的 Operator 列表时,如果当前选择的项目与 Operator Lifecycle Manager (OLM)中禁用复制的 CSV 时,当前选择的项目与 Operator Lifecycle Manager (OLM)中禁用了 Operator 的默认命名空间,则 Operator 会在列表中显示两次。在这个版本中,Operator 只显示一次。(OCPBUGS-54601)
  • 在以前的版本中,到 Installed Operators 页中的 OperatorHub 的链接会触发硬重新加载。在这个版本中,这个链接不再触发硬重新加载。(OCPBUGS-54536)
  • 在以前的版本中,在 Create VolumeSnapshot 页中从项目选择器中选择 All Projects 会导致页未找到错误。在这个版本中,VolumeSnapshot 列表页会被正确显示。(OCPBUGS-53227)
  • 在以前的版本中,计算 pod 容器计数不正确的逻辑会导致它不准确。在这个版本中,添加了 count 逻辑的 ReadyStarted 状态,因此会显示正确的 pod 容器计数,它由 oc CLI 组成。(OCPBUGS-53118)
  • 在以前的版本中,节点日志部分上面的 Select 菜单在打开时将无法被关闭,除非再次点击 Select 菜单的切换,或者点 Select's 菜单项中的一个。在这个版本中,在点菜单外的部分,或键盘上相应的键后,Select 菜单可以关闭。(OCPBUGS-52316)
  • 在以前的版本中,在计算相对时间时,共享时间戳组件会引用未定义属性。因此,在控制台中显示的次数都没有正确显示相对字符串,如 Just nowLess than a minute ago。在这个版本中,这个问题已被解决,在控制台中正确呈现相对时间字符串。(OCPBUGS-51202)
  • 在以前的版本中,Observe 菜单只根据用于监控的当前用户和控制台配置显示。这会导致可观察插件添加的其他项目被隐藏。在这个版本中,Observe 菜单还显示来自不同可观察性插件的项目。(OCPBUGS-50693)
  • 在以前的版本中,当第一次登录到控制台时,自动视角检测会使控制台处理错误用户点的特定 URL,导致控制台加载不同的页。在这个版本中,会正确处理当前路径。(OCPBUGS-50650)
  • 在以前的版本中,当在 web 控制台的、来自插件的水平导航中创建新标签页时,会出现问题。在这个版本中,您可以使用插件在 web 控制台水平导航中创建标签页。(OCPBUGS-49996)
  • 在以前的版本中,如果 ClusterVersion 没有收到 Completed 更新,Cluster Settings 页不会在集群更新过程中正确显示。在这个版本中,即使 ClusterVersion 没有收到 Completed 更新,Cluster Setting 页也会正确显示。(OCPBUGS-49839)
  • 在以前的版本中,CLI 下载页面中的链接不会被操作系统排序。在这个版本中,链接按字母顺序按照其操作系统进行排序。(OCPBUGS-48413)
  • 在以前的版本中,OperatorHub 模式的主 Action 按钮中可能会出现多个外部链接图标。在这个版本中,只会显示单个外部链接图标。(OCPBUGS-46555)
  • 在以前的版本中,当显示了另一个 User Preference 选项卡时,点 Red Hat OpenShift Lightspeed modal 中的 Don't again show 链接不会正确地进入到常规的 User Preference 选项卡。在这个版本中,点 Don't again show 可以正确进入 User Preference 选项卡。(OCPBUGS-46511)
  • 在以前的版本中,控制台插件可以在 Console plugin enablement modal 中多次启用,从而导致插件的多个条目出现 Console Operator 配置。在这个版本中,如果一个插件已启用则无法再启用。(OCPBUGS-44595)
  • 在以前的版本中,OpenShift Container Platform Web 控制台登录页总是允许您点 Login 按钮。您在不输入用户名或密码时,或已点了 Login 按钮的情况下仍然可以再点。在这个版本中,Login 按钮被禁用,因此在没有输入用户名或密码的情况下无法点 Login。(OCPBUGS-43610)
  • 在以前的版本中,在 Operator 安装 状态页中只选择根据名称的 PackageManifest。在某些情况下,这会导致使用不正确的 PackageManifest 来显示徽标和供应商,因为可能存在名称冲突。在这个版本中,PackageManifests 可以根据名称和标签选择器选择,以确保为当前安装选择正确的项。因此,Operator 安装状态页始终会显示正确的徽标和供应商。(OCPBUGS-21755)
监控
  • 在以前的版本中,如果 scrape 失败,Prometheus 会错误地认为来自下一个的 scrape 抽样是重复的,并丢弃它们。这个问题只会影响到失败的 scrape 后的下一个 scrape,其后的 scrape 可以被正确处理。在这个版本中,失败后的下一个 scrape 可以被正确处理,确保不会错误地丢弃有效的示例。(OCPBUGS-53025)
网络
  • 在以前的版本中,当 pod 使用 CNI 插件进行 DHCP 地址分配时,pod 的网络接口可能会意外删除。因此,当 pod 的 DHCP 租期过期时,DHCP 代理在尝试重新创建新租期时会进入循环,从而导致节点变得无响应。在这个版本中,如果网络接口不存在,DHCP 租期维护会终止。因此,接口删除可以被安全地处理,确保节点的稳定性。(OCPBUGS-45272)
  • 在以前的版本中,Kubernetes NMState Operator Operator 不会创建 nmstate-console-plugin pod,因为 pluginPort 模板存在问题。在这个版本中,修复模板可确保 Operator 现在可以成功创建 nmstate-console-plugin pod。(OCPBUGS-54295)
  • 在以前的版本中,Whereabouts 协调器中的 pod 控制器没有将命名空间传递给领导选举功能,因此 pod 控制器不会删除孤立的分配。这会导致重复日志错误消息。在这个版本中,命名空间被传递,并正确删除孤立的分配。(OCPBUGS-53397)
  • 在以前的版本中,SriovOperatorConfig Operator 删除了在 SriovOperatorConfig 资源中具有默认值的任何参数。这种情况会导致资源输出中缺少某些信息。在这个版本中,Operator 使用 PATCH 方法用于 API 服务器来保留带有默认值的参数,以便在资源输出中缺少任何信息。(OCPBUGS-53346)
  • 在以前的版本中,SriovNetworkNodePolicy 对象协调器与每个节点资源更新执行。这会导致 SR-IOV Operator pod 消耗过量资源,并过度使用日志条目。此发行版本更改了行为,以便协调器仅在节点标签更改时运行,从而减少资源消耗和日志条目生成。(OCPBUGS-52955)
  • 在以前的版本中,当升级到最新版本的 OpenShift Container Platform 时,带有 clusterNetwork 参数的集群会列出同一 IP 地址系列的多个网络进入 crashloopbackoff 状态。在这个版本中,确保使用此配置的集群在集群升级过程中不再进入 crashloopbackoff 状态。(OCPBUGS-49994)
  • 在以前的版本中,resolv-prepender 服务比预期触发。这种情况会导致服务失败,并导致主机 DNS 配置错误设置。在这个版本中,resolv-prepender 服务的配置被更新,以便在服务触发早于预期时,不再会导致主机 DNS 设置配置不正确。(OCPBUGS-49436)
  • 在以前的版本中,只有将 platform 参数设置为 baremetal 的部署才会启用 nmstate-configuration 服务。但是,您也可以使用 Assisted Installer 来配置裸机部署,方法是将 platform 参数设置为 None,但 NMState br-ex 网络桥接创建功能无法使用这个安装方法。在这个版本中,nmstate-configuration 服务被移到集群安装路径中的基础目录,以便任何 platform 参数设置为 None 的部署都不会影响 NMState br-ex 网络桥接创建功能。(OCPBUGS-48566)
  • 在以前的版本中,对于将网关模式设置为 local 的第 2 层或第 3 层拓扑网络,OVN-Kubernetes 重启时会遇到问题。造成这个问题导致 Egress IP 被选为网络的主 IP 地址。在这个版本中,一个修复可确保不再发生此行为。(OCPBUGS-46585)
  • 在以前的版本中,基于 DNS 的出口防火墙错误地阻止创建在大写字符中包含 DNS 名称的防火墙规则。在这个版本中,对出口防火墙的修复意味着,创建一个包含大写的 DNS 名称的防火墙规则。(OCPBUGS-46564)
  • 在以前的版本中,当 pod 在分配 IPv6 协议的节点中运行时,pod 无法与双栈集群中的 OVN-Kubernetes 服务通信。这会导致带有 IP 系列的流量,egressIP 不适用于丢弃。在这个版本中,只有用于删除出口 IP 系列的 IP 系列的源网络地址转换(SNAT),从而消除了丢弃流量的风险。(OCPBUGS-46543)
  • 在以前的版本中,当您在清单对象的自定义 br-ex 网桥配置中使用静态 IP 地址时,会添加一个竞争条件,并导致节点重启操作进一步影响集群的部署。在这个版本中,nodeip-configuration 服务在 br-ex 网桥启动后启动,从而防止竞争条件和节点重新引导。(OCPBUGS-46072)
  • 在以前的版本中,HAProxy 路由器错误地假设只有 SHA1 leaf 证书被 HAProxy 拒绝,从而导致路由器因为不拒绝 SHA1 中间证书而失败。在这个版本中,路由器会检查并拒绝所有非自签名 SHA1 证书,从而防止崩溃并提高了集群稳定性。(OCPBUGS-45290)
  • 在以前的版本中,当节点重启 openvswitch 守护进程时,nmstate-handler 容器无法访问 OpenVSwitch (OVS)数据库,这会导致所有与 OVS 相关的 NNCP 配置失败。在这个版本中,这个问题已被解决。nmstate-handler 容器可以访问 OVS 数据库,即使在重启节点上的 OVS 进程后。nmstate-handler 不再需要手动重启。(OCPBUGS-44596)
  • 在以前的版本中,当指定 protocol 参数时,不会强制 MultiNetworkPolicy API,但在集群配置中不会强制使用 port 参数。这种情况导致所有网络流量都连接到集群。在这个版本中,multiNetworkPolicy API 策略只允许从 protocol 参数指定的端口的连接,以便只有特定流量到达集群。(OCPBUGS-44354)
  • 在以前的版本中,HAProxy 在重新载入其配置时打开闲置连接,直到下次客户端使用闲置连接或 hard-stop-after 周期过来发送请求。此发行版本添加了一个新的 IdleConnectionTerminationPolicy API 字段,用来控制重新载入过程中闲置连接的 HAProxy 行为。新的默认设置是 Immediate,这意味着 HAProxy 在重新载入其配置时立即终止任何闲置连接。可以使用 IdleConnectionTerminationPolicyDeferred 设置来指定之前的行为。(OCPBUGS-43745)
  • 在以前的版本中,如果在发送大于网络 MTU 的 UDP 数据包时,如果应用程序没有使用路径 MTU 发现(PMTUD)机制,则 OVN 软件包的问题会导致在对数据包进行碎片时丢弃数据包。在这个版本中,OVN 软件包已被修复,大型 UDP 数据包会被正确碎片并通过网络发送。(OCPBUGS-43649)
  • 在以前的版本中,在 OVN-Kubernetes Localnet 网络中带有二级接口的 pod,它插入到 br-ex 接口桥接被同一节点上的其他 pod 访问,但使用默认网络进行通信。不同节点上 pod 之间的通信不会受到影响。在这个版本中,可以在同一节点上运行的 Localnet pod 和默认网络 pod 之间的通信,但 Localnet 网络中使用的 IP 地址必须与主机网络位于同一个子网中。(OCPBUGS-43004)
  • 在以前的版本中,当对正在运行的集群进行特定的网络更改时,ovs-configuration 服务永久创建一个 NetworkManager 连接配置集,配置集被错误地保存到存储中。此配置文件将在重新引导操作中保留,并导致 ovs-configuration 服务失败。在这个版本中,ovs-configuration 清理过程被更新以删除任何不必要的文件,从而防止此类文件在重启操作后造成问题。(OCPBUGS-41489)
  • 在以前的版本中,parseIPList 功能无法处理包含有效和无效的 IP 地址或 CIDR 范围的 IP 地址列表。当函数遇到无效的条目并跳过处理有效条目时,这会导致函数返回空字符串。在这个版本中,haproxy.router.openshift.io/ip_allowlist 路由注解会跳过任何无效的 IP 地址或 CIDR 范围,以便 parseIPList 功能可以处理所有列出的条目。(OCPBUGS-39403)
  • 在以前的版本中,HAProxy 路由器缺少 router.openshift.io/haproxy.health.check.interval 注解的越界验证。如果您设置了超过 HAProxy 路由器可以处理的最大值,则 router-default pod 无法访问 Ready 状态。在这个版本中,路由器会验证注解的值,并排除没有绑定的值。路由器现在按预期工作。(OCPBUGS-38078)
  • 在以前的版本中,在某些情况下,节点的网关 IP 地址已更改,并导致管理到集群子网的静态路由的 OVN 集群路由器,来添加新网关 IP 地址的新静态路由,而无需删除原始网关 IP 地址。因此,一个过时的路由仍指向交换机子网,这会导致在出口流量传输过程中出现间歇性下降。在这个版本中,应用到 OVN 集群路由器的补丁可确保如果网关 IP 地址有变化,OVN 集群路由器会使用新的网关 IP 地址更新现有的静态路由。stale 路由不再指向 OVN 集群路由器,以便出口流量流不会丢弃。(OCPBUGS-32754)
  • 在以前的版本中,当从 ingress 转换失败到路由转换失败时,没有记录事件。在这个版本中,会记录失败转换的错误。(OCPBUGS-29354)
  • 在以前的版本中,PowerVS 安装程序使用硬编码列表支持的机器类型。但是,在添加新类型时,这个列表并不总是更新的。在这个版本中,数据中心会查询以获取当前支持的类型列表。(OCPBUGS-49940)
  • 在以前的版本中,当定义了 RootDiskHint 且安装失败并带有错误 Requested installation disk is not part of the host’s valid disks,则很难确定可用作提示的有效磁盘名称。在这个版本中,为可接受的磁盘列表添加了日志记录,以便用户可以快速确定根磁盘提示应该是什么。(OCPBUGS-43578)
  • 在以前的版本中,当出现 API 服务器中断或临时连接问题时,oc adm node-image monitor 命令会返回 EOF 错误。这会导致命令终止。在这个版本中,命令会检测 API 服务器中断和临时连接问题,并在不终止命令的情况下重新连接到 API 服务器。(OCPBUGS-38975)
  • 在以前的版本中,当创建虚拟机(VM)且 IP 池中没有 IP 地址时,虚拟机不会启动。virt-launcher-<vm_name> pod 中生成了一个错误消息,但信息与问题源不同。在这个版本中,如果 IP 池中没有 IP 地址,virt-launcher-<vm-name> pod 包含一个类似以下示例的清晰错误消息:

    Warning ErrorAllocatingPod 4s (x7 over 79s)  ovnk-controlplane  failed to update pod localnet-ipam/virt-launcher-vmb-localnet-ipam-hlnmf: failed to assign pod addresses for localnet-ipam/ipam-localnet-nad/localnet-ipam/virt-launcher-vmb-localnet-ipam-hlnmf: failed to allocate new IPs for tenantblue-network: subnet address pool exhausted
    Copy to Clipboard Toggle word wrap

    (OCPBUGS-54245)

节点
  • 在以前的版本中,如果您的集群使用 Zscaler 并扫描所有传输,则拉取镜像时可能会出现超时问题。此问题是由于镜像拉取的一个硬编码超时值造成的。CRI-O 的拉取进度超时现在增加到 30 秒。因此,之前受影响的集群应该不会遇到超时问题。(OCPBUGS-54662)
  • 在以前的版本中,使用 container_logreader_t SELinux 域的容器要查看容器日志(位于主机的 /var/log 位置)无法访问日志。这是因为 var/log/containers 位置中的日志是符号链接。在这个版本中,容器可以如预期监视日志。(OCPBUGS-48555)
  • 在以前的版本中,当文件处于循环操作时,json.NewDecoder 文件中会出现一个文件结束错误。这个错误会导致应用程序对在多个命名空间中存在的命名空间策略不一致。此问题可能会导致集群的安全漏洞。在这个版本中,在进入每个循环操作时,会将一个新的策略缓冲添加到 json.NewDecoder 文件中,并为多个命名空间添加一个测试问题单。因此,策略缓冲为 JSON 策略文件提供可靠的解码过程,以便命名空间策略在没有任何问题的情况下接收更新。(OCPBUGS-48195)
  • 在以前的版本中,镜像引用摘要计算中存在一个问题,这会导致基于 schemaVersion 1 镜像创建失败的容器。此问题会阻止新部署的创建。在这个版本中,镜像摘要计算已被修复,可以安装新的 Operator。(OCPBUGS-42844)
  • 在以前的版本中,对于 policy.json 文件中的有效负载镜像带有 Sigstore 验证的技术预览集群,基础镜像中的 Podman 版本不支持 Sigstore 配置。缺少支持会导致新节点不可用。在这个版本中,这个问题已被解决,节点可用。(OCPBUGS-38809)
  • 在以前的版本中,在 pod 被删除后,最后一个保证 pod 的 CPU 被接受到节点会保留分配。此行为会导致调度域不一致。在这个版本中,分配给保证 pod 的 CPU 会如预期返回到可用 CPU 资源池,确保后续 pod 的 CPU 调度正确。(OCPBUGS-17792)
Node Tuning Operator (NTO)
  • 在以前的版本中,当将性能配置集应用到节点时,OpenShift Container Platform 根据节点上的 CPU 单元的厂商标识符选择适当的配置集。因此,如果 CPU 使用无法识别的不同供应商标识符,OpenShift Container Platform 无法包括正确的配置集。例如,标识符可能包含 APM,而不是 ARM。在这个版本中,对于使用 ARM 架构的 CPU,Operator 现在只根据架构选择配置集,而不是厂商标识符。因此,会应用正确的配置集。(OCPBUGS-52352)
Observability(可观察性)
  • 在以前的版本中,Silence details 页有一个不正确的链接 URL,它缺少 namespace 参数,这会导致用户无法在 dev 控制台中为特定版本静默特定的警报。这会导致警报管理不佳。在这个版本中,SilencedAlertsList 中的未定义链接已使用活跃命名空间修复。现在,"No Alert found' 错误已被解决,OpenShift Container Platform Monitoring 中的 Alert details 页会被正确导航。(OCPBUGS-48142)
  • 在以前的版本中,控制台更新已弃用的 PatternFly 4,呈现监控插件表的不正确的布局。在这个版本中,表和风格升级到 PatternFly 5,并可以被正确呈现。(OCPBUGS-47535)
  • 在以前的版本中,命名空间传递给警报图上的完整集群查询,这会导致使用租期 API 路径。API 缺少检索数据的权限,因此警报图表中没有显示任何数据。在这个版本中,命名空间不再传递给警报图的完整集群查询。现在,使用非租期 API 路径,因为此 API 具有检索数据的正确权限。警报图中没有数据。(OCPBUGS-45896)
  • 在以前的版本中,Red Hat Advanced Cluster Management (RHACM) Alerting UI 重构更新会导致 isEmpty 检查在 Observe > Metrics 菜单中缺失。缺少的检查会颠倒 Show all SeriesHide all Series 状态的行为。此发行版本重新增加了 isEmpty 检查,因此当系列被隐藏时会显示 Show all Series,但系列显示时会显示 Hide all Series。(OCPBUGS-45816)
  • 在以前的版本中,在 Observe Alerting Silences 选项卡中,DateTime 组件更改了事件及其值的排序。由于这个问题,您无法在 web 控制台中编辑 silent 警报的 until 参数。在这个版本中,对 DateTime 组件进行了修复,现在可以针对一个静默警告编辑 until 参数。(OCPBUGS-45801)
  • 在以前的版本中,绑定基于栏图中的第一个条。如果条大小大于第一个条,则条会超过条图的边界。在这个版本中,一个条的边界是基于最大条设置的,因此条的边界不再会超过边界。(OCPBUGS-45174)
oc-mirror
  • 在以前的版本中,oc-mirror 插件 v2 在本地缓存填充阶段不会显示任何进度输出。对于涉及大量镜像的镜像的镜像配置,这可能会导致进程变得无响应或卡住。在这个版本中,添加了一个进度条来提供缓存填充状态,允许用户查看缓存填充的当前进度。(OCPBUGS-56563)
  • 在以前的版本中,当使用 oc-mirror 插件 v2 镜像 Operator 时,一些社区 Operator 带有长的 skipsreplaces 项列表,并替换其频道图形中的条目会导致镜像过程耗尽内存并失败。在这个版本中,oc-mirror 插件 v2 通过避免重复评估多个 skipsreplaces 小节中的条目来提高过滤逻辑,从而导致在 Operator 镜像过程中更好地处理内存。(OCPBUGS-52471)
  • 在以前的版本中,当使用相同的工作目录重新运行 oc-mirror 插件 v2 时,之前运行中的现有 tar 归档文件不会被删除。这会导致混合使用过时的新归档,这可能会在推送到目标 registry 时造成镜像失败。在这个版本中,oc-mirror 插件 v2 会在每次运行时自动删除旧的 tar 归档文件,确保工作目录仅包含当前执行中的存档(OCPBUGS-56433)
  • 在以前的版本中,如果源 registry 在镜像复制过程中响应以下 HTTP 状态代码,则 oc-mirror 插件 v2 会出错:502, 503, 504。在这个版本中,oc-mirror 插件 v2 会在遇到这些临时服务器错误时自动重试复制操作。(OCPBUGS-56185)
  • 在以前的版本中,当镜像一个 Helm Chart 时,在引用中包含带有标签和摘要的容器镜像时,oc-mirror 插件 v2 会失败并显示以下错误:

    Docker references with both a tag and digest are currently not supported.
    Copy to Clipboard Toggle word wrap

    在这个版本中,oc-mirror 插件 v2 支持 Helm chart 使用标签和摘要引用镜像。工具使用摘要作为源来 mirror 镜像,并在目的地应用标签。(OCPBUGS-54891)

  • 在以前的版本中,在镜像清理过程中,如果删除镜像时出现错误,oc-mirror 插件 v2 将停止删除过程。在这个版本中,oc-mirror 插件 v2 将继续尝试删除剩余的镜像,即使遇到错误也是如此。进程完成后,它会显示任何失败的删除列表。(OCPBUGS-54653)
  • 在以前的版本中,如果在 ImageSetConfiguration 文件中指定无效的 Operator,可以在 mirror-to-disk (m2d)阶段镜像空目录。这会导致在后续的 disk-to-mirror (d2m)阶段失败。在这个版本中,oc-mirror 插件 v2 通过验证配置中的 Operator 引用来防止镜像空目录,确保更可靠的镜像过程。(OCPBUGS-52588)
  • 在以前的版本中,当将 oc-mirror 插件 v2 与 -dry-run 标志搭配使用时,工作目录中的 cluster-resources 文件夹会被清除。因此,之前生成的文件(如 idms-oc-mirror.yamlitms-oc-mirror.yaml )已被删除。在这个版本中,cluster-resources 文件夹不再在空运行操作过程中清除,保留任何之前生成的配置文件。(OCPBUGS-50963)
  • 在以前的版本中,即使出现镜像错误,oc-mirror 插件 v2 也会返回一个退出状态 0 (成功)。因此,oc-mirror 插件 v2 在自动工作流中运行失败可能会无法探测到。在这个版本中,oc-mirror 插件 v2 已被更新,以在镜像失败时返回非 0 退出状态。尽管修复了这个问题,用户也不应该只依赖自动化工作流中的退出状态。建议用户手动检查 oc-mirror 插件 v2 生成的 mirroring_errors_XXX_XXX.txt 文件来识别潜在的问题。(OCPBUGS-49880)
  • 在以前的版本中,当使用内部 oc-mirror 保留关键字(如在目标中的 release-images--from 路径标记),操作可能会失败或出现意外行为。在这个版本中,oc-mirror 插件 v2 可以正确地处理目标或源路径中使用的保留关键字。(OCPBUGS-42862)
OpenShift CLI (oc)
  • 在以前的版本中,如果您尝试使用 oc adm node-image 命令将节点添加到断开连接的环境中,则命令无法访问私有 registry 镜像,从而导致节点添加失败。只有集群最初安装了从(mirror.openshift.com)下载的安装程序二进制文件时,才会发生这个错误。在这个版本中,实现了一个修复,可以成功在断开连接的环境中创建镜像拉取(pull)和节点。(OCPBUGS-53106)
  • 对于使用基于 Agent 的安装程序安装版本 4.15.0 到 4.15.26 的集群,从 CoreOS 中构建的 root 证书会添加到 user-ca-bundle 中,即使用户没有显式指定它们。在以前的版本中,当使用 oc adm node-image create 命令将节点添加到这些集群时,从集群的 user-ca-bundle 获取的 additionalTrustBundle 太大,从而导致无法添加节点。在这个版本中,在生成 additionalTrustBundle 时过滤内置证书,以便只包括用户配置的证书,并可以成功添加节点。(OCPBUGS-43990)
  • 在以前的版本中,oc adm inspect --all-namespaces 命令构建了一个程序错误,意味着 must-gather 无法正确收集有关租期、csistoragecapacities 和 assisted-installer 命名空间的信息。在这个版本中,这个问题已被解决,must-gather 将正确收集信息。(OCPBUGS-44857)
  • 在以前的版本中,oc adm node-image create --pxe generated 命令不会只创建 Preboot Execution Environment (PXE) 工件。相反,命令使用 node-joiner pod 中的其他工件创建了 PXE 工件,并将它们全部存储在错误的子目录中。另外,PXE 工件错误地带有 agent 前缀,而不是 node。在这个版本中,生成的 PXE 工件存储在正确的目录中,并接收正确的前缀。(OCPBUGS-45311)
Operator Lifecycle Manager (OLM)
  • 在以前的版本中,如果 Operator 没有所需的 olm.managed=true 标签,Operator 可能会失败,并进入 CrashLoopBackOff 状态。当发生这种情况时,日志不会报告状态为 error。因此,很难诊断失败。在这个版本中,这种类型的失败报告为错误。(OCPBUGS-56034)
  • 在以前的版本中,Machine Config Operator (MCO)不会搜索 /etc/docker/certs.d 目录来挂载镜像所需的证书。因此,Operator Controller 和目录启动失败,因为它们无法访问在此目录中托管的证书。在这个版本中,这个问题已被解决。(OCPBUGS-54175)
  • 在此发行版本中,集群扩展更新有时会失败,并显示 CRDUpgradeCheck 资源:unknown change, refusing to determine that change is safe这个错误的原因是 OLM v1 计算版本模式之间的区别。在这个版本中解决了这个问题。(OCPBUGS-53019)
  • 在以前的版本中,Operator Controller 有时无法正确挂载 CA 证书。因此,Operator Controller 无法连接到 catalogd,因为 TLS 证书验证错误。在这个版本中解决了这个问题。(OCPBUGS-49860)
  • 在以前的版本中,在挂载 Operator Controller 和目录 pod 前,OLM v1 不会等待证书进入就绪状态。这些更新解决了这个问题。OCPBUGS-48830 和 (OCPBUGS-49418)
  • 在以前的版本中,OLM v1 不会应用 Operator 捆绑包中集群扩展作者提供的所有元数据。因此,OLM v1 没有应用在 metadata/properties.yaml 文件中指定的属性,如更新约束。在这个版本中解决了这个问题。(OCPBUGS-44808)
Operator Controller Manager
  • 在以前的版本中,无论默认代理设置是什么,HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxy, NO_PROXY, 和 no_proxy 变量都会在构建容器中设置。在这个版本中,只有在默认值中定义且不是 null 时,才会添加变量。(OCPBUGS-55642)
  • 在以前的版本中,在嵌入式凭证过期前,不会重新生成为内部 Image Registry 生成的镜像 pull secret,从而导致镜像 pull secret 无效的时间。在这个版本中,在嵌入式凭证过期前,镜像 pull secret 会被刷新。(OCPBUGS-50507)
  • 在以前的版本中,OLM v1 不会搜索 /etc/docker/ 目录以挂载镜像所需的证书。因此,OLM v1 无法挂载自定义证书。在这个版本中解决了这个问题。(OCPBUGS-48795)
  • 在以前的版本中,OLM v1 会在常规集群维护过程中发生的临时中断期间发送错误消息,如领导选举。在这个版本中解决了这个问题。(OCPBUGS-48765)
  • 在以前的版本中,Operator Lifecycle Manager (OLM) Classic 在尝试协调同一命名空间中的 Operator 期间时会错误地报告 Subscription 资源失败。当发生这种情况时,Operator 无法安装。在这个版本中解决了这个问题。(OCPBUGS-48486)
  • 在以前的版本中,当每个安装的 Operator 协调时,OLM (Classic) 会为每个已安装的 Operator 生成一个目录源快照。这个行为会导致 CPU 使用率高。在这个版本中,OLM (Classic)缓存目录源,并将调用限制为 gRPC 远程过程调用(gRPC)服务器来解决这个问题。(OCPBUGS-48468)
Performance Addon Operator
  • 在以前的版本中,如果您在性能配置集中指定了较长的隔离 CPU 字符串,如 0,1,2,…​,512, tuned, Machine Config Operator 和 rpm-ostree 组件无法按预期处理字符串。因此,在应用性能配置集后,缺少预期的内核参数。系统会以静默方式失败,且没有报告的错误。在这个版本中,性能配置集中的隔离 CPU 的字符串转换为顺序范围,如 0-512。因此,在大多数场景中,内核参数会如预期应用。(OCPBUGS-45264)

    注意

    这个问题可能仍然发生在性能配置集中隔离 CPU 的某些输入,比如一个较长的奇数数字 1,3,5,…​,511

  • 在以前的版本中,Performance Profile Creator (PPC)无法为其逻辑处理器有不同内核 ID 编号(每个插槽)的计算节点构建性能配置集,且节点存在于同一节点池中。例如,对于具有逻辑处理器 218 的两个计算节点,PPC 会失败,其中一个节点分组为核心 ID 2,其他节点组为核心 ID 9

    在这个版本中,PPC 不再无法创建性能配置集,因为 PPC 现在可以为具有其逻辑处理器的不同内核 ID 号的集群构建性能配置集。PPC 现在输出一条警告信息,表示谨慎使用生成的性能配置集,因为不同的内核 ID 号可能会影响系统优化和隔离管理任务。(OCPBUGS-44372)

Samples Operator
  • 在以前的版本中,Samples Operator 更新了 Progressing 条件中的 lastTransitionTime spec,即使条件没有改变。这使得 Operator 的 stable 比它不太稳定。在这个版本中,lastTransitionTime spec 仅在 Progressing 条件更改时更新。(OCPBUGS-54591)
  • 在以前的版本中,在 Progressing 条件中未排序的镜像流名称会导致不必要的更新。这会导致过量用户更新,并降低了系统性能。在这个版本中,activeImageStreams 功能排序会属于镜像导入。此操作提高了 Cluster Samples Operator 的效率,减少了不必要的更新,并提高了整体性能。(OCPBUGS-54590)
  • 在以前的版本中,Samples Operator 为所有集群 Operator 建立监视,这会导致在任何 Operator 发生变化时运行 Samples Operator 的同步循环。在这个版本中,Samples Operator 只监视需要监控的 Operator。(OCPBUGS-54589)
存储
  • 在以前的版本中,使用 oc adm top pvc 命令不会显示带有受限网络配置的集群的持久性卷声明(PVC)的用量统计,如在断开连接的环境中具有代理或集群的集群。在这个版本中,可以为这些环境中的集群获取用量统计。(OCPBUGS-54168)
  • 在以前的版本中,如果 vCenter 地址不正确,VMware vSphere CSI 驱动程序 Operator 进入 panic 模式。在这个版本中,这个问题已被解决。(OCPBUGS-43273)
  • 在以前的版本中,带有 C3-standard-2、C3-standard-4、N4-standard-2 和 N4-standard-4 节点的 Google Cloud Platform (GCP) Persistent Disk 集群可能会错误地超过最大可附加磁盘号,这应该为 16,这可以防止您成功创建或将卷附加到 pod。在这个版本中,不会超过最大值,因此不会影响成功创建或将卷附加到 pod。(OCPBUGS-39258)
  • 在以前的版本中,当删除持久性卷(PV)时,Local Storage Operator (LSO)不会可靠地重新创建符号链接。在这个版本中,在创建 PV 时,在查找新符号链接前会选择之前指定的符号链接。(OCPBUGS-31059)
  • 在以前的版本中,当 Cloud Credential Operator (CCO)没有为 Container Storage Interface (CSI)驱动程序 Operator 提供凭证时,CSI 驱动程序 Operator 会一直保留在 Progressing=true 中,并显示 operator is waiting for deployment/unavailable。在这个版本中,当进度状态持续为 15 分钟或更长时间时,Operator 会变为 Degraded=True。(OCPBUGS-24588)
  • 在以前的版本中,名称为 53 个字符的计算节点,在使用 hostpath Container Storage Interface (CSI)驱动程序时,当 external-provisioner 上使用 --enable-node-deployment 标志时,卷置备会失败。在这个版本中,这个问题已被解决,且计算节点长度没有限制。(OCPBUGS-49805)
  • 在以前的版本中,当使用托管 control plane 创建托管集群时,在 Azure Red Hat OpenShift 上,Azure Disk Container Storage Interface (CSI)驱动程序将无法成功置备卷。在这个版本中,这个问题已被解决,Azure Disk CSI 驱动程序可以成功置备卷。(OCPBUGS-46575)
  • 在以前的版本中,当这些设备分区时,附加到多路径设备的互联网小型计算机系统接口(iSCSI)和光纤通道设备无法正确解析。在这个版本中,一个修复可确保分区多路径设备现在可以正确地解决。(OCPBUGS-46038)
  • 在以前的版本中,当使用指定标签创建托管集群时,AWS EBS 驱动程序、Driver Operator、快照控制器和快照 Webhook pod 不会将这些指定的标签传播到它们。在这个版本中,指定的标签会被传播。(OCPBUGS-45073)
  • 在以前的版本中,Manila Container Storage Interface (CSI)驱动程序在不需要的主机上运行服务。这是因为 Manila CSI 驱动程序为控制器和节点(worker)服务使用一个二进制文件。在这个版本中,CSI 驱动程序控制器 pod 只运行控制器服务,CSI 驱动程序节点 pod 只运行节点服务。(OCPBUGS-54447)
  • 在以前的版本中,Container Storage Interface (CSI) Operator 在日志中会发出警告,这些项目会在以后会变得严重。在这个版本中,不再发出警告。(OCPBUGS-44374)
  • 在以前的版本中,如果 vCenter 地址不正确,VMWare vSphere CSI 驱动程序 Operator 会 panic。在这个版本中,这个问题已被解决。(OCPBUGS-43273)
Red Hat Enterprise Linux CoreOS (RHCOS)
  • 在以前的版本中,GRUB 引导装载程序不会在 RHCOS 节点上自动更新。因此,当在 RHEL 8 上创建节点并随后更新至 RHEL 时,GRUB 无法加载内核,因为它使用旧的 GRUB 版本不支持的格式。在这个版本中,在更新 OpenShift Container Platform 4.18 过程中强制使用 GRUB 引导装载程序更新,因此在 OpenShift Container Platform 4.19 中不会出现这个问题。(OCPBUGS-55144)
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat