Kubernetes 集群分析查看内存,CPU

Kubernetes方式

top命令查看所有pod,nodes中内存,CPU使用情况

查看pod

root @ master ?  ~  kubectl top pod -n irm-server
NAME                                   CPU(cores)   MEMORY(bytes)
test-ecd-server-56b77d9fbb-zfctt       1m           1529Mi
test-flow-server-b477756f-2s5bc        1m           3006Mi
test-huishi-api-86dcfdb7c5-jtcpt       0m           1829Mi
test-huishi-message-5d4b456b88-n8xl5   241m         344Mi
test-huishi-schedule-bc5f5d4d5-z22gq   3m           510Mi
test-huishi-server-6f875487d7-9rzpd    44m          1483Mi
test-irm-bd9444948-rwtgn               1m           1270Mi
test-irm-task-89f65f5bd-zht2x          0m           1282Mi
test-order-server-5fcc5575bd-67c4r     32m          1066Mi
test-payment-6df4459864-5d8xl          1m           634Mi
test-urule-54f4b8f84f-l5xbm            1m           2382Mi   

查看具体某一个pod

root @ master ?  ~  kubectl top pod test-huishi-server-6f875487d7-9rzpd -n irm-server
NAME                                  CPU(cores)   MEMORY(bytes)
test-huishi-server-6f875487d7-9rzpd   36m          1489Mi 

查看nodes

root @ master ?  ~  kubectl top nodes -n irm-server
NAME      CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%
master    225m         9%        2853Mi          25%
node1     219m         3%        18990Mi         65%
node11    61m          6%        4236Mi          31%
node12    2344m        36%       27839Mi         101%
node2     76m          7%        7950Mi          59%
node4     106m         10%       8151Mi          61%
node5     123m         12%       4877Mi          92%
node6     129m         12%       5614Mi          42%
node7     58m          5%        3738Mi          28%
node8     132m         6%        9098Mi          57%
node9     60m          6%        3017Mi          22%  

查看具体某一个node

root @ master ?  ~  kubectl top nodes node1 -n irm-server
NAME      CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%
node1     222m         3%        19009Mi         65%   

上面使用nodes,node都可以

进入容器pod内部查看

root @ master ?  ~  kubectl exec test-huishi-server-6f875487d7-9rzpd -it sh -n irm-server
/home # jps 1
sh: jps: not found
/home # jstack 1
sh: jstack: not found
/home # exit
command terminated with exit code 127

docker容器内部没有jstack命令

Docker方式

找到具体pod所在的节点,进入使用docker命令查看具体的信息

docker top命令查看

[[email protected] ~]# docker ps -a |grep huishi-server
73c1189ddd0e        18.16.200.191:5000/test/huishi-server         "/bin/sh -c 'java $J…"   20 hours ago        Up 20 hours                                    k8s_test-huishi-server_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0
ed1a36493259        gcr.io/google_containers/pause-amd64:3.0      "/pause"                 20 hours ago        Up 20 hours                                    k8s_POD_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0

[[email protected] ~]# docker top 73c1189ddd0e
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                3439                3416                0                   Dec18               ?                   00:11:41            java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Xms1024M -Duser.timezone=GMT+08 -Dfile.encoding=UTF-8 -javaagent:/data/jacocoagent.jar=includes=*,output=file,append=true,destfile=/data/log/huishi-server/jacoco.exec -jar /home/huishi-server.jar

docker stats 命令查看

docker stats 命令用来返回运行中的容器的实时数据流,

默认情况下,stats 使用参数-a或者--all,命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。

[[email protected] ~]# docker stats -a

CONTAINER ID        NAME                                                                                                                                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
1ad181f01c76        k8s_POD_test-capital-schedule-6468f8774f-2s6dd_common-server_78d133b9-21f7-11ea-932e-525400506c6a_0                                 0.00%               1.766MiB / 30.89GiB   0.01%               0B / 0B             0B / 0B             1
73c1189ddd0e        k8s_test-huishi-server_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0                        0.04%               1.178GiB / 2GiB       58.88%              0B / 0B             0B / 254kB          68
ed1a36493259        k8s_POD_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0                                       0.00%               1.25MiB / 30.89GiB    0.00%               0B / 0B             0B / 0B             1
05c08624b3d7        k8s_POD_test-p2p-bms-7db78b7c46-9vvnt_common-server_759c4604-1c7e-11ea-932e-525400506c6a_0                                          0.00%               1.543MiB / 30.89GiB   0.00%               0B / 0B             0B / 0B             1
9013e1d0a243        k8s_POD_test-institution-6569774458-t8sk9_institution-server_f35e22c0-1a2e-11ea-932e-525400506c6a_0                                 0.00%               1.578MiB / 30.89GiB   0.00%               0B / 0B             0B / 0B             1

