概览
关于 Network Observability
在 Container Platform 中,网络可观测性由 NetObserv 提供。 NetObserv 使用 eBPF 捕获网络数据,帮助你检查流量行为、识别性能问题,并排查连接问题。
在以下场景中使用 Network Observability:
- 持续监控整个集群中的网络流量
- 使用详细的数据包或流数据调试网络问题
- 调查工作负载之间的连接或延迟问题
- 捕获数据包或流以供离线分析
NetObserv 包含以下主要组件:
- 运行在集群节点上并捕获数据包或流数据的 eBPF agent
- 用于丰富和导出流日志的 flow logs 流水线
- 支持按需数据包捕获和流捕获的 CLI
你可以通过以下任一方式使用 NetObserv:
- 部署 operator,以持续收集和存储集群范围的 flow logs
- 使用 CLI 捕获数据包或流以进行故障排查,并导出结果用于离线分析
如果你需要持续的、集群范围的可见性,请选择基于 operator 的部署。 如果你需要短期故障排查,而不更改长期运行的收集设置,请选择 CLI。
推荐工作流
对于大多数部署,请按以下顺序执行:
- 查看 Prerequisites 并验证内核要求。
- 下载并上传 NetObserv Operator 软件包。
- 准备 ClickHouse 后端。
- 安装 NetObserv Operator。
- 创建 ClickHouse 身份验证 secret。
- 创建 FlowCollector 实例。
- 在需要进行数据包或流捕获以排查问题时,使用 CLI。
operator 部署架构
使用 NetObserv Operator 部署时,eBPF agent 会作为 DaemonSets 运行在 Kubernetes 节点上,以收集网络流日志。 flow logs 流水线作为 Deployment 运行,用 Kubernetes 元数据丰富所收集的数据,并将其导出到 ClickHouse 进行存储和分析。
下图展示了使用 NetObserv Operator 部署的 NetObserv 高级架构:
CLI 架构
CLI 是一个 shell script,可以作为独立工具运行,也可以作为 kubectl plugin 运行。 它可以捕获数据包或流,并将结果导出到文件,以便进一步分析。
下图展示了 NetObserv CLI 的高级架构: