当前位置: 首页 > 知识库问答 >
问题:

检查kubernetes吊舱CPU和内存

姜楷
2023-03-14

我想看看kubernetes吊舱使用了多少内存和CPU。我为此运行了以下命令:

kubectl top pod podname --namespace=default

我收到以下错误:

W0205 15:14:47.248366    2767 top_pod.go:190] Metrics not available for pod default/podname, age: 190h57m1.248339485s
error: Metrics not available for pod default/podname, age: 190h57m1.248339485s

>

如果我们进入pod并运行linuxtop命令,我们会得到相同的输出吗?

共有3个答案

左丘成业
2023-03-14

>

  • 如文档中所述,您应该安装metrics server

    250m表示250毫CPU,CPU资源以CPU单位计量,单位为Kubernetes,相当于:

    • 1 AWS vCPU
    • 1 GCP核心
    • 1 Azure vCore
    • 1带有超线程的裸机Intel处理器上的超线程

    允许使用小数值。请求0.5 CPU的容器的CPU保证是请求1 CPU的容器的一半。您可以使用后缀m表示毫。例如100mCPU、100 milliCPU和0.1 CPU都是相同的。不允许精度高于1m。

    CPU总是作为绝对量而不是相对量被请求;0.1是单核、双核或48核机器上的CPU量相同。

    不,kubectl top pod podname显示给定pod的指标,Linux top和free在容器中运行,并基于Linux系统报告指标基于虚拟文件系统中存储的信息报告,他们不知道它运行的cgroup。

    这些链接有更多详细信息:

    • 为什么顶部和自由内部容器不显示正确的容器内存

  • 韩楷
    2023-03-14

    <代码>kubectl顶级吊舱

    仅供参考,这是在v1.16.2上

    庞安晏
    2023-03-14

    检查没有计量服务器或任何第三方工具

    如果您想在不安装任何第三方工具的情况下检查pod的cpu/内存使用情况,那么您可以从cgroup获取pod的内存和cpu使用情况。

    1. 转到pod的exec模式,kubectl exec-it pod\u名称--/bin/bash
    2. 转到cd/sys/fs/cgroup/cpu查看cpu使用率运行。用法
    3. 转到cd/sys/fs/cgroup/memory(cd/sys/fs/cgroup/memory)查看内存使用情况run(运行)cat memory(cat内存)。用法(以字节为单位)

    确保已将资源部分(请求和限制)添加到部署中,以便它可以基于cgroup计算使用量,并且容器将遵守在pod级别设置的限制

    注意:此用法以字节为单位。这可能因pod的使用而有所不同,并且这些值经常变化。

     类似资料:
    • 我需要通过prometheus查询获得kubernetes吊舱中的CPU和内存使用情况。有人能帮忙吗?

    • 在kubernetes仪表板上,有一个pod,其中内存使用情况(字节)显示为。 这个pod保存了使用Xms512m-Xmx1024m运行的java应用程序,该应用程序位于kubernetes部署文件中- 我已启用gc日志,并在pod日志中看到这些日志: kubernetes是如何到达用法的?如果我理解正确,目前的用法只有: 运行ps显示除了这个java应用程序之外,pod上没有其他进程在运行<任何

    • 我相信字段选择器可能有一个bug,但只是想知道是否有任何修复或解决方案的细节。

    • 我对Kubernetes是新来的。 我发现了2个pod优先级选项-优先级类别和服务质量。它们之间有什么不同? (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/https://kubernetes.io/docs/tasks/configure-pod-container/quality-servi

    • 我的要求是在自定义指标上扩展POD,如队列中的挂起消息,PODS必须增加以处理作业。在kubernetes,Scale up在普罗米修斯适配器和普罗米修斯操作员中工作得很好。 我在pods中有长时间运行的进程,但HPA检查自定义度量并试图缩小规模,因为这个进程杀死了操作的中间并丢失了消息。我如何控制HPA只杀死没有进程运行的自由豆荚。 序列查询:‘{namespace=“default”,serv