使用kubectl快速查看各个节点的CPU和内存占用量

本文章视频教程地址:https://www.bilibili.com/video/BV1TdxkedE1K

前言

笔者之前写过一篇文章关于在Kubernetes上安装 PrometheusGrafana 监控去查看Kubernetes各个节点的资源占用率,文章地址:https://blog.csdn.net/m0_51510236/article/details/132601350

但是有一个更方便的方法,就是直接使用 kubectl 命令查看各个节点的资源使用情况。具体的命令如下:

kubectl top nodes

但默认的执行结果是:
在这里插入图片描述

原因是你没有安装 metrics-servermetrics-server 的github地址为:https://github.com/kubernetes-sigs/metrics-server。

安装 metrics-server

根据代码仓库的Releases列表显示,最新版本为 v0.7.2
在这里插入图片描述

其中 v0.7.2 这个版本需要你的 Kubernetes 集群的版本为 1.19 或更高:
在这里插入图片描述

官方给出的安装命令为:

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

⚠️不要执行这个命令来安装 metrics-server,需要先将这个文件保存下来,并修改一些内容。可执行下面这行命令修改:

curl -LO https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

如果你是自己搭建的Kubernetes集群,你需要在 yaml 文件的 Deployment 当中添加这么一个执行参数:--kubelet-insecure-tls。如图加在约 137 行位置:
在这里插入图片描述

还有在 image 的配置中,默认镜像是 registry.k8s.io/metrics-server/metrics-server:v0.7.2 ,是在谷歌上拉取的,阿里云也有这个镜像,需要改成阿里云上的镜像: registry.aliyuncs.com/google_containers/metrics-server:v0.7.2,如图:
在这里插入图片描述

然后需要将 Deployment.spec.template.spec.hostNetwork 改为 false,如图:
在这里插入图片描述

修改好后的文件内容:

apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:k8s-app: metrics-serverrbac.authorization.k8s.io/aggregate-to-admin: "true"rbac.authorization.k8s.io/aggregate-to-edit: "true"rbac.authorization.k8s.io/aggregate-to-view: "true"name: system:aggregated-metrics-reader
rules:
- apiGroups:- metrics.k8s.ioresources:- pods- nodesverbs:- get- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:k8s-app: metrics-servername: system:metrics-server
rules:
- apiGroups:- ""resources:- nodes/metricsverbs:- get
- apiGroups:- ""resources:- pods- nodesverbs:- get- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:labels:k8s-app: metrics-servername: metrics-server-auth-readernamespace: kube-system
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:k8s-app: metrics-servername: metrics-server:system:auth-delegator
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:auth-delegator
subjects:
- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:k8s-app: metrics-servername: system:metrics-server
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:metrics-server
subjects:
- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: v1
kind: Service
metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system
spec:ports:- name: httpsport: 443protocol: TCPtargetPort: httpsselector:k8s-app: metrics-server
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system
spec:selector:matchLabels:k8s-app: metrics-serverstrategy:rollingUpdate:maxUnavailable: 0template:metadata:labels:k8s-app: metrics-serverspec:containers:- args:- --cert-dir=/tmp- --secure-port=10250- --kubelet-insecure-tls- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname- --kubelet-use-node-status-port- --metric-resolution=15simage: registry.aliyuncs.com/google_containers/metrics-server:v0.7.2imagePullPolicy: IfNotPresentlivenessProbe:failureThreshold: 3httpGet:path: /livezport: httpsscheme: HTTPSperiodSeconds: 10name: metrics-serverports:- containerPort: 10250name: httpsprotocol: TCPreadinessProbe:failureThreshold: 3httpGet:path: /readyzport: httpsscheme: HTTPSinitialDelaySeconds: 20periodSeconds: 10resources:requests:cpu: 100mmemory: 200MisecurityContext:allowPrivilegeEscalation: falsecapabilities:drop:- ALLreadOnlyRootFilesystem: truerunAsNonRoot: truerunAsUser: 1000seccompProfile:type: RuntimeDefaultvolumeMounts:- mountPath: /tmpname: tmp-dirhostNetwork: falsenodeSelector:kubernetes.io/os: linuxpriorityClassName: system-cluster-criticalserviceAccountName: metrics-servervolumes:- emptyDir: {}name: tmp-dir
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:labels:k8s-app: metrics-servername: v1beta1.metrics.k8s.io
spec:group: metrics.k8s.iogroupPriorityMinimum: 100insecureSkipTLSVerify: trueservice:name: metrics-servernamespace: kube-systemversion: v1beta1versionPriority: 100

然后执行该文件就可以安装成功了,同样我也修改好了这个文件并提交至github,可以啥也不改直接执行下面这样一行命令进行安装:

kubectl apply -f https://raw.githubusercontent.com/xiaohh-me/kubernetes-yaml/main/plugin/metrics-server/components-v0.7.2.yaml

执行完成如图:
在这里插入图片描述

可以执行这行命令查看是否安装成功:

kubectl get pod -n kube-system -o wide

成功运行如图:
在这里插入图片描述

使用 kubectl 查看 cpu 和内存占用率

接下来就可以执行这行命令查看 cpu 和内存占用率:

kubectl top nodes

执行结果如图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1550391.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

大模型(LLM) 是仅仅比 模型(Model) 更大吗?

我们日常经常提到模型 model,大模型LLM,大家都知道这两者之间的区别和联系吗? 只是如下图这样,大小的区别吗?下面我们对模型model和大模型LLM进行解释和描述 什么是模型? 模型是机器学习中一个核心概念&a…

matlab2019b-2024b knnclassify无法识别的问题(亲测,已解决)

