引言
隨著 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 的網絡可觀測的無限可能。