输出内容:

[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:

[[email protected] ~]# docker stats --no-stream
CONTAINER ID        NAME                                                                                                                                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
1ad181f01c76        k8s_POD_test-capital-schedule-6468f8774f-2s6dd_common-server_78d133b9-21f7-11ea-932e-525400506c6a_0                                 0.00%               1.766MiB / 30.89GiB   0.01%               0B / 0B             0B / 0B             1
73c1189ddd0e        k8s_test-huishi-server_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0                        1.72%               1.178GiB / 2GiB       58.89%              0B / 0B             0B / 254kB          68
ed1a36493259        k8s_POD_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0                                       0.00%               1.25MiB / 30.89GiB    0.00%               0B / 0B             0B / 0B             1
05c08624b3d7        k8s_POD_test-p2p-bms-7db78b7c46-9vvnt_common-server_759c4604-1c7e-11ea-932e-525400506c6a_0                                          0.00%               1.543MiB / 30.89GiB   0.00%               0B / 0B             0B / 0B             1
9013e1d0a243        k8s_POD_test-institution-6569774458-t8sk9_institution-server_f35e22c0-1a2e-11ea-932e-525400506c6a_0                                 0.00%               1.578MiB / 30.89GiB   0.00%               0B / 0B             0B / 0B             1
366e27c0265f        k8s_debug-agent_debug-agent-h88sf_kube-system_263ac99f-133f-11ea-932e-525400506c6a_0                                                0.00%               10.3MiB / 30.89GiB    0.03%               0B / 0B             0B / 0B             14

格式化输出

[[email protected] ~]# docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
CONTAINER           NAME                                                                                                                                CPU %               MEM USAGE / LIMIT
1ad181f01c76        k8s_POD_test-capital-schedule-6468f8774f-2s6dd_common-server_78d133b9-21f7-11ea-932e-525400506c6a_0                                 0.00%               1.766MiB / 30.89GiB
73c1189ddd0e        k8s_test-huishi-server_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0                        0.32%               1.178GiB / 2GiB
ed1a36493259        k8s_POD_test-huishi-server-7f4f5c5f8c-kqzrw_irm-server_2bc27a95-216a-11ea-932e-525400506c6a_0                                       0.00%               1.25MiB / 30.89GiB
05c08624b3d7        k8s_POD_test-p2p-bms-7db78b7c46-9vvnt_common-server_759c4604-1c7e-11ea-932e-525400506c6a_0                                          0.00%               1.543MiB / 30.89GiB
9013e1d0a243        k8s_POD_test-institution-6569774458-t8sk9_institution-server_f35e22c0-1a2e-11ea-932e-525400506c6a_0                                 0.00%               1.578MiB / 30.89GiB
366e27c0265f        k8s_debug-agent_debug-agent-h88sf_kube-system_263ac99f-133f-11ea-932e-525400506c6a_0                                                0.05%               10.3MiB / 30.89GiB

上面的命令中我们只输出了 Name, CPUPerc 和 Memusage 三列。

下面是自定义的格式中可以使用的所有占位符:

.Container 根据用户指定的名称显示容器的名称或 ID。
.Name 容器名称。
.ID 容器 ID。
.CPUPerc CPU 使用率。
.MemUsage 内存使用量。
.NetIO 网络 I/O。
.BlockIO 磁盘 I/O。
.MemPerc 内存使用率。
.PIDs PID 号。

有了这些信息我们就可以完全按照自己的需求或者是偏好来控制 docker stats 命令输出的内容了。

JSON格式输出

docker stats --no-stream --format "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}"

{"container":"1ad181f01c76","memory":{"raw":"1.766MiB / 30.89GiB","percent":"0.01%"},"cpu":"0.00%"}
{"container":"73c1189ddd0e","memory":{"raw":"1.178GiB / 2GiB","percent":"58.90%"},"cpu":"0.33%"}
{"container":"ed1a36493259","memory":{"raw":"1.25MiB / 30.89GiB","percent":"0.00%"},"cpu":"0.00%"}
{"container":"05c08624b3d7","memory":{"raw":"1.543MiB / 30.89GiB","percent":"0.00%"},"cpu":"0.00%"}
{"container":"9013e1d0a243","memory":{"raw":"1.578MiB / 30.89GiB","percent":"0.00%"},"cpu":"0.00%"}
{"container":"366e27c0265f","memory":{"raw":"10.3MiB / 30.89GiB","percent":"0.03%"},"cpu":"0.00%"}
{"container":"9f206bab70fd","memory":{"raw":"1.465MiB / 30.89GiB","percent":"0.00%"},"cpu":"0.00%"}
{"container":"7a34c4cb664f","memory":{"raw":"1.555MiB / 30.89GiB","percent":"0.00%"},"cpu":"0.00%"}

容器内部查看分析

参考:

kubectl 命令技巧大全

原文地址:https://www.cnblogs.com/hongdada/p/12066802.html

时间: 2024-10-03 17:47:22

Kubernetes 集群分析查看内存,CPU的相关文章

GlusterFs卷类型分析及创建、使用(结合kubernetes集群分析)

引言 本文通过对卷类型的分析对比,来帮助读者选取生产环境最符合服务的挂载存储,命令可结合<glusterfs详解及kubernetes 搭建heketi-glusterfs>进行实验,下面进入正题 几种卷类型 基础卷:布式卷(distribute).条带卷(stripe).复制卷(replica).纠错卷(Dispersed ) 复合卷:分布式条带卷(distribute stripe).分布式复制卷(distribute replica).条带复制卷(stripe replica).分布式条

Just 5分钟!使用k3s部署轻量Kubernetes集群快速教程

大小仅有40MB的k3s为想要节省开销进行开发和测试的企业提供了一个很好的选择.本文将用一种极为简洁的方式,教你在5分钟之内使用k3s部署轻量Kubernetes集群. 本文来自:Rancher Labs Kubernetes已经改变了如何大规模部署和管理容器化工作负载.现在开发人员面临的挑战主要在于设置过程的复杂性和资源需求量巨大.如果你深受内存不足的困扰,想要部署轻量级Kubernetes集群来减少内存占用,那么你一定要考虑由Rancher Labs发布的轻量级Kubernetes发行版--

kube-liveboard: kubernetes集群可视化工具

kube-liveboard 随着kubernetes 集群的增大,对于集群数据选取恰当的形式进行展示有助于直观反映集群的状态,方便发现集群的短板,了解集群的瓶颈.因此,笔者做了kube-liveboard这个项目用以实现以上目标,实现集群状态的可视化. 从apiserver中可以获取所有的资源信息,社区目前有kube-state-metrics项目对各项资源进行分别的统计,并形成metrics接口.笔者自己也开发了一个类似的项目,kube-cluster-state,用以统计比如每个node上

Kubernetes集群

Kubernetes已经成为当下最火热的一门技术,未来一定也会有更好的发展,围绕着云原生的周边产物也越来越多,使得上云更加便利更加有意义,本文主要讲解一些蔚来汽车从传统应用落地到Kubernetes集群的一些实践经验,提供给大家在落地之前的一些思考和注意点,并且让大家在实施的时候能够有一些借鉴,提供一些使用过程中的注意事项.项目背景 Docker诞生于2013年初,随着时间的推移Docker项目也逐渐火热起来,也形成了自己的生态,为了能够灵活调度容器,编排技术也变得非常重要,Swarm,Meso

kubernetes集群安装部署

部署环境说明: 1.CENTOS 7.4 2.Docker version 17.05.0 3.etcd Version: 3.3.8 4.flannel-v0.10.0 node节点上运行: Kubelet kube-proxy Docker flannel MASTER节点上运行: Etcd flannel kube-apiserver kube-controller-manager kube-scheduler IP    Address Role CPU Memory 192.168.1

kubeadm搭建kubernetes集群

一.环境准备首先我的三个ubuntu云主机的配置如下 cpu数量 内存 磁盘 Ubuntu 2 8G 20G 18.04LTS 而且能保证三台机器都能连接外网这里的所有命令都是在root用户下操作的二.安装 1.在所有的节点上安装Docker和kubeadm [email protected]:~# apt-get install curl -y [email protected]:~# curl -s https://packages.cloud.google.com/apt/doc/apt-

安装部署Kubernetes集群实战

kubernetes概述: Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制.Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本. 通过kubernetes可以实现的功能: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 我们的目

阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 年阿里巴巴 双11?核心系统 100% 以云原生的方式上云,完美支撑了?54.4w 峰值流量以及?2684 亿的成交量.背后承载海量交易的计算力就是来源于容器技术与神龙裸金属的完美融合. 集团上云机器资源形态 阿里巴巴 双11 采用三地五单元架构,除 2 个混部单元外,其他 3 个均是云单元.神龙机型经过

在 Kubernetes 集群快速部署 KubeSphere 容器平台

KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器. 前提条件 Kubernetes 版本: 1.13.0 ≤ K8s version < 1.16: Helm,版本 >= 2.10.0(不支持 helm 2.16.0 #6894),且已安装了 Tiller,参考 如何安装与配置 Helm: 集群的可用 CPU > 1 C,可用内存 > 2 G: 集群已