当前位置: 首页 > news >正文

eBPF 赋能云原生: WizTelemetry 无侵入网络可观测实践

引言

随着 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 的网络可观测的无限可能。

http://www.xdnf.cn/news/1212193.html

相关文章:

  • NSGA-III(非支配排序遗传算法 III)求解 7 目标的 DTLZ2 测试函数
  • Redis学习------缓存雪崩
  • Spring Boot音乐服务器项目-查询喜欢的音乐模块
  • 企业级应用安全传输:Vue3+Nest.js AES加密方案设计与实现
  • 常见CMS获取webshell的方法-靶场练习
  • 基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(三)
  • YOLOv5u:无锚点检测的革命性进步
  • 智能AI医疗物资/耗材管理系统升级改造方案分析
  • 【C++】类和对象(中)拷贝构造、赋值重载
  • BT131-800-ASEMI家电领域专用BT131-800
  • Hutool 的 WordTree(敏感词检测)
  • 第2章 cmd命令基础:常用基础命令(2)
  • 中国高铁从追赶到领跑的破壁之路
  • 磁盘io查看命令iostat与网络连接查看命令netstat
  • FFmpeg,如何插入SEI自定义数据
  • MidJourney精选图集与提示词生成器:AI创意灵感与高效提示词工具
  • 无监督MVSNet系列网络概述
  • 高效管理Hosts文件的终极工具
  • 【Qt开发】信号与槽(三)-> 自定义信号和槽
  • Python 程序设计讲义(46):组合数据类型——集合类型:集合间运算
  • 解决 Node.js 托管 React 静态资源的跨域问题
  • 力扣54:螺旋矩阵
  • 疯狂星期四文案网第24天运营日记
  • 永磁同步电机FOC控制----电流采样的实现
  • 【Lambda】flatMap使用案例
  • 字节跳动“扣子”(Coze)开源:AI智能体生态的技术革命
  • 从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战
  • 微软OpenAI展开深入谈判
  • DIV 指令概述
  • 视觉语言模型在视觉任务上的研究综述