matlab2019a-2024b 已经移除了knnclassify分类,修改了名称和功能,如果你还想使用它,就必须在2018版本以前的旧版本中找相关的工具箱(这是免费的哦,如果官网下载 需要付费)。 这里本人从2014a中分离出的工具…

JS设计模式之观察者模式:观察者与可观察对象的巧妙互动

一. 前言 在前端开发中,我们经常会遇到需要对用户的操作进行响应的场景,例如页面上的按钮点击、输入框内容变化等。为了实现这种响应式的设计,我们可以使用观察者模式来解耦各个组件之间的依赖关系。 本文将详细介绍观察者模式的原理和实现…

使用【apifox】进行压测-保姆级教程【无需脚本】

1.根据接口文档进行测试,写一个接口,能够调通即可 2.选择“从接口导入”,选择刚刚测试的接口 3.选择一个环境,我这里用的云服务器http://x.xx.xxx.xx (端口号写不写都行,我是加上了) 4.选性…

element-ui 通过按钮式触发日期选择器

element ui 写在前面1. 自定义的日期时间组件CustomDatePicker.vue2. 页面效果总结写在最后 写在前面 需求:elementui中日期时间选择器,目前只能通过点击input输入框触发日期选择器,我希望能通过其他方式触发日期选择器同时把input输入框去掉…

【IoT-NTN】系统消息SIB32信令分析

3GPP卫星通信发展迅速, TS36.331 R17中新增SIB32携带星历信息,本文对SIB32的信令内容进行了分析。 SystemInformationBlockType32 概述 SystemInformationBlockType32 是用于提供预测非连续覆盖的卫星辅助信息的系统信息块。这个信息块仅在非地面网络&…

初学者如何快速入门Python(详细攻略),从0到精通,不信你学不会!

近年来,人工智能领域的飞速发展极大地改变了各个行业的面貌。当前最新的技术动态,如大型语言模型和深度学习技术的发展,展示了深度学习和机器学习技术的强大潜力,成为推动创新和提升竞争力的关键。特别是PyTorch,凭借其…

刚面试完的前端面试题

今天晚上参加了一场长达40多分钟的技术面。我觉得面试官非常专业,问的问题也都是很棒的!自己很多知识都需要学习。所以我决定回想并记录下来。回答不对的地方欢迎大家指正! 我自己在小本本上回忆出来的大概就是26道题。后期我会持续更新我学习…

【测试-BUG篇】软件测试的BUG知识你了解多少呢?

文章目录 1. 软件测试的生命周期2. BUG3. BUG的生命周期4. 与开发人员起争执怎么办 1. 软件测试的生命周期 🍎软件测试 贯穿整个软件的生命周期; 🍎软件测试的生命周期是指测试流程; ①需求分析 用户角度:软件需求是…

资源管理5步法:优化你的项目管理

作为项目经理,负责交付项目是一项复杂且要求严格的任务。在缺乏必要的专业知识、工具、设备以及资金支持的情况下,成功完成项目几乎是不可能的。 因此,项目资源的规划与分配是项目启动前至关重要的环节。若未能妥善规划,将可能导…

测试卡(1)灰卡

#灵感# 灰卡为什么是18%?文章分为三部分,前部分,解释灰卡的定义,后部分是 市场买的18%灰卡的说明书,其中穿插了网络上搜到的灰卡使用案例。 目录 18% 中性灰卡应用说明 1) 曝光水平 例子:用灰…

有些硬盘录像机接入视频汇聚平台EasyCVR后通道不显示/显示不全,该如何处理?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。该平台不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能,还支持多种主流标准协议,如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T 1400协…

初识Linux以及Linux的基本命令

千呼万唤始出来,Linux系列的文章从今天起开始不定期更新,闲话少叙,我们直接进入正题 初识Linux 这一部分我不打算给大家讲Linux的发展史啥的,直接从系统方面开始介绍 首先,我们平时用win10或win11所看到的桌面以及各…

Pycharm 本地搭建 stable-diffusion-webui

一、下载工程源码 Github官方连接 https://github.com/AUTOMATIC1111/stable-diffusion-webui 二、Pycharm打开工程 1、设置环境 文件-设置-项目-Python解析器-添加解释器-添加本地解释器 Conda环境-创造新环境-Python版本3.10 注意一定要选择Python3.10版本,否…

985官宣:19名本科生,获国自然项目!

9月24日,据复旦大学教务处消息,国家自然科学基金委公布了2024年国家自然科学基金青年学生基础研究项目(本科生)立项情况,复旦大学共有19名基础学科专业本科生获得国家自然科学基金委资助。 此前,据武汉大学…

浮点数的这些特性你了解吗

问题1:下面的代码,输出结果是什么: public class CaclTest{public void test1(){float f 1.0F / 0.0F;System.out.println("f:" f)}public static void main(String[] args){CaclTest ct new CaclTest();ct.test1();}} A. 运行抛出异常:j…

vue3监听子组件的生命周期

1.Vue3使用vue&#xff0c;vue2使用hook template:<compG vue:mounted"doSomething"></compG>script://监听子组件生命周期let doSomething (e: any) > {console.log("没有啊11", e);}; 2.打印结果

誉天Linux云计算课程学什么?为什么保障就业?

一个IT工程师相当于干了哪些职业? 其中置顶回答生动而形象地描绘道&#xff1a; 一个IT工程师宛如一个超级多面手&#xff0c;相当于——加班狂程序员测试工程师实施工程师网络工程师电工装卸工搬运工超人。 此中酸甜苦辣咸&#xff0c;相信很多小伙伴们都深有体会。除了典…

macOS 开发环境配置与应用开发

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【LeetCode】动态规划—931. 下降路径最小和(附完整Python/C++代码)

动态规划—931. 下降路径最小和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化4.1 空间复杂度优化 5. 小总结 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 总结: 前言 在算法的学习…