【K8S问题系列 | 10】在K8S集群怎么查看各个pod占用的资源大小?【已解决】

要查看 Kubernetes 集群中各个 Pod 占用的资源大小(包括 CPU 和内存),可以使用以下几种方法:

1. 使用 kubectl top 命令

kubectl top 命令可以快速查看当前 Pod 的 CPU 和内存使用情况。需要确保已安装并配置了 Metrics Server。

查看所有 Pod 的资源使用情况

bash 复制代码
kubectl top pods --all-namespaces

示例输出

plaintext 复制代码
NAMESPACE     NAME           CPU(cores)   MEMORY(bytes)
default       my-app-1      500m         128Mi
default       my-app-2      300m         256Mi
kube-system    kube-dns      100m         64Mi

说明

  • CPU(cores): 显示 Pod 当前使用的 CPU 核心数。
  • MEMORY(bytes): 显示 Pod 当前使用的内存量。

2. 使用 kubectl describe 命令

kubectl describe 命令可用于查看特定 Pod 的详细信息,包括资源请求和限制。

查看特定 Pod 的详细信息

bash 复制代码
kubectl describe pod <pod-name> -n <namespace>

示例输出

plaintext 复制代码
Name:           my-app-1
Namespace:      default
Priority:       0
Node:          node-1/192.168.1.1
Start Time:    Mon, 01 Nov 2023 10:00:00 +0000
Labels:         app=my-app
Annotations:    <none>

Status:         Running
IP:             10.244.1.2
Containers:
  app-container:
    Container ID:   docker://abcdef123456
    Image:          my-app-image:latest
    Image ID:       docker-pullable://my-app-image@sha256:...
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Mon, 01 Nov 2023 10:00:01 +0000
    Ready:          True
    Restart Count:  0
    Limits:
      cpu:     1
      memory:  1Gi
    Requests:
      cpu:     500m
      memory:  256Mi

说明

  • LimitsRequests: 表示 Pod 对 CPU 和内存的请求和限制。虽然这并不显示实际使用情况,但可以帮助理解 Pod 的资源配置。

3. 使用 Prometheus 和 Grafana

如果您已经配置了 Prometheus 和 Grafana,可以在 Grafana 中查看 Pod 的资源使用情况,并创建可视化仪表板。

在 Grafana 中查看

  1. 登录 Grafana。
  2. 创建一个新的仪表板或查看现有的仪表板。
  3. 使用 Prometheus 查询,查看 Pod 的 CPU 和内存使用情况。
示例 Prometheus 查询
  • 查询所有 Pod 的 CPU 使用情况:

    plaintext 复制代码
    sum(rate(container_cpu_usage_seconds_total{container_name!="POD"}[5m])) by (pod_name)
  • 查询所有 Pod 的内存使用情况:

    plaintext 复制代码
    sum(container_memory_usage_bytes{container_name!="POD"}) by (pod_name)

4. 使用 Kube Metrics API

您还可以直接访问 Kubernetes Metrics API(如果已启用 Metrics Server),以获取 Pod 的 CPU 和内存使用情况。

示例命令

bash 复制代码
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/pods" | jq .

说明

  • 这个命令将返回集群中所有 Pod 的 CPU 和内存使用情况,返回的数据格式为 JSON。

总结

通过以上方法,您可以轻松查看 Kubernetes 集群中各个 Pod 的资源使用情况,包括 CPU 和内存。如果需要更深入的监控和可视化,建议结合使用 Prometheus 和 Grafana。

相关推荐
武子康1 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
舒一笑2 小时前
我的开源项目-PandaCoder迎来史诗级大更新啦
后端·程序员·intellij idea
@昵称不存在3 小时前
Flask input 和datalist结合
后端·python·flask
zhuyasen3 小时前
Go 分布式任务和定时任务太难?sasynq 让异步任务从未如此简单
后端·go
东林牧之4 小时前
Django+celery异步:拿来即用,可移植性高
后端·python·django
勇哥的编程江湖4 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器
超浪的晨4 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
AntBlack5 小时前
从小不学好 ,影刀 + ddddocr 实现图片验证码认证自动化
后端·python·计算机视觉
Pomelo_刘金5 小时前
Clean Architecture 整洁架构:借一只闹钟讲明白「整洁架构」的来龙去脉
后端·架构·rust
双力臂4045 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试