分析 kubernetes pod 网络流量

bal*_*hen 6 kubernetes kubernetes-ingress

全部,

很晚了,我的云提供商对数据传输收取更高的费用。最后注意到其中一个 K8 Pod 正在传输更多数据。有没有一种方法可以找出 pod 级别的网络流量,例如使用本机 kubernetes 命令传输和接收了多少字节?

谢谢巴拉

Mal*_*ata -5

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
Run Code Online (Sandbox Code Playgroud)

对于你的情况,我认为最安全的选择是安装Heapstermetrics-servercAdvisorGrafana

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

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

容器指标主要通过 cAdvisor 提供。cAdvisor(Container Advisor)为容器用户提供对其运行容器的资源使用情况和性能特征的了解。它是一个正在运行的守护进程,用于收集、聚合、处理和导出有关正在运行的容器的信息。具体来说,它为每个容器保留资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。该数据由容器和机器范围导出。

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

看一下:kubernetes-metricsmetrics-server-installation

  • 这根本没有解决这个问题(关于网络利用)。 (2认同)