我想要找到我的 Kubernetes Pod 每个核心的使用情况统计信息。
在我的 Linux 主机/Kubernetes 节点中,我用来mpstat
查找如下统计信息。
在我的例子中,我为 Kubernetes 容器分配了 2.5 个 CPU,当我mpstat
在容器内部尝试相同的命令时,我得到了与上面相同的详细信息,显示了所有主机 CPU(在我的情况下是 16 个)
我使用了kubectl top
命令,但它只显示了 pod 使用的总体 CPU,但没有显示分配给容器的每个 CPU 的统计信息。
Prometheuscontainer_cpu_usage_seconds_total
给出了类似的整体细节,但没有给出单独的 CPU 细节。
如何获取mpstat
如上所示的 Kubernetes pod 统计数据。
答案1
Akubectl 顶部 是用于列出所有正在运行的节点和 pod 及其资源利用率的命令。它为您提供每个正在运行的节点上的 CPU、内存和存储等资源利用率指标的快照。
Kubernetes 中的每个节点都带有顾问,它是一个容器监控工具,提供有关资源使用情况的详细信息,包括 CPU 和内存。kubectl 命令通过 metrics-server 从 cAdvisor 获取资源利用率指标。此命令需要度量服务器在服务器上正确配置并运行。
Metrics Server 是一个组件,用于公开 Kubernetes 对象(包括 Pod)的资源使用情况指标。尝试安装指标服务器或者你可以使用k9这是检查所有资源、CPU 和内存使用情况的简单方法。
您可以通过运行以下命令从 cgroup 获取 pod 的内存和 CPU 使用情况,而无需安装指标服务器或任何第三方工具:
1.运行以下命令进入 pod 的执行模式kubectl exec -it pod\_name -n namespace -- /bin/bash
2.对于 CPU 使用率运行cat /sys/fs/cgroup/cpu/cpuacct.usage
3.对于内存使用情况运行cat /sys/fs/cgroup/memory/memory.usage\_in\_bytes
笔记:将资源部分(请求和限制)添加到部署中,以便它可以根据 cgroup 计算使用情况,并且容器将遵守在 pod 级别设置的限制,并且此使用情况以字节为单位,可能因 pod 使用情况而异,并且这些值经常变化。