kubectl top 命令可以很方便地查看 k8s 集群中部署应用的实际资源使用情况。
使用 kubectl top 命令需要先部署 metrics 组件,metrics 的部署请参考下面文章:
helm部署metrics-server

  • 查看指定命名空间资源使用情况
# 统计该命令空间的 pod 数量
[root@master1 ~]# kubectl get pod -n sentry |wc -l
37
# 查看每个 pod 的资源使用(CPU/内存)
[root@master1 ~]# kubectl top pod -n sentry
W0223 17:52:34.971648   61956 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
NAME                                CPU(cores)   MEMORY(bytes)
sentry-clickhouse-0                 2m           226Mi
sentry-clickhouse-1                 7m           281Mi
sentry-clickhouse-2                 2m           245Mi
sentry-cron-56cbcf6976-mcm74        2m           142Mi
sentry-kafka-0                      3m           404Mi
sentry-kafka-1                      4m           397Mi
...
# 统计该命令空间所有 pod 的 CPU 使用(单位:m)
[root@master1 ~]# kubectl top pod -n sentry --use-protocol-buffers  |tail -n +2 |awk '{print $2}' |cut -dm -f1 |awk '{sum+=$1}END{print sum}'
260
# 统计该命令空间所有 pod 的内存使用(单位:Mi)
[root@master1 ~]# kubectl top pod -n sentry --use-protocol-buffers  |tail -n +2 |awk '{print $3}' |cut -dm -f1 |awk '{sum+=$1}END{print sum}'
8861
  • 查看所有命名空间的资源使用情况
# 查看每个 pod 的资源使用(CPU/内存)
[root@master1 ~]# kubectl top pod -A
W0223 17:54:23.758459   65143 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
NAMESPACE                      NAME                                                  CPU(cores)   MEMORY(bytes)
cattle-system                  cattle-cluster-agent-648c79b5cd-ddqq5                 11m          220Mi
cattle-system                  cattle-cluster-agent-648c79b5cd-rkvzz                 15m          296Mi
default                        apisix-85cdf966dc-52b5x                               15m          275Mi
default                        apisix-dashboard-564b455b7-pr9wb                      1m           18Mi
default                        apisix-etcd-0                                         293m         85Mi
default                        busybox                                               0m           0Mi
...
# 统计集群所有 pod 数量
[root@master1 ~]# kubectl get pod -A |wc -l
257
# 统计集群所有 pod 的 CPU 使用(单位:m)
[root@master1 ~]# kubectl top pod -A --use-protocol-buffers  |tail -n +2 |awk '{print $3}' |cut -dm -f1 |awk '{sum+=$1}END{print sum}'
4827
# 统计集群所有 pod 的内存使用(单位:Mi)
[root@master1 ~]# kubectl top pod -A --use-protocol-buffers  |tail -n +2 |awk '{print $4}' |cut -dm -f1 |awk '{sum+=$1}END{print sum}'
53608
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