1.8. 已知问题


  • 在 OpenShift Container Platform 4.1 中,匿名用户可以访问发现端点。之后的版本会取消对这端点的访问,以减少可能的安全漏洞攻击面。一些发现端点被转发到聚合的 API 服务器。但是,升级的集群中会保留未经身份验证的访问,因此现有用例不会中断。

    如果您是一个从 OpenShift Container Platform 4.1 升级到 4.9 的集群的集群管理员,您可以撤销或继续允许未经身份验证的访问。建议取消未经身份验证的访问,除非有特殊需要。如果您继续允许未经身份验证的访问,请注意相关的风险。

    警告

    如果您的应用程序依赖未经身份验证的访问,在撤销了未经身份验证的访问后可能会收到 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'}]";
    done

    此脚本从以下集群角色绑定中删除未经身份验证的对象:

    • cluster-status-binding
    • discovery
    • system:basic-user
    • system:discovery
    • system:openshift:discovery

    (BZ#1821771)

  • 升级到 OpenShift Container Platform 4.9 时,Cluster Version Operator 会在有故障条件检查时会阻止升级大约五分钟。错误文本 It may not be safe to apply this update 可能会造成误导。当一个或多个 precondition 检查失败时,会出现这个错误。在某些情况下,这些 precondition 检查可能无法在短时间内失败(例如在 etcd 备份过程中)。在这些情况下,Cluster Version Operator 和对应的 Operator 将会根据设计自动解决失败的条件检查,CVO 可以成功启动升级。

    用户应检查其 Cluster Operator 的状态和条件。如果 Cluster Version Operator 显示 It may not be safe to apply this update,则这些状态和条件会提供有关消息严重性的更多信息。如需更多信息,请参阅 BZ#1999777, BZ#2061444, BZ#2006611

  • oc annotate 命令不适用于包含了等号(=)的 LDAP 组名称,因为命令使用等号作为注释名称和值之间的分隔符。作为临时解决方案,使用 oc patchoc edit 添加注解。(BZ#1917280)
  • 集群管理员可以为 503、404 或两个错误页面指定自定义 HTTP 错误代码响应页面。如果没有为自定义错误代码响应页面指定正确的格式,则会出现路由器 pod 中断且无法解析。路由器不会重新加载来反映自定义错误代码页面更新。作为临时解决方案,您可以使用 oc rsh 命令在本地访问路由器 pod。然后,在服务自定义 http 错误代码页面的所有路由器 pod 中运行 reload-haproxy

    $ oc -n openshift-ingress rsh router-default-6647d984d8-q7b58
    sh-4.4$ bash -x /var/lib/haproxy/reload-haproxy

    或者,您可以注释路由来强制重新加载。(BZ#1990020), (BZ#2003961)

  • 一个 Open Virtual Network(OVN)程序错误会导致 Octavia 负载均衡器的持久性连接问题。创建 Octavia 负载均衡器时,OVN 可能不会将它们插入到一些 Neutron 子网中。对于某些 Neutron 子网,这些负载平衡器可能无法访问。这个问题会影响 Neutron 子网,在配置 Kuryr 时,每个 OpenShift 命名空间都会随机创建它们。因此,当出现这个问题时,从受此问题影响的 OpenShift 命名空间无法访问实施 OpenShift Service 对象的负载均衡器。由于这个程序错误,不建议在带有 OVN 和 OVN Octavia 的 Red Hat OpenStack Platform(RHOSP)16.1 上使用 Kuryr SDN 的 OpenShift Container Platform 4.8 部署。以后的 RHOSP 发行版本中会解决这个问题。(BZ#1937392)
  • 当需要集群范围代理才能访问 RHOSP API 时,如果在带有 Kuryr 的 Red Hat OpenStack Platform (RHOSP) 上安装需要使用集群范围代理,则将无法正常工作。(BZ#1985486)
  • 由于一个竞争条件,Red Hat OpenStack Platform (RHOSP) 云供应商可能无法正确启动。因此,LoadBalancer 服务可能永远不会设置 EXTERNAL-IP。作为临时解决方案,您可以使用 BZ#2004542 中所述的步骤重启 kube-controller-manager pod。
  • 安装 OpenShift Container Platform 时,安装程序不会提供 ap-northeast-3 AWS 区域作为选项,即使它是一个受支持的 AWS 区域。作为临时解决方案,您可以从安装提示符中选择不同的 AWS 区域,然后在安装集群前更新所生成的 install-config.yaml 文件中的区域信息。(BZ#1996544)
  • 当在 us-east-1 区域中的 AWS 上安装集群时,无法使用本地 AWS 区域。作为临时解决方案,您必须在安装集群时在 install-config.yaml 文件中指定非本地可用区。(BZ#1997059)
  • 您只能在带有公共端点(如 ARM 端点)的 Azure Stack Hub 上安装 OpenShift Container Platform,这些端点使用由公开信任的证书颁发机构 (CA) 签名的证书进行保护。在以后的 OpenShift Container Platform z-stream 发行版本中会添加对内部 CA 的支持。(BZ#2012173)
  • 集群管理员可以为 503、404 或两个错误页面指定自定义 HTTP 错误代码响应页面。路由器不会重新加载来反映自定义错误代码页面更新。作为临时解决方案,路由器 pod 中的 rsh 在为自定义 http 错误代码页面提供服务的所有路由器 pod 中运行 reload-haproxy

    $ oc -n openshift-ingress rsh router-default-6647d984d8-q7b58
    sh-4.4$ bash -x /var/lib/haproxy/reload-haproxy

    或者,您可以注释路由来强制重新加载。(BZ#1990020)

  • 此发行版本包含一个已知问题。如果您自定义 OpenShift OAuth 路由的主机名和证书,Jenkins 不再信任 OAuth 服务器端点。因此,如果用户依赖 OpenShift OAuth 集成来管理身份和访问权限,用户就无法登录 Jenkins 控制台。目前还没有可用的临时解决方案。(BZ#1991448)
  • 由于某些高品质监控指标被意外丢弃,因此在此发行版本中不提供以下容器性能输入和输出指标: podqosSystem

    这个问题不存在临时解决方案。要跟踪生产工作负载的这些指标,请不要升级到初始 4.9 版本。(BZ#2008120)

  • 由于存在软件定义的网络策略,特殊 Resource Operator (SRO) 可能无法在 Google Cloud Platform 上安装。因此,simple-kmod pod 不会被创建。这个问题已在 OpenShift Container Platform 4.9.4 发行版本中解决。(BZ#1996916)
  • 在 OpenShift Container Platform 4.9 中,具有集群角色的用户如果对部署或部署配置没有编辑权限,则无法使用控制台扩展部署或部署配置。(BZ#1886888)
  • 在 OpenShift Container Platform 4.9 中,当 Developer 控制台中存在最小或没有数据时,大多数监控图表或图形(如 CPU 消耗、内存用量和带宽)都会显示 -1 到 1 的范围。但是,这些值都不能低于零,因此负值不正确。(BZ#1904106)
  • 因为 cgroups 不匹配,ip vrf exec 命令无法正常工作。因此,无法在 OpenShift 容器集内使用此命令。要使用虚拟路由和转发 (VRF),应用程序必须可识别 VRF,并直接绑定到 VRF 接口。(BZ#1995631)
  • 非统一内存访问 (NUMA) 错误可能会导致容器出现不必要的 NUMA 固定,这可能导致延迟或性能下降。拓扑管理器可以使用 single-numa-node 拓扑管理策略可满足的资源将容器固定到多个 NUMA 节点。容器会被固定到有保证服务质量 (QoS) 的 pod。作为临时解决方案,当容器内存资源请求大于 single-numa-node 策略时, 不要启动保证的 QoS pod。(BZ#1999603)
  • 有时,选择要删除的 pod 不会被删除。当集群耗尽资源时会出现这种情况。要重新声明资源,系统会选择一个或多个 pod 进行删除。由于资源较低,导致处理速度较慢,删除操作可能会超过既定的删除宽限期,从而导致失败。如果发生这种情况,请手动删除 pod。然后,集群会重新声明释放的资源。(BZ#1997476)
  • 在等待 Open vSwitch (OVS) 端口绑定时,pod 可能会处于 ContainerCreating 状态并超时。报告的事件是 failed to configure pod interface: timed out waiting for OVS port binding。当为 OVN-Kubernetes 插件创建多个 pod 时,可能会出现此问题。(BZ#2005598)
  • 重启出口节点后,lr-policy-list 包含错误,如重复记录或丢失的内部 IP 地址。预期结果是 lr-policy-list 具有与重启出口节点前相同的记录。作为临时解决方案,您可以重启 ovn-kubemaster pod。(BZ#1995887)
  • 当包含分布式网关端口的逻辑路由器上启用 IP 多播中继时,多播流量不会在分布式网关端口上正确转发。因此,OVN-Kubernetes 中的 IP 多播功能无法正常工作。(BZ#2010374)
  • 在 Web 控制台的 Administrator 视角中,一个页面应该在节点列表可用前显示节点列表,这会导致页面变得无响应。没有临时解决方案,但会在以后的版本中解决这个问题。(BZ#2013088)
  • Operator Lifecycle Manager (OLM) 结合使用时间戳检查和过时的 API 调用,这些调用不适用于 skipRange 升级,以确定是否需要对特定订阅执行升级。对于使用 skipRange 升级的 Operator,升级过程中会有一个延迟,可能需要长达 15 分钟才能完成解决,并可能会在更长时间内被阻止。

    作为临时解决方案,集群管理员可以删除 openshift-operator-lifecycle-manager 命名空间中的 catalog-operator pod。这会导致自动重新创建 pod,从而导致触发 skipRange 升级。(BZ#2002276)

  • 目前,当在启用了 FIPS 模式的 Google Cloud Platform 上启动 Red Hat Enterprise Linux (RHEL) 8 时,当尝试从 Red Hat Update Infrastructure(RHUI)安装软件包时,RHEL 8 无法下载元数据。作为临时解决方案,您可以禁用 RHUI 存储库,并使用红帽订阅管理来获取内容。(BZ#2001464), (BZ#1997516).
  • 在 OpenShift Container Platform 单节点重启后,所有 pod 都会重启,这会导致大量负载比正常的 pod 创建时间更长。这是因为 Container Network Interface (CNI) 无法足够快速地处理 pod add 事件。这时显示以下错误消息:timed out waiting for OVS port binding。OpenShift Container Platform 单一节点实例最终恢复,比预期要慢。(BZ#1986216)
  • 当 MetalLB 使用 OVN-Kubernetes Container Network Interface 网络供应商以第 2 层模式运行时,而不是具有发言人 pod 响应 ARP 或 NDP 请求的单个节点,集群中的每个节点都会响应该请求。ARP 响应的意外数量可能类似于 ARP 欺骗攻击。尽管经验与设计不同,但只要主机或子网上的任何软件没有配置为阻止 ARP,流量就会路由到该服务。此程序错误已在 OpenShift Container Platform 发行版本中解决。(BZ#1987445)
  • 当 Tang 磁盘加密和静态 IP 地址配置应用到 VMWare vSphere 用户置备的基础架构集群中时,节点在最初置备后无法正确引导。(BZ#1975701)
  • Operator 必须列出 Operator Lifecycle Manager (OLM) 的相关镜像才能从本地源运行。目前,如果没有定义 ClusterServiceVersion (CSV)对象的 relatedImages 参数,opm render 不会填充相关的镜像。计划在后续的版本中修复此问题。(BZ#2000379)
  • 在以前的版本中,Open vSwitch (OVS) 在每个 OpenShift Container Platform 集群节点上运行,节点导出器代理从节点上收集 OVS CPU 和内存指标。现在,OVS 作为 systemd 单元在集群节点上运行,并且不会收集指标。计划在后续的版本中修复此问题。OVS 数据包指标仍然收集。(BZ#2002868)
  • 用于隐藏或显示 OpenShift Container Platform Web 控制台中的 Storage Overview 页面的标记被错误配置。因此,部署包含 OpenShift Cluster Storage 的集群后,概览页面将无法看到。计划在后续的版本中修复此问题。(BZ#2013132)
  • 在 OpenShift Container Platform 4.6 及之后的版本中,pull 的镜像引用必须指定以下红帽 registry:

    • registry.redhat.io
    • registry.access.redhat.com
    • quay.io

    否则,如果没有指定这些 registry,则构建 Pod 无法拉取镜像。

    作为临时解决方案,在镜像拉取规格中使用完全限定名称,如 registry.redhat.io/ubi8/ubi:latestregistry.access.redhat.com/rhel7.7:latest

    另外,您还可以通过添加允许镜像短名称的 registry 来更新镜像 registry 设置。(BZ#2011293)

  • 在 OpenShift Container Platform 4.8 之前,默认的负载平衡算法是 leastconn。在 OpenShift Container Platform 4.8.0 中,对于非透传的路由,默认设置为 random。切换到 random 与需要使用长时间运行的 websocket 连接的环境不兼容,因为它显著提高了这些环境中的内存消耗。为缓解这种显著内存消耗,在 OpenShift Container Platform 4.9 中默认负载均衡算法被恢复为 leastconn。一旦有一个不会产生大量内存用量的解决方案可用后,在以后的 OpenShift Container Platform 发行版本中,默认值将更改为 random

    您可以输入以下命令来检查默认设置:

    $ oc get deployment -n openshift-ingress router-default -o yaml | grep -A 2 ROUTER_LOAD_BALANCE_ALGORITHM
            - name: ROUTER_LOAD_BALANCE_ALGORITHM
              value: leastconn

    random 选项仍然可用。但是,受益于此算法选择的路由必须通过输入以下命令在注解中明确设置该选项:

    $ oc annotate -n <NAMESPACE> route/<ROUTE-NAME> "haproxy.router.openshift.io/balance=random"

    (BZ#2015829)

  • 当指定托管在本地 registry 中的镜像时,oc adm release extract --tools 命令会失败。(BZ#1823143)
  • 在 OpenShift Container Platform 单一节点配置中,使用实时内核(kernel-rt)时 pod 创建时间比使用非实时内核时慢两倍。使用 kernel-rt 时,较慢的 pod 创建时间会影响支持的最大 pod 数量,因为节点重启后会影响到恢复时间。

    作为临时解决方案,当使用 kernel-rt 时,您可以通过使用 rcupdate.rcu_normal_after_boot=0 内核参数引导来缩短恢复时间。这需要一个实时内核版本 kernel-rt-4.18.0-305.16.1.rt7.88.el8_4 或更高版本。这个已知问题适用于 OpenShift Container Platform 版本 4.8.15 及更新的版本。(BZ#1975356)

  • 在 OpenShift Container Platform 单节点重启后,所有 pod 都会重启,这会导致大量负载比正常的 pod 创建时间更长。这是因为 Container Network Interface (CNI) 无法足够快速地处理 pod add 事件。这时显示以下错误消息:timed out waiting for OVS port binding。OpenShift Container Platform 单一节点实例最终会恢复,但比预期要慢。这个已知问题适用于 OpenShift Container Platform 版本 4.8.15 及更新的版本。(BZ#1986216)
  • SNO 集群置备过程中出现了一个错误,bootkube 会尝试在集群 bootstrap 过程末尾使用 oc。kube API 收到关闭请求,这会导致集群 bootstrap 过程失败。(BZ#2010665)
  • 因为修改的引导表条目,在同一主机上成功部署 OpenShift Container Platform 版本 4.8 后部署 OpenShift Container Platform 版本 4.9 SNO 集群会失败。(BZ#2011306)
  • 当 OpenShift Container Platform 版本 4.8.5 中部署了基于 DPDK 的工作负载时,inbox iavf 驱动程序会出现不稳定的问题。当在运行 RHEL for Real Time 8 的主机上部署 DPDK 工作负载时,这个问题也显而易见。安装了 Intel XXV710 NIC 的主机中会发生这个问题。(BZ#2000180)
  • PTP Operator 部署的 linuxptp 子系统中出现时钟跳过错误。报告的错误信息为:clock jumped backward or running slower than expected!。在 OpenShift Container Platform 版本 4.8 或 4.9 集群中安装 Intel Columbiaville E810 NIC 的主机中会出现错误。此错误可能与 Intel ice 驱动程序相关,而不是 linuxptp 子系统中的错误。(BZ#2013478)
  • 有时,在 DU 节点安装零接触置备(ZTP)安装过程中,Operator 安装会失败。InstallPlan API 报告了错误。报告的错误消息为: Bundle unpacking failed。Reason: DeadlineExceeded。如果 Operator 安装任务超过 600 秒,则会出现错误。

    作为临时解决方案,请通过对失败 Operator 运行以下 oc 命令来重试 Operator 安装:

    1. 删除目录源:

      $ oc -n openshift-marketplace delete catsrc <failed_operator_name>
    2. 删除安装计划:

      $ oc -n <failed_operator_namespace> delete ip <failed_operator_install_plan>
    3. 删除订阅,并等待相关的自定义资源策略重新创建 Operator CatalogSourceSubscription 资源:

      $ oc -n <failed_operator_namespace> delete sub <failed_operator_subscription>

      预期结果

      Operator InstallPlanClusterServiceVersion 资源会被创建并安装 Operator。

      (BZ#2021456)

  • SR-IOV Operator 和 Machine Config Operator (MCO) 之间存在一个竞争条件,这会在 DU 节点的 ZTP 安装过程中以不同的方式出现,并且以不同的方式列出其自身。竞争条件可能会导致以下错误:

    • 当 ZTP 安装过程完成置备 DU 节点时,有时不会应用性能配置集配置。当 ZTP 安装过程完成置备 DU 节点时,性能配置集配置不会应用到节点,MachineConfigPool 资源会处于 Updating 状态。

      作为临时解决方案,请执行以下步骤。

      1. 获取失败的 DU 节点的名称:

        $ oc get mcp

        输出示例

        NAME              CONFIG                                   UPDATED   UPDATING   DEGRADED
        control-plane-1   rendered-control-plane-1-90fe2b00c718    False     True       False
        compute-1         rendered-compute-1-31197fc6da09          True      False      False

      2. 取消控制出现故障的节点,并等待 machine-config-daemon 应用性能配置集。例如:

        $ oc adm uncordon compute-compute-1-31197fc6da09

        预期结果

        machine-config-daemon 将性能配置集配置应用到节点。

    • 有时,性能配置集配置不会在 DU 节点配置期间应用。作为临时解决方案,请更改在 DU 节点上应用策略的顺序。首先应用 Machine Config Operator (MCO) 和 Performance Addon Operator (PAO) 策略,然后应用 SR-IOV 策略。
    • 在 DU 节点的策略配置期间,重新引导可能需要十分钟时间。这个实例不需要临时解决方案。系统最终会恢复。

      (BZ#2021151)

  • 当虚拟功能(VF)已存在时,无法在物理功能(PF)上创建 macvlan。此问题会影响 Intel E810 NIC。(BZ#2120585)
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.