分析kubernetes pod网络流量

时间:2020-05-12 09:24:23

标签: kubernetes kubernetes-ingress

全部

最近,我的云提供商对数据传输收取了更多费用。最终注意到,K8盒之一具有更多的数据传输。有没有办法我可以通过本地kubernetes命令找出Pod级网络流量,例如我们发送和接收的字节数?

谢谢 巴拉

1 个答案:

答案 0 :(得分:0)

kubectl top命令显示用法,而不是分配信息。分配是导致insufficient CPU问题的原因。在这个问题上,关于差异有很多困惑。

AFAICT,没有简单的方法来按Pod获取节点CPU分配的报告,因为请求是针对规范中的每个容器。即便如此,这还是很困难的,因为.spec.containers[*].requests可能有也可能没有limits / requests字段。 但是有类似kubectl-view-allocations的东西,您可以探索kube资源的使用和分配。它可以提供按名称空间,节点,pod分组并按资源名称过滤的结果。

kubectl-view-allocations [FLAGS] [OPTIONS]

FLAGS:
    -h, --help         Prints help information
    -z, --show-zero    Show lines with zero requested and zero limit and zero allocatable
    -V, --version      Prints version information

OPTIONS:
    -g, --group-by <group-by>...              Group informations (hierarchicaly) (default: -g resource -g node -g pod)
                                              [possible values: resource, node, pod]
    -n, --namespace <namespace>               Show only pods from this namespace
    -r, --resource-name <resource-name>...    Filter resources shown by name(s), by default all resources are listed

对于您而言,我认为最安全的选择是安装Heapstermetrics-servercAdvisorGrafana

Heapster为Kubernetes(版本v1.0.6及更高版本)以及包含它的平台启用了容器群集监视和性能分析。

Heapster收集并解释各种信号,例如计算资源的使用情况-使用此指标,您将发现通过特定的Pod,生命周期事件等传输更多数据时会遇到问题。Heapster支持多种数据源。

大部分可通过cAdvisor获得容器度量标准。 cAdvisor(容器顾问)使容器用户了解其运行容器的资源使用情况和性能特征。它是一个正在运行的守护程序,用于收集,聚合,处理和导出有关正在运行的容器的信息。具体来说,对于每个容器,它保留资源隔离参数,历史资源使用情况,完整历史资源使用情况的直方图和网络统计信息。此数据通过容器和整个机器导出。

另一方面,Grafana允许您查询,可视化,警告和了解收集的指标,无论它们存储在何处。与您的团队一起创建,探索和共享仪表板,并培养数据驱动的文化。

看看:kubernetes-metricsmetrics-server-installation

相关问题