概览

关于 Network Observability

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

当你需要以下能力时,请使用 Network Observability:

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

NetObserv 包含以下主要组件:

  • 运行在集群节点上并捕获 packets 或 flow 数据的 eBPF agent
  • 用于丰富并导出 flow logs 的 flow logs pipeline
  • 支持按需 packet capture 和 flow capture 的 CLI

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

  • 部署 operator,以持续收集并存储整个集群范围内的 flow logs
  • 使用 CLI 捕获 packets 或 flows 以排查问题,并将结果导出用于离线分析

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

推荐流程

对于大多数部署,请按以下顺序操作:

  1. 查看 Prerequisites 并验证内核要求。
  2. 下载并上传 NetObserv Operator 包。
  3. 准备 ClickHouse 后端。
  4. 安装 NetObserv Operator。
  5. 创建 ClickHouse 认证 secret。
  6. 创建 FlowCollector 实例。
  7. 在需要 packet 或 flow capture 进行排查时使用 CLI

Operator 部署架构

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

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

CLI 架构

CLI 是一个 shell script,可以作为独立工具运行,也可以作为 kubectl 插件运行。 它可以捕获 packets 或 flows,并将结果导出到文件以供进一步分析。

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