引言
随着 KubeSphere 企业版 4.2.0 的正式发布,WizTelemetry 可观测平台 2.0 也同步亮相。作为本次升级中的重磅模块之一,它迅速引发了开发与运维团队的广泛关注。
本系列文章将系统解读 WizTelemetry 的核心能力与落地实践。继前两篇介绍了平台架构与指标日志的深度融合后,本篇作为系列第三篇,将聚焦 WizTelemetry 在网络可观测方面的技术设计与 eBPF 应用实践,展示其如何在云原生环境中实现高性能、全链路、无侵扰的网络监控。
什么是 eBPF?
eBPF(Extended Berkeley Packet Filter)是一项源自 Linux 内核的革命性技术,允许开发者在内核中运行沙盒化程序,无需更改内核源代码或加载内核模块。
eBPF 程序是事件驱动的,当内核或用户程序经过特定的钩子点(hook point)时触发执行。这些钩子点可以包括系统调用、网络事件、内核函数调用等。通过 JIT 编译技术,eBPF 程序可以近乎原生编译代码的速度高效执行。
eBPF 由于其非侵入性、高效率和安全性,正在成为网络、安全和可观测性领域的重要技术基础。
为什么选择基于 eBPF 的网络可观测?
传统网络监控的痛点
代码侵入:许多工具需要修改应用代码,增加了开发和维护的复杂性。
视角有限:传统工具往往只能看到网络的特定层面,无法提供端到端的全景视图。
资源开销大:许多监控解决方案需要占用大量系统资源,尤其在高流量环境中。
技术栈碎片化:不同的监控需求往往需要不同的工具,导致监控生态系统复杂且分散。
eBPF 的独特优势
✅ 无侵入监控:可以在不修改应用代码的情况下,直接从操作系统内核获取数据,实现真正的零侵扰监控。
✅ 全栈可观测:可以观测从应用代码到系统调用、网络协议栈全链路的性能指标。
✅ 高性能低开销:eBPF 程序在内核中高效执行,避免了传统方案中的数据拷贝和上下文切换,大大降低了监控的资源消耗。
✅ 安全性强:eBPF 程序在加载前经过严格的验证,确保不会破坏系统稳定性。
WizTelemetry 网络可观测平台功能
KubeSphere 4.2.0 中的 WizTelemetry 网络可观测平台基于 eBPF 技术,提供了以下核心特性:
1. 全景网络拓扑
自动分析四层网络流量并生成拓扑图:
- 网络流量节点的连接关系
- 节点间的数据流向与流量速率
- TCP 健康状况指标:丢包率和重传率
全景网络拓扑不仅可视化了基础设施的整体连接情况,还能帮助运维人员快速识别网络瓶颈和异常点。
2. 全景服务拓扑
基于对七层 HTTP 流量的解析,构建服务级别的拓扑视图,通过服务拓扑可以直观的了解:
- 集群内的服务之间的 HTTP 流量
- 服务依赖与影响面
- 服务通信性能指标
服务拓扑为开发和运维团队提供了业务视角的可观测性,帮助团队理解服务间的交互模式和性能特征。
3. 服务性能监控
支持对单个服务进行性能监控,包括:
- RED 指标(RPS、Duration、Error Rate)
- HTTP 响应数据吞吐量指标
- 最慢路由 Top 10 分析
服务性能监控帮助用户及时发现性能异常,追踪性能下降的根本原因。
4. HTTP 流量日志
通过连接跟踪与协议解析,提供详细的 full-body 请求响应日志:
- 请求方法、URL、头部
- 响应状态码与时间
- 请求/响应体大小
- 客户端/服务端元信息
这些详细的 HTTP 日志为故障排查和性能分析提供了丰富的上下文信息。
技术架构
核心组件
WizTelemetry 网络可观测平台主要有以下几个组件构成:
- operator:管理 eBPF 应用(K8s CRD)与 bpfman-daemon
- bpfman-daemon:维护节点上的 eBPF 程序生命周期
- bpfconductor-agent:管理用户空间 eBPF 程序,提供指标导出和流量日志收集功能
核心特性
可维护性
通过 K8s 自定义资源可以更好的维护 eBPF 程序生命周期,支持筛选程序部署到的节点(kprobe),筛选程序附加的命令空间、Pod和容器(uprobe),程序版本控制
可扩展性
以标准 OCI 镜像管理 eBPF 程序字节码,通过K8s 自定义资源可以轻松扩展 eBPF 应用
安全性
只有 bpfman 守护进程(可被严格控制)拥有加载和附加 eBPF 程序所需的特权。eBPF 程序镜像可以被签名以验证字节码的所有权
数据采集与元数据
网络可观测平台采集的数据包括:
Metrics
Network Flow:不同网络端点之间的网络指标,包括:物理节点、容器、Kubernetes Pod、服务等之间
TCP Stats:包括 TCP 丢弃和重传指标
HTTP:包括客户端/服务端的请求和响应指标:Duration, Body Size
Logging
- HTTP 日志:包含详细的请求和响应信息的 HTTP 流量日志
元数据维度:
Metrics 和 Logging 在云原生环境都进行了元数据关联,包含:
- client/server 节点、namespace、pod_name 等上下文维度
可视化能力
WizTelemetry 网络可观测提供了用户友好的可视化界面,包含:
- 网络拓扑
- 服务拓扑
- 服务性能监控
- 流量监控
- HTTP 流量日志
结语
基于 eBPF 的网络可观测技术正在重新定义企业如何理解和管理其网络基础设施及应用性能。相比传统的基于代码插桩的方案,eBPF 技术提供了无侵入、全栈、高性能的可观测能力,使得企业能够以前所未有的深度和广度了解其网络运行状况。
KubeSphere 4.2.0 通过引入 WizTelemetry 网络可观测功能,为用户提供了先进的基于 eBPF 的网络监控能力,进一步增强了 KubeSphere 作为企业级容器平台的全面可观测性解决方案。WizTelemetry 网络可观测旨在通过创新的技术和技术架构,降低网络可观测对应用的侵扰、资源开销与运维复杂度,为企业提供了一个兼具高效性能与易用性的网络可观测平台。
在云原生时代,网络可观测已不再是可选项,而是数字业务成功的必要保障。我们期待与您一起,探索基于 eBPF 的网络可观测的无限可能。