×

网络可观测性运算符 1.7.0

以下建议适用于网络可观测性运算符 1.7.0

新功能和增强功能

OpenTelemetry 支持

您现在可以将丰富的网络流导出到兼容的 OpenTelemetry 端点,例如 Red Hat 的 OpenTelemetry 版本。有关更多信息,请参见 导出丰富的网络流数据

网络可观测性开发者视角

您现在可以在**开发者**视角中使用网络可观测性。有关更多信息,请参见 OpenShift Container Platform 控制台集成

TCP 标志过滤

您现在可以使用tcpFlags过滤器来限制 eBPF 程序处理的数据包数量。有关更多信息,请参见 流过滤器配置参数eBPF 流规则过滤器使用 FlowMetric API 和 TCP 标志检测 SYN 泛洪

OpenShift 虚拟化的网络可观测性

您可以通过识别来自连接到辅助网络(例如通过 Open Virtual Network (OVN)-Kubernetes)的虚拟机 (VM) 的 eBPF 增强网络流量来观察 OpenShift Virtualization 设置中的网络模式。更多信息,请参见 配置虚拟机 (VM) 辅助网络接口以实现网络可观测性

网络策略部署在 FlowCollector 自定义资源 (CR) 中

在此版本中,您可以配置 FlowCollector CR 来为网络可观测性部署网络策略。以前,如果您需要网络策略,则必须手动创建一个。手动创建网络策略的选项仍然可用。更多信息,请参见 使用 FlowCollector 自定义资源配置入口网络策略

FIPS 合规性

  • 您可以在以 FIPS 模式运行的 OpenShift Container Platform 集群中安装和使用 Network Observability Operator。

    要为您的集群启用 FIPS 模式,必须从配置为在 FIPS 模式下运行的 Red Hat Enterprise Linux (RHEL) 计算机运行安装程序。有关在 RHEL 上配置 FIPS 模式的更多信息,请参见 将 RHEL 切换到 FIPS 模式

    在以 FIPS 模式启动的 Red Hat Enterprise Linux (RHEL) 或 Red Hat Enterprise Linux CoreOS (RHCOS) 上运行时,OpenShift Container Platform 核心组件仅在 x86_64、ppc64le 和 s390x 架构上使用已提交给 NIST 用于 FIPS 140-2/140-3 验证的 RHEL 加密库。

eBPF 代理增强功能

eBPF 代理提供了以下增强功能:

  • 如果 DNS 服务映射到与 53 不同的端口,则可以使用 spec.agent.ebpf.advanced.env.DNS_TRACKING_PORT 指定此 DNS 跟踪端口。

  • 您现在可以为传输协议(TCP、UDP 或 SCTP)过滤规则使用两个端口。

  • 您现在可以通过将协议字段留空来使用通配符协议过滤传输端口。

更多信息,请参见 FlowCollector API 规范

网络可观测性 CLI

网络可观测性 CLI (oc netobserv) 现已正式可用。自 1.6 技术预览版以来,已进行了以下增强:* 现在有类似于流量捕获的数据包捕获的 eBPF 丰富筛选器。* 您现在可以在流量和数据包捕获中使用筛选器 tcp_flags。* 当达到 max-bytes 或 max-time 时,自动拆卸选项可用。更多信息,请参见 网络可观测性 CLI网络可观测性 CLI 1.7.0

