通过Hubble监控集群TCP及UDP流量
Hubble是基于Cilium和eBPF的Kubernetes网络可观测性平台。通过安装Hubble Relay和Hubble UI/CLI,您可以实时查看集群流量拓扑、排查网络延迟、拦截(Dropped)数据包并生成服务依赖图。
在开启了DataPlane V2的集群中,部署开源的可观测项目Hubble,将容器网络流量进行可视化展示,结合Prometheus的监控能力,可以实现容器网络可观测性。
前提条件
- 已经创建好开启DataPlane V2的CCE集群。
- 集群中已经安装好云原生监控插件,并开启监控数据上报至AOM服务。
- 集群中已经部署好hubble相关开源组件,详情请参见部署Hubble实现DataPlane V2网络可观测性。
更新cilium配置
为了节约集群资源,默认的cilium流量监控配置以节点为单位,监控指标无法定位到具体的工作负载,修改cilium-config的配置开启工作负载的指标标签。
- 通过kubectl连接集群,具体请参见kubectl连接集群。
- 创建cilium-config.yaml文件。
apiVersion: v1 kind: ConfigMap metadata: name: cilium-config namespace: kube-system data: enable-hubble: "true" hubble-disable-tls: "true" hubble-listen-address: :4244 hubble-metrics: dns drop tcp flow:labelsContext=source_ip,source_namespace,source_workload,source_pod,destination_ip,destination_namespace,destination_workload,destination_pod,traffic_direction port-distribution icmp http hubble-metrics-server: :9965
- 更新集群中的cilium-config配置,开启工作负载的指标标签。
kubectl apply -f cilium-config.yaml
- 重新启动cilium负载,并等待重启完成。
kubectl rollout restart daemonset yangtse-cilium -n kube-system
在AOM中配置指标监控
- 进入AOM查看指标。
- 登录AOM控制台,单击左侧菜单的“指标浏览”,在右侧下拉菜单选择集群云原生监控插件上报的Prometheus实例。
- 在下方的指标栏中选择“交互模式”页签,指标栏中搜索hubble暴露的浏量指标,通过下方的“条件”栏,可以根据标签筛选要查看的数据。

hubble暴露的流量指标有:
指标
说明
hubble_drop_total
被丢弃的请求总数
hubble_flows_processed_total
总流量数
hubble_icmp_total
icmp消息总数
hubble_lost_events_total
网络流数据或事件被丢弃总数
hubble_metrics_http_handler_request_duration_seconds_bucket
HTTP请求处理耗时
hubble_metrics_http_handler_request_duration_seconds_count
HTTP请求总次数
hubble_metrics_http_handler_request_duration_seconds_sum
HTTP请求的总持续时间
hubble_metrics_http_handler_requests_total
接收到的HTTP请求总数
hubble_port_distribution_total
按目标端口区分的数据流量分发总数
hubble_relay_pool_peer_connection_status
各个节点的当前的连接状态与节点数
hubble_tcp_flags_total
TCP标志位产生总数
- 监控集群中的TCP流量
在AOM的"指标浏览"中选择"语法模式",使用语句:
sum(irate(hubble_flows_processed_total[1m])) by (destination_workload)
此查询语句可以监控TCP协议下各个工作负载每秒被访问的次数。

- 将监控模板添加到仪表盘
- 在AOM左侧菜单选择“仪表盘”,在右侧仪表盘页面中选择已有的仪表盘。
- 在下拉菜单中选择集群云原生监控插件上报的Prometheus实例,单击页面中间的“添加图表”按钮。

- 填写图表标题,在语法模式下填写查询语句。
sum(irate(hubble_flows_processed_total[1m])) by (destination_workload)

- 单击右上角的“保存”按钮保存图表。
- 在AOM仪表盘页面上可以直接看到监控图表。
