- Hubble 基础组件(内嵌在 Cilium Agent)
当前状态: ✅ 已启用 性能影响: 极低(<1%) 功能:
- 捕获本节点流量
- 本地流量可观测
- 支持 kubectl exec -n kube-system ds/cilium -- hubble observe
推荐: ✅ 必须启用 - 这是最基础的可观测性
- Hubble Relay(集群级流量聚合)
当前状态: ❌ 未启用(relay.enabled=false) 资源消耗: 1个 Deployment Pod(~50-100MB 内存,~0.1 CPU) 性能影响: 极低
功能:
- 聚合所有节点的 Hubble 流量
- 支持集群范围的流量查询
- 支持外部 Hubble CLI 访问(通过 port-forward)
- Hubble UI 的后端依赖
使用场景:
- ✅ 需要跨节点观察流量(Pod A → Pod B 在不同节点)
- ✅ 需要从本地使用 hubble CLI 查询集群流量
- ✅ 需要启用 Hubble UI
推荐: ⚠️ 按需启用
- 如果只需要单节点调试 → 不需要
- 如果需要集群级可观测性 → 强烈推荐
- Hubble UI(Web 可视化界面)
当前状态: ❌ 未启用(ui.enabled=false) 资源消耗: 2个 Pods(Frontend + Backend,~100-200MB) 性能影响: 无(仅消费数据,不影响数据面)
功能:
- Web UI 可视化流量地图
- Service Map(服务依赖图)
- 流量过滤和搜索
依赖: 需要 Hubble Relay
推荐: ⚠️ 按需启用
- 开发/调试环境 → 推荐
- 生产环境 → 看团队需求(通常用 Grafana + Prometheus)
- Hubble Metrics(Prometheus 指标)
当前状态: ❌ 未启用(Metrics: Disabled) 性能影响: 非常低(~1-2%) 资源消耗: 内存增加 ~50MB/节点
功能:
- 导出流量统计到 Prometheus
- 支持 Grafana 可视化
- 长期趋势分析
推荐: ✅ 生产环境强烈推荐
🎯 推荐配置方案
方案 1:最小化配置(当前适合你)
适用:只需要基本调试,关注性能
hubble: enabled: true peerService: clusterDomain: "xxxx.local"
relay:
enabled: false # 不需要集群级查询
ui:
enabled: false # 不需要 Web UI
metrics:
enabled:
- dns # 基础 DNS 统计
- drop # 丢包统计(重要!)
- flow # 基础流量统计
优点:
- ✅ 性能影响最小(<2%)
- ✅ 支持单节点流量观察
- ✅ 有基础 metrics 供 Prometheus 采集
方案 2:推荐生产配置
适用:需要完整可观测性,但不需要 UI
hubble: enabled: true peerService: clusterDomain: "xxxx.local"
relay:
enabled: true # 启用集群级查询
ui:
enabled: false # 生产环境通常用 Grafana
metrics:
enabled:
- dns
- drop
- tcp
- flow
- port-distribution
- icmp
serviceMonitor:
enabled: true # 如果有 Prometheus Operator
优点:
- ✅ 完整的可观测性
- ✅ 支持集群级流量分析
- ✅ Prometheus + Grafana 可视化
- ✅ 性能影响可控(~2-3%)
方案 3:开发/调试环境全功能
适用:开发测试环境,需要最大可视化
hubble: enabled: true peerService: clusterDomain: "xxxx.local"
relay:
enabled: true # 需要 UI 依赖
ui:
enabled: true # 启用 Web UI
metrics:
enabled:
- dns
- drop
- tcp
- flow
- port-distribution
- icmp
- httpV2 # HTTP/2 流量统计
优点:
- ✅ 最强大的可视化
- ✅ 适合学习和调试
- ⚠️ 资源消耗较高
💡 针对你的情况的建议
基于你的环境(生产环境 + 性能敏感):
推荐配置:方案1.5(最小化 + Metrics)
hubble: enabled: true peerService: clusterDomain: "xxxx.local"
# 暂时不启用 Relay(节省资源)
relay:
enabled: false
# 暂时不启用 UI
ui:
enabled: false
# 但一定要启用 Metrics!
metrics:
enabled:
- dns # DNS 统计
- drop # 丢包(必须!)
- tcp # TCP 连接统计
- flow # 基础流量
# 如果有 Prometheus Operator
serviceMonitor:
enabled: false # 改为 true 如果有
为什么这样配置?
- ✅ Metrics 必须启用 - 否则无法监控丢包、流量异常
- ⚠️ Relay 暂时不启用 - 节省资源,需要时再启用
- ⚠️ UI 暂时不启用 - 生产环境用 Grafana 更好
- ✅ 性能影响最小 - 只增加 1-2% 开销
未来按需升级路径:
需要集群级流量查询时
helm upgrade cilium cilium/cilium --reuse-values
--set hubble.relay.enabled=true
需要 Web UI 时(需要先启用 Relay)
helm upgrade cilium cilium/cilium --reuse-values
--set hubble.ui.enabled=true
📝 总结对照表
| 组件 | 性能影响 | 资源消耗 | 生产推荐 | 你的场景推荐 |
|---|---|---|---|---|
| Hubble 基础 | <1% | 极低 | ✅ 必须 | ✅ 已启用 |
| Hubble Metrics | 1-2% | ~50MB/节点 | ✅ 强烈推荐 | ✅ 必须启用 |
| Hubble Relay | <0.5% | 1 Pod | ⚠️ 按需 | ⚠️ 按需(可以先不启用) |
| Hubble UI | 0% | 2 Pods | ❌ 可选 | ❌ 不推荐(用 Grafana) |