1. Cilium Hubble 如何利用 eBPF 实现无侵入的 Kubernetes 服务拓扑与流量可视化,即 DNS/HTTP/gRPC 指标采集与服务依赖图自动生成
请说明 Cilium Hubble 如何利用 eBPF 实现无侵入的 Kubernetes 服务拓扑与流量可视化,包括 DNS/HTTP/gRPC 指标采集与服务依赖图自动生成?
- eBPF 无侵入采集的原理
- DNS/HTTP/gRPC 指标采集
- 服务依赖图自动生成
Cilium Hubble 基于 eBPF 实现「无侵入(zero-instrumentation)」的 K8s 服务拓扑与流量可视化。原理:eBPF 在内核数据路径(如 XDP/TC/socket)拦截网络包,无需修改应用、无需 sidecar 插桩,即可观测「服务间流量」。流量可视化:① 采集——eBPF 捕获「每条流量的五元组(源/目的 IP、端口、协议)」,并关联到「K8s 服务/Pod/命名空间」;② 协议解析——Hubble 解析「应用层协议」:HTTP/gRPC 的请求方法、状态码、延迟,DNS 的请求/响应,得到「协议级指标」;③ 服务依赖图——基于「流量的源/目的关系」自动生成「服务拓扑图(Service Map)」,展示「服务间依赖、流量方向、延迟、错误率」;④ 指标输出——把流量指标(每秒请求、延迟、错误率)暴露给 Prometheus,支持告警。价值:① 无侵入——不改造应用、不插桩,即时获得全链路可观测性;② 服务拓扑——自动生成「服务依赖图」,理解「谁依赖谁、流量如何流动」;③ 协议级——HTTP/gRPC/DNS 的「请求级」观测,定位「慢/错」在哪个服务间。Hubble 是「CNI 网络流量可视化的标配」,是 K8s 可观测性的重要能力。
Hubble 的核心是「eBPF 内核级采集 + 协议解析 + 服务拓扑生成」。无侵入是其最大优势(不插桩、不改造)。采集流量并关联 K8s 身份、解析 HTTP/gRPC/DNS、自动生成依赖图,提供「服务级流量可观测性」。