错误修复

  • 以前,当使用 RHEL 9.2 实时内核时,某些 Webhook 无法工作。现在,已添加修复程序以检查是否正在使用此 RHEL 9.2 实时内核。如果正在使用该内核,则会显示一条警告,说明哪些功能无法工作,例如使用 s390x 架构时的丢包和往返时间。此修复程序在 OpenShift 4.16 及更高版本中提供。(NETOBSERV-1808)

  • 以前,在“概述”选项卡的“管理面板”对话框中,按“总计”、“条形图”、“圆环图”或“折线图”筛选不会显示结果。现在,可以正确筛选可用面板。(NETOBSERV-1540)

  • 以前,在高压力下,eBPF 代理容易进入一种状态,在这种状态下,它们会生成大量几乎未聚合的小流量。通过此修复程序,即使在高压力下也能保持聚合过程,从而减少创建的流量数量。此修复程序不仅提高了 eBPF 代理中的资源消耗,还提高了 flowlogs-pipeline 和 Loki 中的资源消耗。(NETOBSERV-1564)

  • 以前,当启用 workload_flows_total 度量而不是 namespace_flows_total 度量时,健康仪表盘停止显示“按命名空间”流量图表。通过此修复程序,现在在启用 workload_flows_total 时,健康仪表盘会显示流量图表。(NETOBSERV-1746)

  • 以前,当您使用 FlowMetrics API 生成自定义度量,然后修改其标签(例如添加新标签)时,度量将停止填充,并且 flowlogs-pipeline 日志中会显示错误。通过此修复程序,您可以修改标签,并且 flowlogs-pipeline 日志中不再出现错误。(NETOBSERV-1748)

  • 以前,默认 Loki WriteBatchSize 配置存在不一致:它在 FlowCollector CRD 默认值中设置为 100 KB,在 OLM 示例或默认配置中设置为 10 MB。现在两者都已调整为 10 MB,这通常可以提供更好的性能和更少的资源占用。(NETOBSERV-1766)

  • 以前,如果您未指定协议,则会忽略端口上的 eBPF 流过滤器。通过此修复程序,您可以独立设置端口和/或协议上的 eBPF 流过滤器。(NETOBSERV-1779)

  • 以前,“拓扑视图”中隐藏了来自 Pod 到服务的流量。只有来自服务到 Pod 的返回流量可见。通过此修复程序,该流量会正确显示。(NETOBSERV-1788)

  • 以前,具有网络可观测性访问权限的非集群管理员用户在尝试筛选触发自动完成功能的内容(例如命名空间)时,会在控制台插件中看到错误。通过此修复程序,不会显示错误,并且自动完成功能会返回预期的结果。(NETOBSERV-1798)

  • 添加辅助接口支持后,您必须多次迭代才能将每个网络命名空间与 netlink 注册,以了解接口通知。同时,不成功的处理程序会导致文件描述符泄漏,因为与 TC 相比,使用 TCX 钩子时,需要在接口关闭时显式删除处理程序。此外,当网络命名空间被删除时,没有 Go 关闭通道事件来终止 netlink goroutine 套接字,这会导致 go 线程泄漏。现在,在创建或删除 Pod 时,不再出现文件描述符或 go 线程泄漏。(NETOBSERV-1805)

  • 以前,“流量流”表中 ICMP 类型和值显示为“n/a”,即使流 JSON 中有相关数据也是如此。通过此修复程序,ICMP 列会按预期在流量表中显示相关值。(NETOBSERV-1806)

  • 以前,在控制台插件中,并非总是可以筛选未设置的字段,例如未设置的 DNS 延迟。通过此修复程序,现在可以筛选未设置的字段。(NETOBSERV-1816)

  • 之前,在 OpenShift Web 控制台插件中清除过滤器时,有时过滤器会在您导航到另一个页面并返回带有过滤器的页面后重新出现。此修复程序可确保过滤器在清除后不会意外重新出现。(NETOBSERV-1733

已知问题

  • 当您在启用 FIPS 的集群中使用 must-gather 工具与网络可观察性功能时,不会收集日志。(NETOBSERV-1830

  • 当在FlowCollector中启用spec.networkPolicy(这会在netobserv命名空间中安装网络策略)时,无法使用FlowMetrics API。网络策略阻止了对验证 Webhook 的调用。作为解决方法,请使用以下网络策略

    kind: NetworkPolicy
    apiVersion: networking.k8s.io/v1
    metadata:
      name: allow-from-hostnetwork
      namespace: netobserv
    spec:
      podSelector:
        matchLabels:
          app: netobserv-operator
      ingress:
        - from:
            - namespaceSelector:
                matchLabels:
                  policy-group.network.openshift.io/host-network: ''
      policyTypes:
        - Ingress

网络可观察性 Operator 1.6.2

网络可观察性 Operator 1.6.2 提供以下安全公告:

错误修复

  • 添加辅助接口支持后,需要多次迭代才能在 netlink 中注册每个网络命名空间以了解接口通知。同时,不成功的处理程序导致文件描述符泄漏,因为与 TC 不同,在使用 TCX hook 时,需要在接口关闭时显式删除处理程序。现在,创建和删除 Pod 时不再出现文件描述符泄漏问题。(NETOBSERV-1805

已知问题

与控制台插件存在兼容性问题,这将阻止网络可观察性功能安装在未来版本的 OpenShift Container Platform 集群上。升级到 1.6.2 后,兼容性问题已解决,网络可观察性功能可以按预期安装。(NETOBSERV-1737

网络可观察性 Operator 1.6.1

网络可观察性 Operator 1.6.1 提供以下安全公告:

错误修复

  • 之前,有关数据包丢弃的信息(例如原因和 TCP 状态)仅在 Loki 数据存储中可用,而在 Prometheus 中不可用。因此,OpenShift Web 控制台插件**概述**中的丢弃统计信息仅在启用 Loki 时可用。此修复程序将有关数据包丢弃的信息也添加到指标中,因此您可以在禁用 Loki 时查看丢弃统计信息。(NETOBSERV-1649

  • 当启用 eBPF 代理的PacketDrop功能并将采样配置为大于1的值时,报告的丢弃字节和丢弃数据包会忽略采样配置。虽然这是故意为之的,为的是不遗漏任何丢弃,但副作用是与非丢弃相比,报告的丢弃比例会产生偏差。例如,在非常高的采样率(例如1:1000)下,从控制台插件观察到的所有流量都可能显示为丢弃。此修复程序将采样配置应用于丢弃的字节和数据包。(NETOBSERV-1676

  • 之前,如果先创建接口然后再部署 eBPF 代理,则无法检测到 SR-IOV 辅助接口。只有先部署代理然后再创建 SR-IOV 接口才能检测到它。此修复程序可确保无论部署顺序如何都能检测到 SR-IOV 辅助接口。(NETOBSERV-1697

  • 之前,在禁用 Loki 时,OpenShift Web 控制台中的**拓扑**视图会在网络拓扑图旁边的滑块中显示**集群**和**区域**聚合选项,即使相关功能未启用也是如此。此修复程序可确保滑块现在仅显示根据启用功能显示的选项。(NETOBSERV-1705

  • 之前,在禁用 Loki 时,OpenShift Web 控制台首次加载时会发生错误:Request failed with status code 400 Loki is disabled。此修复程序可确保不再发生此类错误。(NETOBSERV-1706

  • 之前,在 OpenShift Web 控制台的**拓扑**视图中,单击任何图形节点旁边的**进入**图标时,不会按要求应用过滤器以将焦点设置到选定的图形节点,从而导致在 OpenShift Web 控制台中显示**拓扑**视图的宽视图。此修复程序可确保正确设置过滤器,从而有效缩小**拓扑**范围。在此更改的一部分中,单击**节点**上的**进入**图标现在会将您带到**资源**范围而不是**命名空间**范围。(NETOBSERV-1720

  • 之前,在禁用 Loki 时,在 OpenShift Web 控制台的**拓扑**视图中将**范围**设置为**所有者**,单击任何图形节点旁边的**进入**图标会将**范围**更改为**资源**,而这在没有 Loki 的情况下是不可用的,因此会显示错误消息。此修复程序在禁用 Loki 时隐藏了**所有者**范围中的**进入**图标,因此这种情况不再发生。(NETOBSERV-1721

  • 之前,在禁用 Loki 时,如果设置了组,然后更改了范围,导致该组无效,则会在 OpenShift Web 控制台的**拓扑**视图中显示错误。此修复程序会删除无效的组,从而防止出现错误。(NETOBSERV-1722

  • 从 OpenShift Web 控制台的**表单视图**(而不是**YAML 视图**)创建FlowCollector资源时,控制台会错误地管理以下设置:agent.ebpf.metrics.enableprocessor.subnetLabels.openShiftAutoDetect。这些设置只能在**YAML 视图**中禁用,而不能在**表单视图**中禁用。为避免混淆,这些设置已从**表单视图**中删除。它们仍然可以在**YAML 视图**中访问。(NETOBSERV-1731

  • 之前,eBPF 代理无法清理在非正常崩溃(例如由于 SIGTERM 信号导致的崩溃)之前安装的流量控制流。这导致创建了多个名称相同的流量控制流过滤器,因为旧的过滤器没有被删除。此修复程序会在代理启动时清理所有先前安装的流量控制流,然后再安装新的流量控制流。(NETOBSERV-1732

  • 之前,在配置自定义子网标签并保持启用 OpenShift 子网自动检测的情况下,OpenShift 子网会优先于自定义子网,从而阻止为集群内子网定义自定义标签。此修复程序解决了这个问题,自定义子网将具有优先级,允许为集群内子网定义自定义标签。(NETOBSERV-1734)

网络可观测性 Operator 1.6.0

以下咨询适用于网络可观测性 Operator 1.6.0

在升级到最新版本的网络可观测性 Operator 之前,您必须迁移已删除的 FlowCollector CRD 的存储版本。一个自动化的解决方案正在计划中,请参考 NETOBSERV-1747

新特性和增强功能

增强无 Loki 的网络可观测性 Operator 的使用

现在,在使用网络可观测性 Operator 时,您可以使用 Prometheus 指标并减少对 Loki 存储的依赖。更多信息,请参见 无 Loki 的网络可观测性

自定义指标 API

您可以使用FlowMetrics API 从流日志数据创建自定义指标。流日志数据可以与 Prometheus 标签一起使用,以自定义仪表板上的集群信息。您可以为要在流和指标中标识的任何子网添加自定义标签。此增强功能还可以通过使用新的标签SrcSubnetLabelDstSubnetLabel 更轻松地识别外部流量,这些标签同时存在于流日志和指标中。当存在外部流量时,这些字段为空,这提供了一种识别外部流量的方法。更多信息,请参见 自定义指标FlowMetric API 参考

eBPF 性能增强

通过以下更新,体验改进的 eBPF 代理的 CPU 和内存性能

  • eBPF 代理现在使用 TCX Webhook 代替 TC。

  • NetObserv / 健康状况仪表板新增了一个显示 eBPF 指标的部分。

    • 基于新的 eBPF 指标,当 eBPF 代理丢弃流时,会发出警报通知您。

  • 现在,由于去除了重复的流,Loki 存储需求大大减少。每个网络接口不再有多个单独的重复流,而是一个去重的流,其中包含相关的网络接口列表。

随着重复流更新,网络流量表中的接口接口方向字段分别重命名为接口接口方向,因此使用这些字段的任何已加书签的快速筛选查询都需要更新为interfacesifdirections

更多信息,请参见 使用 eBPF 代理警报快速筛选器

基于规则的 eBPF 收集过滤

您可以使用基于规则的过滤来减少创建的流的体积。启用此选项后,eBPF 代理统计信息的Netobserv / 健康状况仪表板将显示已过滤流速率视图。更多信息,请参见 eBPF 流规则过滤器

技术预览功能

此版本中的一些功能目前处于技术预览阶段。这些实验性功能并非用于生产环境。请注意 Red Hat 客户门户网站对这些功能的支持范围

网络可观测性 CLI

您可以使用网络可观测性 CLI 调试和解决网络流量问题,而无需安装网络可观测性 Operator。在捕获过程中无需持久存储即可实时捕获和可视化流和数据包数据。更多信息,请参见 网络可观测性 CLI网络可观测性 CLI 1.6.0

错误修复

  • 之前,FlowMetrics API 创建的 Operator 生命周期管理器 (OLM) 表单中显示了一个指向 OpenShift 容器平台文档的失效链接。现在,该链接已更新为指向有效页面。(NETOBSERV-1607)

  • 之前,Operator Hub 中网络可观测性 Operator 的描述显示了一个指向文档的失效链接。此修复程序恢复了此链接。(NETOBSERV-1544)

  • 之前,如果 Loki 已禁用且 Loki Mode 设置为 LokiStack,或者配置了 Loki 手动 TLS 配置,则网络可观测性 Operator 仍尝试读取 Loki CA 证书。此修复程序确保在 Loki 禁用时,即使 Loki 配置中存在设置,也不会读取 Loki 证书。(NETOBSERV-1647)

  • 之前,网络可观测性 Operator 的 oc must-gather 插件仅在 amd64 架构上有效,在所有其他架构上均失败,因为该插件使用 amd64 作为 oc 二进制文件。现在,网络可观测性 Operator oc must-gather 插件可在任何架构平台上收集日志。

  • 之前,使用不等于过滤 IP 地址时,网络可观测性 Operator 会返回请求错误。现在,IP 过滤在 IP 地址和范围的等于不等于情况下均有效。(NETOBSERV-1630)

  • 之前,如果用户不是管理员,则错误消息与 Web 控制台中网络流量视图的选定选项卡不一致。现在,用户不是管理员错误会在任何选项卡上显示,并改进了显示效果。(NETOBSERV-1621)

已知问题

  • 启用 eBPF 代理程序的 `PacketDrop` 功能,并将采样配置为大于 `1` 的值时,报告的丢弃字节和丢弃数据包会忽略采样配置。虽然这样做是为了避免错过任何丢弃,但其副作用是与未丢弃数据包相比,报告的丢弃比例会产生偏差。例如,在非常高的采样率(例如 `1:1000`)下,从控制台插件观察时,几乎所有流量似乎都被丢弃了。(NETOBSERV-1676)

  • 在**概述**选项卡的**管理面板**弹出窗口中,使用**总计**、**条形图**、**环形图**或**折线图**进行筛选没有任何结果。(NETOBSERV-1540)

  • 如果先创建 SR-IOV 辅助接口,然后再部署 eBPF 代理程序,则不会检测到该接口。只有先部署代理程序,然后再创建 SR-IOV 接口,才能检测到它。(NETOBSERV-1697)

  • 禁用 Loki 后,即使相关功能未启用,OpenShift Web 控制台中的**拓扑**视图始终会在网络拓扑图旁边的滑块中显示**集群**和**区域**聚合选项。除了忽略这些滑块选项外,没有其他具体的解决方法。(NETOBSERV-1705)

  • 禁用 Loki 后,OpenShift Web 控制台首次加载时可能会显示错误:`Request failed with status code 400 Loki is disabled`。作为一种解决方法,您可以继续切换**网络流量**页面上的内容,例如在**拓扑**和**概述**选项卡之间切换。错误应该会消失。(NETOBSERV-1706)

网络可观测性操作符 1.5.0

网络可观测性操作符 1.5.0 提供以下建议

新增功能和增强功能

DNS 追踪增强功能

在 1.5 版本中,除了 UDP 之外,现在还支持 TCP 协议。还向网络流量页面的**概述**视图添加了新的仪表板。有关更多信息,请参阅 配置 DNS 追踪使用 DNS 追踪

往返时间 (RTT)

您可以使用从 `fentry/tcp_rcv_established` 扩展 Berkeley 数据包过滤器 (eBPF) 挂接点捕获的 TCP 握手往返时间 (RTT) 来读取平滑往返时间 (SRTT) 并分析网络流量。在 Web 控制台的**概述**、**网络流量**和**拓扑**页面中,您可以使用 RTT 指标、筛选和边缘标记来监控网络流量和进行故障排除。有关更多信息,请参阅 RTT 概述使用 RTT

指标、仪表板和告警增强功能

**监控**→**仪表板**→**NetObserv** 中的网络可观测性指标仪表板具有您可以用来创建 Prometheus 警报的新指标类型。您现在可以在 `includeList` 规范中定义可用的指标。在以前的版本中,这些指标是在 `ignoreTags` 规范中定义的。有关这些指标的完整列表,请参阅 网络可观测性指标

无需 Loki 的网络可观测性改进

即使您不使用 Loki,您也可以为**Netobserv** 仪表板创建使用 DNS、丢包和 RTT 指标的 Prometheus 警报。在 1.4 版本的网络可观测性中,这些指标仅可在**网络流量**、**概述**和**拓扑**视图中进行查询和分析,而这些视图在没有 Loki 的情况下是不可用的。有关更多信息,请参阅 网络可观测性指标

可用区

您可以配置 `FlowCollector` 资源以收集有关集群可用区的信息。此配置使用应用于节点的 topology.kubernetes.io/zone 标签值来丰富网络流量数据。有关更多信息,请参阅 使用可用区

显著增强功能

网络可观测性操作符 1.5 版本为 OpenShift Container Platform Web 控制台插件和操作符配置添加了改进和新功能。

性能增强
  • 使用 Kafka 时,`spec.agent.ebpf.kafkaBatchSize` 的默认值已从 `10MB` 更改为 `1MB`,以增强 eBPF 性能。

    从现有安装升级时,此新值不会自动设置在配置中。如果您在升级后监控到 eBPF 代理程序内存消耗的性能下降,则可能需要考虑将 `kafkaBatchSize` 减小到新值。

Web 控制台增强功能
  • 为 DNS 和 RTT 添加了新的面板:最小值、最大值、P90、P99。

  • 添加了新的面板显示选项

    • 关注一个面板,同时保持其他面板可见,但焦点较小。

    • 切换图表类型。

    • 显示**顶部**和**整体**。

  • 在**自定义时间范围**弹出窗口中显示收集延迟警告。

  • 增强了**管理面板**和**管理列**弹出窗口内容的可视性。

  • Web 控制台**网络流量**页面中提供了用于出站 QoS 的区分服务代码点 (DSCP) 字段,用于筛选 QoS DSCP。

配置增强功能
  • `spec.loki.mode` 规范中的 `LokiStack` 模式通过自动设置 URL、TLS、集群角色和集群角色绑定以及 `authToken` 值来简化安装。`Manual` 模式允许更精细地控制这些设置的配置。

  • API 版本从 `flows.netobserv.io/v1beta1` 更改为 `flows.netobserv.io/v1beta2`。

错误修复

  • 以前,如果禁用了控制台插件的自动注册,则无法在 Web 控制台界面中手动注册控制台插件。如果在 `FlowCollector` 资源中将 `spec.console.register` 值设置为 `false`,则操作符将覆盖并清除插件注册。通过此修复程序,将 `spec.console.register` 值设置为 `false` 不会影响控制台插件的注册或注销。因此,可以安全地手动注册插件。(NETOBSERV-1134)

  • 之前,使用默认指标设置时,NetObserv/Health 仪表盘显示一个名为Flows Overhead的空图表。此指标只有在从ignoreTags列表中移除“namespaces-flows”和“namespaces”后才可用。此修复后,使用默认指标设置时,此指标可见。(NETOBSERV-1351

  • 之前,运行eBPF Agent的节点在特定集群配置下无法解析。这导致了级联后果,最终导致无法提供某些流量指标。此修复后,eBPF Agent的节点IP由Operator安全地提供,从pod状态推断得出。现在,缺失的指标已恢复。(NETOBSERV-1430

  • 之前,Loki Operator的Loki错误“Input size too long”没有包含其他信息来排查问题。此修复后,在web控制台中错误旁边直接显示帮助信息,并提供指向更多指导的直接链接。(NETOBSERV-1464

  • 之前,控制台插件读取超时强制设置为30秒。通过FlowCollector v1beta2 API更新,您可以配置spec.loki.readTimeout规范以根据Loki Operator queryTimeout限制更新此值。(NETOBSERV-1443

  • 之前,Operator bundle没有按预期显示CSV注释支持的一些功能,例如features.operators.openshift.io/…​。此修复后,这些注释将按预期设置在CSV中。(NETOBSERV-1305

  • 之前,FlowCollector状态在协调过程中有时会在DeploymentInProgressReady状态之间振荡。此修复后,只有在所有底层组件完全就绪后,状态才会变为Ready。(NETOBSERV-1293

已知问题

  • 尝试访问web控制台时,OCP 4.14.10上的缓存问题会阻止访问Observe视图。web控制台显示错误消息:Failed to get a valid plugin manifest from /api/plugins/monitoring-plugin/。建议的解决方法是将集群更新到最新的次要版本。如果这不起作用,您需要应用此Red Hat知识库文章中描述的解决方法。(NETOBSERV-1493

  • 从Network Observability Operator 1.3.0版本开始,安装Operator会导致出现警告内核污染。此错误的原因是Network Observability eBPF代理具有内存限制,无法预分配整个哈希表。Operator eBPF代理设置BPF_F_NO_PREALLOC标志,以便在哈希表过于占用内存时禁用预分配。

Network Observability Operator 1.4.2

Network Observability Operator 1.4.2 提供以下安全公告

Network Observability Operator 1.4.1

Network Observability Operator 1.4.1 提供以下安全公告

错误修复

  • 在1.4版本中,向Kafka发送网络流量数据时存在已知问题。Kafka消息密钥被忽略,导致连接跟踪出现错误。现在使用密钥进行分区,因此来自同一连接的每个流都发送到同一处理器。(NETOBSERV-926

  • 在1.4版本中,引入了Inner流方向来解释在同一节点上运行的pod之间的流。在从流派生的生成的Prometheus指标中,没有考虑具有Inner方向的流,导致字节和数据包速率被低估。现在,派生指标包括具有Inner方向的流,提供正确的字节和数据包速率。(NETOBSERV-1344

Network Observability Operator 1.4.0

Network Observability Operator 1.4.0 提供以下安全公告

通道移除

您必须将您的通道从v1.0.x切换到stable以接收最新的Operator更新。v1.0.x通道现已移除。

新功能和增强功能

显著增强

Network Observability Operator 的 1.4 版本对 OpenShift Container Platform web 控制台插件和 Operator 配置进行了改进和新增功能。

Web 控制台增强功能
  • 查询选项中,添加了重复流复选框,用于选择是否显示重复流。

  • 您现在可以使用 arrow up long solid 单向arrow up long solid arrow down long solid 双向交换过滤器。

  • Observe仪表盘NetObservNetObserv / Health 中的 Network Observability 指标仪表盘进行了如下修改

    • NetObserv 仪表盘显示每个节点、命名空间和工作负载的顶级字节、发送的数据包和接收的数据包。此仪表盘中已移除流图表。

    • NetObserv / 健康仪表盘显示流量开销以及每个节点、命名空间和工作负载的最高流量速率。

    • 基础设施和应用程序指标在命名空间和工作负载的拆分视图中显示。

更多信息,请参见 网络可观测性指标快速过滤器

配置增强功能
  • 您现在可以选择为任何已配置的 ConfigMap 或 Secret 引用指定不同的命名空间,例如在证书配置中。

  • 添加了spec.processor.clusterName参数,以便集群名称显示在流量数据中。这在多集群环境中非常有用。使用 OpenShift Container Platform 时,请留空以使其自动确定。

更多信息,请参见 Flow Collector 示例资源Flow Collector API 参考

无需 Loki 的网络可观测性

网络可观测性 Operator 现在无需 Loki 即可运行和使用。如果未安装 Loki,它只能将流量导出到 KAFKA 或 IPFIX 格式,并在网络可观测性指标仪表盘中提供指标。更多信息,请参见 无需 Loki 的网络可观测性

DNS跟踪

在 1.4 版本中,网络可观测性 Operator 利用 eBPF tracepoint hook 来启用 DNS 跟踪。您可以在 Web 控制台的网络流量概述页面中监控您的网络、进行安全分析和排查 DNS 问题。

更多信息,请参见 配置 DNS 跟踪使用 DNS 跟踪

SR-IOV 支持

您现在可以从具有单根 I/O 虚拟化 (SR-IOV) 设备的集群收集流量。更多信息,请参见 配置 SR-IOV 接口流量监控

IPFIX 导出器支持

您现在可以将 eBPF 增强型网络流量导出到 IPFIX 收集器。更多信息,请参见 导出增强的网络流量数据

丢包

在网络可观测性 Operator 的 1.4 版本中,eBPF tracepoint hook 用于启用丢包跟踪。您现在可以检测和分析丢包原因,并做出决策以优化网络性能。在 OpenShift Container Platform 4.14 及更高版本中,可以检测主机丢包和 OVS 丢包。在 OpenShift Container Platform 4.13 中,仅检测主机丢包。更多信息,请参见 配置丢包跟踪使用丢包

s390x 架构支持

网络可观测性 Operator 现在可以在s390x架构上运行。以前它运行在amd64ppc64learm64上。

错误修复

  • 以前,网络可观测性导出的 Prometheus 指标是根据可能重复的网络流量计算的。在相关的仪表盘(从观察仪表盘)中,这可能导致速率加倍。请注意,网络流量视图中的仪表盘不受影响。现在,在计算指标之前,会过滤网络流量以消除重复项,从而在仪表盘中显示正确的流量速率。(NETOBSERV-1131

  • 以前,网络可观测性 Operator 代理无法在使用 Multus 或 SR-IOV(非默认网络命名空间)配置的网络接口上捕获流量。现在,所有可用的网络命名空间都被识别并用于捕获流量,从而允许捕获 SR-IOV 的流量。FlowCollectorSRIOVnetwork自定义资源需要进行配置才能收集流量。(NETOBSERV-1283

  • 以前,在Operators已安装的 Operators中的网络可观测性 Operator 详情中,FlowCollector状态字段可能报告了关于部署状态的不正确信息。状态字段现在显示了带有改进消息的正确条件。事件历史按事件日期排序保留。(NETOBSERV-1224

  • 以前,在网络流量负载高峰期间,某些 eBPF pod 会因内存不足而被终止并进入CrashLoopBackOff状态。现在,eBPF代理的内存占用已得到改进,因此 pod 不会因内存不足而被终止并进入CrashLoopBackOff状态。(NETOBSERV-975

  • 以前,当processor.metrics.tls设置为PROVIDED时,insecureSkipVerify选项值被强制设置为true。现在您可以将insecureSkipVerify设置为truefalse,并根据需要提供 CA 证书。(NETOBSERV-1087

已知问题

  • 从网络可观测性 Operator 的 1.2.0 版本开始,使用 Loki Operator 5.6 时,Loki 证书更改会周期性地影响flowlogs-pipeline pod,导致流量丢失而不是写入 Loki。问题会在一段时间后自行纠正,但它仍然会导致在 Loki 证书更改期间出现暂时的流量数据丢失。此问题仅在大于 120 个节点的大规模环境中观察到。(NETOBSERV-980

  • 当前,当spec.agent.ebpf.features包含 DNSTracking 时,较大的 DNS 数据包需要eBPF代理在第一个套接字缓冲区 (SKB) 段之外查找 DNS 头。需要实现一个新的eBPF代理辅助函数来支持它。目前,此问题没有解决方法。(NETOBSERV-1304

  • 当前,当spec.agent.ebpf.features包含 DNSTracking 时,通过 TCP 的 DNS 数据包需要eBPF代理在第一个 SKB 段之外查找 DNS 头。需要实现一个新的eBPF代理辅助函数来支持它。目前,此问题没有解决方法。(NETOBSERV-1245

  • 当前,当使用KAFKA部署模型时,如果配置了会话跟踪,会话事件可能会在 Kafka 消费者之间重复,导致会话跟踪不一致以及体积数据不正确。因此,不建议在deploymentModel设置为KAFKA时配置会话跟踪。(NETOBSERV-926

  • 当前,如果将processor.metrics.server.tls.type配置为使用PROVIDED证书,则操作员将进入不稳定状态,这可能会影响其性能和资源消耗。建议在解决此问题之前不要使用PROVIDED证书,而是使用自动生成的证书,并将processor.metrics.server.tls.type设置为AUTO。(NETOBSERV-1293

  • 从Network Observability Operator 1.3.0版本开始,安装Operator会导致出现警告内核污染。此错误的原因是Network Observability eBPF代理具有内存限制,无法预分配整个哈希表。Operator eBPF代理设置BPF_F_NO_PREALLOC标志,以便在哈希表过于占用内存时禁用预分配。

网络可观测性操作符 1.3.0

以下安全通告适用于网络可观测性操作符 1.3.0

渠道弃用

您必须将您的渠道从v1.0.x切换到stable才能接收未来的操作符更新。v1.0.x渠道已弃用,并计划在下个版本中移除。

新功能和增强功能

网络可观测性中的多租户

基于流量的指标仪表板

  • 此版本添加了一个新的仪表板,它提供了OpenShift Container Platform集群中网络流量的概述。更多信息,请参见 网络可观测性指标

使用must-gather工具进行故障排除

  • 现在可以在must-gather数据中包含有关网络可观测性操作符的信息,以便进行故障排除。更多信息,请参见 网络可观测性must-gather

现在支持多种架构

  • 网络可观测性操作符现在可以在amd64ppc64learm64架构上运行。以前,它只能在amd64上运行。

已弃用的功能

已弃用的配置参数设置

网络可观测性操作符 1.3 版本弃用了spec.Loki.authToken HOST设置。使用Loki操作符时,现在只能使用FORWARD设置。

错误修复

  • 以前,当从CLI安装操作符时,集群监控操作符读取指标所需的RoleRoleBinding没有按预期安装。从Web控制台安装操作符时,不会出现此问题。现在,无论采用哪种方式安装操作符,都会安装所需的RoleRoleBinding。(NETOBSERV-1003)

  • 从1.2版本开始,当流量收集出现问题时,网络可观测性操作符可以发出警报。以前,由于一个错误,用于禁用警报的相关配置spec.processor.metrics.disableAlerts无法按预期工作,有时无效。现在,此配置已修复,因此可以禁用警报。(NETOBSERV-976)

  • 以前,当网络可观测性配置为spec.loki.authToken设置为DISABLED时,只有kubeadmin集群管理员才能查看网络流量。其他类型的集群管理员会收到授权失败。现在,任何集群管理员都可以查看网络流量。(NETOBSERV-972)

  • 以前,一个错误阻止用户将spec.consolePlugin.portNaming.enable设置为false。现在,可以将此设置设置为false以禁用端口到服务名称的转换。(NETOBSERV-971)

  • 以前,由于配置不正确,集群监控操作符(Prometheus)未收集控制台插件公开的指标。现在配置已修复,以便可以从OpenShift Container Platform Web控制台正确收集和访问控制台插件指标。(NETOBSERV-765)

  • 以前,当在FlowCollector中将processor.metrics.tls设置为AUTO时,flowlogs-pipeline servicemonitor不会采用适当的TLS方案,并且指标在Web控制台中不可见。现在已修复AUTO模式下的问题。(NETOBSERV-1070)

  • 以前,证书配置(例如用于Kafka和Loki的配置)不允许指定命名空间字段,这意味着证书必须位于部署网络可观测性的同一命名空间中。此外,当与TLS/mTLS一起使用Kafka时,用户必须手动将证书复制到部署eBPF代理Pod的特权命名空间中,并手动管理证书更新,例如在证书轮换的情况下。现在,通过在FlowCollector资源中添加证书的命名空间字段,简化了网络可观测性的设置。因此,用户现在可以将Loki或Kafka安装在不同的命名空间中,而无需手动将其证书复制到网络可观测性命名空间中。原始证书将被监视,以便在需要时自动更新副本。(NETOBSERV-773)

  • 以前,网络可观测性代理未涵盖SCTP、ICMPv4和ICMPv6协议,导致网络流量覆盖范围不完整。现在已识别这些协议以改进流量覆盖范围。(NETOBSERV-934)

已知问题

  • 当在FlowCollector中将processor.metrics.tls设置为PROVIDED时,flowlogs-pipeline servicemonitor不会适应TLS方案。(NETOBSERV-1087)

  • 自从网络可观测性操作符1.2.0版本发布以来,使用Loki操作符5.6,Loki证书更改会周期性地影响flowlogs-pipeline Pod,导致流量丢失,而不是将流量写入Loki。问题会在一段时间后自行纠正,但它仍然会导致在Loki证书更改期间出现临时流量数据丢失。此问题仅在大于等于120个节点的大规模环境中观察到。(NETOBSERV-980)

  • 安装操作符时,可能会出现警告内核污点。此错误的原因是网络可观测性eBPF代理存在内存限制,无法预分配整个哈希表。操作符eBPF代理设置BPF_F_NO_PREALLOC标志,以便在哈希表过于占用内存时禁用预分配。

网络可观测性操作符 1.2.0

以下安全通告适用于网络可观测性操作符 1.2.0

准备下一次更新

已安装操作符的订阅指定一个更新渠道,用于跟踪和接收操作符的更新。直到网络可观测性操作符的1.2版本,唯一可用的渠道是v1.0.x。网络可观测性操作符的1.2版本引入了用于跟踪和接收更新的stable更新渠道。您必须将您的渠道从v1.0.x切换到stable才能接收未来的操作符更新。v1.0.x渠道已弃用,并计划在后续版本中移除。

新功能和增强功能

流量视图中的直方图

  • 您现在可以选择显示随时间变化的流量直方图条形图。直方图使您能够可视化流量历史记录,而不会达到Loki查询限制。更多信息,请参见 使用直方图

会话跟踪

  • 现在您可以按**日志类型**查询流,这使得能够对属于同一会话的网络流进行分组。更多信息,请参见处理会话

网络可观测性健康警报

  • 如果flowlogs-pipeline由于写入阶段的错误而丢弃流,或者达到Loki的摄取速率限制,网络可观测性操作符现在会创建自动警报。更多信息,请参见健康仪表盘

错误修复

  • 以前,在更改FlowCollector规范中的namespace值后,在先前命名空间中运行的eBPF代理Pod不会被适当地删除。现在,在先前命名空间中运行的Pod将被适当地删除。(NETOBSERV-774

  • 以前,在更改FlowCollector规范中的caCert.name值(例如在Loki部分)后,FlowLogs-Pipeline Pod和控制台插件Pod不会重启,因此它们不知道配置更改。现在,这些Pod会重启,因此它们会获取配置更改。(NETOBSERV-772

  • 以前,在不同节点上运行的Pod之间的网络流有时无法正确识别为重复项,因为它们是由不同的网络接口捕获的。这导致控制台插件中显示的指标被高估。现在,流被正确识别为重复项,并且控制台插件显示准确的指标。(NETOBSERV-755

  • 控制台插件中的“reporter”选项用于根据源节点或目标节点的观察点过滤流。以前,此选项会混合流,而不管节点观察点如何。这是由于网络流在节点级别被错误地报告为Ingress或Egress。现在,网络流方向报告是正确的。“reporter”选项按预期过滤源观察点或目标观察点。(NETOBSERV-696

  • 以前,对于配置为直接将流作为gRPC+protobuf请求发送到处理器的代理,提交的有效负载可能过大,并被处理器的GRPC服务器拒绝。这种情况发生在非常高负载的情况下,并且只在代理的一些配置中发生。代理记录了一条错误消息,例如:grpc: received message larger than max。结果,关于这些流的信息丢失了。现在,当大小超过阈值时,gRPC有效负载将被拆分为多个消息。因此,服务器保持连接。(NETOBSERV-617

已知问题

  • 在网络可观测性操作符1.2.0版本中,使用Loki操作符5.6时,Loki证书转换会定期影响flowlogs-pipeline Pod,导致流被丢弃而不是写入Loki。问题会在一段时间后自行纠正,但它仍然会导致在Loki证书转换期间暂时丢失流数据。(NETOBSERV-980

值得注意的技术更改

  • 以前,您可以使用自定义命名空间安装网络可观测性操作符。此版本引入了转换Webhook,它更改了ClusterServiceVersion。由于此更改,所有可用命名空间不再列出。此外,为了启用操作符指标收集,与其他操作符共享的命名空间(如openshift-operators命名空间)无法使用。现在,操作符必须安装在openshift-netobserv-operator命名空间中。如果您之前使用自定义命名空间安装了网络可观测性操作符,则无法自动升级到新的操作符版本。如果您之前使用自定义命名空间安装了操作符,则必须删除已安装的操作符实例,并在openshift-netobserv-operator命名空间中重新安装您的操作符。需要注意的是,自定义命名空间(例如常用的netobserv命名空间)仍然可以用于FlowCollector、Loki、Kafka和其他插件。(NETOBSERV-907)(NETOBSERV-956

网络可观测性操作符1.1.0

以下是网络可观测性操作符1.1.0的公告:

网络可观测性操作符现在已稳定,发行渠道已升级到v1.1.0

错误修复

  • 以前,除非将Loki authToken配置设置为FORWARD模式,否则不再强制执行身份验证,允许任何可以连接到OpenShift Container Platform集群中OpenShift Container Platform控制台的用户在没有身份验证的情况下检索流。现在,无论Loki authToken模式如何,只有集群管理员才能检索流。(BZ#2169468