GKE中Node Egress、Pod Egress等指标含义及节点带宽计算疑问
GKE Metrics Explorer指标解析与Pod间流量疑问解答
现象回顾
Egress bytes per pod = 0 Node bytes transmitted > Egress bytes per node Pod1 bytes transmitted + Pod2 bytes transmitted > Node bytes transmitted
1. Egress字节数与Tx(发送)字节数的区别
- Egress字节数:GKE中该指标仅统计发往集群外部的流量,包括公网、其他GKE集群、GCP云服务等。同一节点内Pod互访、Pod与节点本地服务的通信,都不属于Egress范畴,不会被计入。这就是你观察到Pod Egress为0的核心原因。
- Tx(发送)字节数:统计的是网络接口层面所有发出的字节,不管流量目的地是集群内还是外部,涵盖了节点内Pod互访流量、节点自身组件(如kubelet)的通信流量,以及真正的Egress流量。
2. 同一节点内Pod的流量路由逻辑
同一节点上的Pod互访流量不会经过节点的物理网卡,而是通过节点内核的容器网络栈(由CNI插件实现,比如虚拟网桥)直接转发:
- Pod1的流量先发送到本地虚拟网桥(如
cbr0) - 网桥根据Pod2的IP直接将流量转发到Pod2的虚拟网卡
- 整个流程完全在节点内核处理,不涉及物理网卡的收发,因此这类流量不会被计入节点Egress,但会被统计到Pod和节点的Tx字节数中。
3. 节点网络使用率的计算方式
- 分母:取节点的物理网卡出站带宽,这是节点物理层面的最大传输能力。
- 分子:必须用
Node Egress bytes,因为只有这个指标对应真正经过物理网卡发往集群外的流量。而Node Tx bytes包含了节点内部的无效流量(Pod互访、本地组件通信),这些流量不占用物理带宽,不能用来计算实际的网络使用率。 - 你看到
Node bytes transmitted > Egress bytes per node的差异,正是因为Tx指标包含了大量节点内部的流量。
4. 排查Pod网络资源占用的指标选择
- 若排查Pod对节点物理网络资源的占用(即消耗物理带宽的外部流量),查看Pod Egress bytes;
- 若排查Pod的全量发送流量(包括节点内互访的内部流量),查看Pod Tx bytes。
内容的提问来源于stack exchange,提问作者Dev Jain
相关产品推荐
相关产品推荐

