概览

关于 Network Observability

Container Platform 中,网络可观测性由 NetObserv 提供。 NetObserv 使用 eBPF 捕获网络数据,帮助你检查流量行为、识别性能问题,并排查连接问题。

在以下场景中使用 Network Observability:

  • 持续监控整个集群中的网络流量
  • 使用详细的数据包或流数据调试网络问题
  • 调查工作负载之间的连接或延迟问题
  • 捕获数据包或流以供离线分析

NetObserv 包含以下主要组件:

  • 运行在集群节点上并捕获数据包或流数据的 eBPF agent
  • 用于丰富和导出流日志的 flow logs 流水线
  • 支持按需数据包捕获和流捕获的 CLI

你可以通过以下任一方式使用 NetObserv:

  • 部署 operator,以持续收集和存储集群范围的 flow logs
  • 使用 CLI 捕获数据包或流以进行故障排查,并导出结果用于离线分析

如果你需要持续的、集群范围的可见性,请选择基于 operator 的部署。 如果你需要短期故障排查,而不更改长期运行的收集设置,请选择 CLI。

推荐工作流

对于大多数部署,请按以下顺序执行:

  1. 查看 Prerequisites 并验证内核要求。
  2. 下载并上传 NetObserv Operator 软件包。
  3. 准备 ClickHouse 后端。
  4. 安装 NetObserv Operator。
  5. 创建 ClickHouse 身份验证 secret。
  6. 创建 FlowCollector 实例。
  7. 在需要进行数据包或流捕获以排查问题时,使用 CLI

operator 部署架构

使用 NetObserv Operator 部署时,eBPF agent 会作为 DaemonSets 运行在 Kubernetes 节点上,以收集网络流日志。 flow logs 流水线作为 Deployment 运行,用 Kubernetes 元数据丰富所收集的数据,并将其导出到 ClickHouse 进行存储和分析。

下图展示了使用 NetObserv Operator 部署的 NetObserv 高级架构:

CLI 架构

CLI 是一个 shell script,可以作为独立工具运行,也可以作为 kubectl plugin 运行。 它可以捕获数据包或流,并将结果导出到文件,以便进一步分析。

下图展示了 NetObserv CLI 的高级架构: