当前位置: 首页 > news >正文

kubectl top pod输出的cpu、内存使用率是怎么计算的

使用 kk 创建 k8s 集群

文档:https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md

1、下载 kk

export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -
yum -y install conntrack socat

2、生成配置文件,根据环境修改配置文件
注意: 由于 Kubernetes 暂不支持大写 NodeName, hostname 中包含大写字母将导致后续安装过程无法正常结束

./kk create config --with-kubernetes v1.24.1 -f panbuhei-k8s.yml

3、使用配置文件创建 k8s 集群

./kk create cluster -f panbuhei-k8s.yml

4、使用配置文件为 k8s 集群添加节点
将新节点的信息添加到集群配置文件,然后应用更改。

./kk add nodes -f panbuhei-k8s.yml

·

Metrics Server

https://github.com/kubernetes-sigs/metrics-server
https://kubernetes.io/zh-cn/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/

安装 metrics-server

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

默认安装时,pod会因为TLS验证失败而一直处于非Running状态,日志中会有报错: x509: cannot validate certificate for 192.168.1.3 because it doesn’t contain any IP SANs" node=“panbuhei”。这时,修改deployment在args部分增加--kubelet-insecure-tls配置可以禁用TLS验证。

kubectl top pod查看cpu测试

1、创建一个nginx工作负载,yaml如下:我们设置cpu的限制为500m,压测时看pod最大可以使用的cpu量。

apiVersion: apps/v1
kind: Deployment
metadata:annotations:labels:app: nginxname: nginxnamespace: default
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginxname: nginxresources:limits:cpu: 500mrequests:cpu: 100m

2、使用ab命令进行压测。

# 安装ab命令:yum -y install httpd-devel
ab -c 1000 -n 10000000  http://10.233.122.16/

3、使用kubectl top pod查看。

# 这里需要多次执行命令查看
[root@panbuhei ~]# kubectl top pod
NAME                     CPU(cores)   MEMORY(bytes)
nginx-74477ffc8c-lkkzk   500m         3Mi

·

kubectl top pod 查看内存测试

kubectl top pod命令通过与kubelet节点上运行的cAdvisor(容器监控代理)进行通信,获取每个Pod中各个容器的CPU使用量和内存使用量。然后,它将这些值与Pod的请求资源(在Pod定义中指定的资源限制和请求)进行比较,并计算出CPU使用率和内存使用率。

计算CPU使用率时,kubectl top pod使用的是CPU使用量(CPU usage)除以CPU请求量(CPU request),然后乘以100。这表示CPU使用量相对于请求量的百分比。

计算内存使用率时,kubectl top pod使用的是内存使用量(Memory usage)除以内存请求量(Memory request),然后乘以100。这表示内存使用量相对于请求量的百分比。

请注意,这些计算是基于从kubelet节点上获取的实时指标数据进行的,因此可以提供近似的使用率数据。实际的计算可能会因资源的精确度、采样间隔和聚合方式而有所不同。

··

kubectl top pod命令实际上是通过kubelet的metrics API获取指标数据。您可以直接调用kubelet的metrics API来获取Pod的CPU和内存使用量。在命令行中运行以下命令:

curl -k https://<kubelet-node>:10250/stats/summary

这将返回一个JSON响应,其中包含有关节点上所有Pod的指标数据。您可以在响应中查找您感兴趣的Pod,并检查其CPU和内存使用量。

检查cAdvisor的指标:kubelet使用cAdvisor来收集容器的指标数据。您可以直接访问cAdvisor的metrics API来获取容器的CPU和内存使用量。在命令行中运行以下命令:

curl -k https://<kubelet-node>:4194/api/v1.3/subcontainers/

这将返回一个JSON响应,其中包含有关节点上所有容器的指标数据。您可以在响应中查找您感兴趣的容器,并检查其CPU和内存使用量。

http://www.lryc.cn/news/69657.html

相关文章:

  • Spring和SpringBoot常用注解(持续更新)
  • redis做异步消息处理
  • 图书管理系统可行性分析报告
  • 比较难掌握的几道数据库面试题及答案
  • AI已经成立社区了,一个个比真人还真
  • Qt实现DES ECB加密解密
  • 拼多多新阶段,透露出不寻常
  • 使用底层代码(无框架)实现卷积神经网络理解CNN逻辑
  • PID单环控制(位置环)
  • 内存基础知识
  • 快速入门matlab——运算方法
  • 2009.03-2022.06华证ESG季度评级(季度)
  • 【大数据模型】LeonardoAi让心中所想跃然纸上
  • 如何区别BI、大数据、信息化和数字化转型
  • ESP32-C2开发板Homekit例程
  • 快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验
  • 深度学习图像识别模型:递归神经网络
  • 上门家教预约小程序开发 良师就在你身边
  • CMake Practice 学习笔记五--cmake常用变量
  • Facebook 广告效果越来越差,怎么办?
  • Netty核心组件模块(三)
  • k8s 集群搭建详细教程
  • 国有行面试:掌握这11个测评要素
  • 云视如何实现流量转化
  • Metersphere+jar+beanshell+连接linux
  • 前端开发工程师如何提升个人审美
  • 【软件测试】Python自动化软件测试算是程序员吗?
  • react函数组件常用的几个钩子函数
  • 如何进行大数据测试
  • java版本企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发