24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩
一、概述
Metrics-Server组件目的:获取集群中pod、节点等负载信息;
hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod;

参考链接:
资源指标管道 | Kubernetes
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server
GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
二、安装部署Metrics-Server组件
就是给k8s集群安装top命令的意思;
1,下载Metrics-Server资源清单
· 第一种方式:github下载
[root@k8s231 metricsserver]# wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
· 第二种方式:本地上传安装包
百度云盘;
链接:https://pan.baidu.com/s/1axn44_AsbHQxIMw9nuNVMw?pwd=jtqb
提取码:jtqb
2,编辑Metrics-Server的资源清单
[root@k8s231 metricsserver]# vim high-availability-1.21+.yaml
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
k8s-app: metrics-server
namespaces:
- kube-system
topologyKey: kubernetes.io/hostname
containers:
- args:
#启动允许使用不安全的证书
- --kubelet-insecure-tls
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
#image: registry.k8s.io/metrics-server/metrics-server:v0.7.0
image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.3

3,创建Metrics-Server资源
[root@k8s231 metricsserver]# kubectl apply -f high-availability-1.21+.yaml
4,验证Metrics-Server是否成功安装
· 查看pod
[root@k8s231 metricsserver]# kubectl get pods -A

· 使用top命令测试是否管用
查节点的top值
[root@k8s231 metricsserver]# kubectl top node

查看pod的top值
[root@k8s231 metricsserver]# kubectl top pods -A

三、hpa资源实现pod水平伸缩(自动扩缩容)
1,当资源使用超一定的范围,会自动扩容,但是扩容数量不会超过最大pod数量;
2,扩容时无延迟,只要监控资源使用超过阔值,则会直接创建pod;
3,当资源使用率恢复到阔值以下时,需要等待一段时间才会释放,大概时5分钟;
1,编辑deployment资源
[root@k8s231 hpa]# cat deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: dm-hpa
spec:
replicas: 1
selector:
matchLabels:
k8s: xinjizhiwa
template:
metadata:
labels:
k8s: xinjizhiwa
spec:
containers:
- name: c1
image: centos:7
command:
- tail
- -f
- /etc/hosts
resources:
requests:
cpu: "50m"
limits:
cpu: "150m"
2,编写hpa资源清单
[root@k8s231 hpa]# cat hpa.yaml
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: hpa-tools
spec:
#指定pod最大的数量是多少(自动扩容的上限)
maxReplicas: 10
#指定pod最小的pod数量是多少(自动缩容的下限)
minReplicas: 2
#弹性伸缩引用的目标是谁?
scaleTargetRef:
#目标资源的api
apiVersion: "apps/v1"
#目标资源的类型kind
kind: Deployment
#目标资源的名称metadata-name是什么
name: dm-hpa
#使用cpu阈值(使用到达多少,开始扩容、缩容)
#95%
targetCPUUtilizationPercentage: 95
3,创建hpa和deploy资源
[root@k8s231 hpa]# kubectl apply -f .
4,查看hpa资源
[root@k8s231 hpa]# kubectl get hpa -o wide

到这里,就已经实现了自动扩缩容的pod副本了;
至此,咱们的metrics-server组件和hpa资源,就学习完毕了;
四、压测测试
1,进入pod,安装stress工具
· 进入pod容器
[root@k8s231 hpa]# kubectl exec dm-hpa-5bb4dd448d-ks2rt -it -- sh
· 安装aili源和epel源
sh-4.2# yum -y install wget
sh-4.2# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sh-4.2# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
· 安装压测工具
sh-4.2# yum -y install stress
2,开始使用命令压测pod
sh-4.2# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 20m
3,查看hpa资源的负载情况
[root@k8s231 ~]# kubectl get hpa -o wide


可以看到:
1,我们创建的deploy资源只有一个副本;
2,我们创建的hpa资源之后,设置最小值是2,最大值是10 ;
3,我们在查看pod,可以看见,pod变成了2个;
4,我们进入容器,开始压测,将负载压测到超过95%;
5,再次查看pod,发现变成了3个,自动创建了一个;
6,关闭压测,5分钟后,pod有回归到了2个;
7,至此,hpa的pod自动伸缩,测试完毕;
相关文章:
24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩
一、概述 Metrics-Server组件目的:获取集群中pod、节点等负载信息; hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod; 参考链接: 资源指标管道 | Kubernetes https://github.com/kuberne…...
Spring RabbitMQ 配置多个虚拟主机(vhost)
文章目录 前言一、相关文章二、相关代码1.yml文件配置2.RabbitMq配置类3.接收MQ消息前言 在日常开发中,同时需要用到RabbitMQ多个虚拟机(vhost)。应用场景:需要接收多个交换机的数据,而交换机都在不同的虚拟机(vhost) 一、相关文章 Docker安装RabbitMQ 【SpringCloud…...
「Qt Widget中文示例指南」如何实现文档查看器?(一)
Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 文档查看器是一个显…...
如何创建WordPress付款表单(简单方法)
您是否正在寻找一种简单的方法来创建付款功能WordPress表单? 小企业主通常需要创建一种简单的方法来在其网站上接受付款,而无需设置复杂的购物车。简单的付款表格使您可以轻松接受自定义付款金额、设置定期付款并收集自定义详细信息。 在本文中&#x…...
虹科方案 | 释放总线潜力:汽车总线离线模拟解决方案
来源:虹科汽车智能互联 虹科方案 | 释放总线潜力:汽车总线离线模拟解决方案 原文链接:https://mp.weixin.qq.com/s/KGv2ZOuQMLIXlOiivvY6aQ 欢迎关注虹科,为您提供最新资讯! #汽车总线 #ECU #汽车网关 导读 传统的…...
欲速则不达,慢就是快!
引言 随着生活水平的提高,不少人的目标从原先的解决温饱转变为追求内心充实,但由于现在的时间过得越来越快以及其他外部因素,我们对很多东西的获取越来越没耐心,例如书店经常会看到《7天精通Java》、《3天掌握XXX》等等之类的书籍…...
ubuntu22.04@Jetson OpenCV安装
ubuntu22.04Jetson OpenCV安装 1. 源由2. 分析3. 证实3.1 jtop安装3.2 jtop指令3.3 GPU支持情况 4. 安装OpenCV4.1 修改内容4.2 Python2环境【不需要】4.3 ubuntu22.04环境4.4 国内/本地环境问题4.5 cudnn版本问题 5. 总结6. 参考资料 1. 源由 昨天用Jetson跑demo程序发现帧率…...
OpenGL学习——17.模型
前情提要:本文代码源自Github上的学习文档“LearnOpenGL”,我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动,一切著作权归原作者所有,本文仅供学习交流,如有侵权,请联系我删除。L…...
6.2 数据库
本节介绍Android的数据库存储方式--SQLite的使用方法,包括:SQLite用到了哪些SQL语法,如何使用数据库管理操纵SQLitem,如何使用数据库帮助器简化数据库操作,以及如何利用SQLite改进登录页面的记住密码功能。 6.2.1 SQ…...
计算机设计大赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满…...
本地模拟发送、接收RabbitMQ数据
文章目录 前言一、相关文章二、相关代码1.模拟的 Channel 类2.接收消息3.模拟推送MQ数据前言 日常开发中,当线上RabbitMQ坏境还没准备好时,可在本地模拟发送、接收消息 一、相关文章 Docker安装RabbitMQ 【SpringCloud】整合RabbitMQ六大模式应用(入门到精通) Spring R…...
前端 webSocket 的使用
webSocket使用 注意要去监听websocket 对象事件,处理我们需要的数据 我是放在了最外层的index 内,监听编辑状态,去触发定义的方法。因为我这个项目是组件化开发,全部只有一个总编辑按钮,我只需监听是否触发了编辑即可…...
opencv图像处理(一)
一. OpenCV 简介 OpenCV 是一个跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 应用领域 1、人机互动 2、物体识别 3、图像分割 4、人脸识别 5、动作识别 6、运动跟踪 7、机器人 8、运动分析 9、机器视觉 10、…...
消息队列-RabbitMQ:workQueues—工作队列、消息应答机制、RabbitMQ 持久化、不公平分发(能者多劳)
4、Work Queues Work Queues— 工作队列 (又称任务队列) 的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。我们把任务封装为消息并将其发送到队列,在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作…...
前端秘法基础式(HTML)(第二卷)
目录 一.表单标签 1.表单域 2.表单控件 2.1input标签 2.2label/select/textarea标签 2.3无语义标签 三.特殊字符 一.表单标签 用来完成与用户的交互,例如登录系统 1.表单域 <form>通过action属性,将用户填写的数据转交给服务器 2.表单控件 2.1input标签 type…...
PTA-统计英文字母和数字字符[2]
本题要求编写程序,输入N个字符,统计其中英文字母、数字字符和其他字符的个数。 输入格式: 输入在第一行中给出正整数N,第二行输入N个字符,最后一个回车表示输入结束,不算在内。 输出格式: 在一行内按照 letter 英…...
Elasticsearch:将 IT 智能和业务 KPI 与 AI 连接起来 - 房间里的大象
作者:Fermi Fang 大象寓言的智慧 在信息技术和商业领导力的交叉点,蒙眼人和大象的古老寓言提供了一个富有洞察力的类比。 这个故事起源于印度次大陆,讲述了六个蒙住眼睛的人第一次遇到大象的故事。 每个人触摸大象的不同部位 —— 侧面、象牙…...
基于芯驰 X9HP PTG4.1 在 yocto 中添加 Linux 应用
1.参考例程并添加应用 1.1 参考例程 (1)查看自带的串口测试例程 uart_test ,查看 bb 文件怎么写的。 1.2 添加 printf-test 应用 (1)在 yocto/meta-semidrive/recipes-bsp/ 目录中 copy 自带例程 uart-test 改名为 …...
【微服务安全】OpenID Connect 简介:现代应用程序的身份验证
OpenID Connect (OIDC) 是一个建立在 OAuth 2.0 之上的开放身份验证协议。它简化了应用程序以一种标准化和可互操作的方式验证用户身份并获取其基本个人资料信息的方式。可以将其视为应用程序“知道你是谁”的一种安全方式,而无需你创建单独的帐户或透露你的密码。 …...
Linux系统中HTTP隧道的搭建与配置步骤:穿越网络的“魔法隧道”
在Linux系统中搭建HTTP隧道,就像是开启了一条穿越网络的“魔法隧道”。这条隧道能让你的数据在网络中自由穿梭,无论是远程办公还是数据同步,都能变得轻松自在。下面,就让我们一起探索如何搭建这条神奇的“魔法隧道”吧!…...
Qt串口通信与STM32 PWM实战:滑动条控制RGB灯全流程解析
1. 项目概述与核心价值最近在做一个智能家居控制面板的原型,核心需求之一就是通过一个直观的图形界面,去实时调节RGB氛围灯的亮度和颜色。这听起来像是把手机App上的功能搬到了嵌入式设备上,但背后的实现链路却完全不同。我选择了Qt作为上位机…...
BotW Save Manager:技术解析与实战指南,实现Switch与WiiU存档的无缝迁移
BotW Save Manager:技术解析与实战指南,实现Switch与WiiU存档的无缝迁移 【免费下载链接】BotW-Save-Manager BOTW Save Manager for Switch and Wii U 项目地址: https://gitcode.com/gh_mirrors/bo/BotW-Save-Manager BotW Save Manager是一款专…...
AI圈今日大事(2026-05-21)
AI圈今日大事(2026-05-21)1. 阿里云峰会:真武M890芯片 Qwen3.7-Max 双料齐发今日阿里云峰会上,阿里平头哥正式发布新一代训推一体AI芯片 真武M890:性能:相比前代真武810E提升3倍,内置144GB显存…...
立体匹配中的“性价比”之选:深入解读GWCNet的组相关思想与实时应用潜力
立体匹配中的“性价比”之选:深入解读GWCNet的组相关思想与实时应用潜力 在自动驾驶和机器人导航领域,立体视觉系统需要实时处理大量视觉数据,这对算法的计算效率提出了严苛要求。传统立体匹配算法往往面临一个两难选择:要么追求…...
3步解决游戏手柄兼容性问题:XOutput完全指南
3步解决游戏手柄兼容性问题:XOutput完全指南 【免费下载链接】XOutput DirectInput to XInput wrapper 项目地址: https://gitcode.com/gh_mirrors/xo/XOutput 你是否遇到过这样的尴尬时刻?心爱的旧手柄在最新游戏里毫无反应,或者新买…...
智能家居语音交互进阶:从离线识别到场景化意图推理的本地化实现
1. 项目概述:从“听见”到“听懂”的智能家居进化 “小爱同学,打开客厅灯。” “天猫精灵,空调调到26度。” 这类语音交互如今已司空见惯。但你是否遇到过这样的场景:对着音箱说“我有点冷”,它却回答“对不起…...
5个必学的Rainmeter桌面监控技巧:打造个性化Windows系统仪表盘
5个必学的Rainmeter桌面监控技巧:打造个性化Windows系统仪表盘 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter作为Windows平台上最强大的桌面自定义工具,…...
Asimov支持的开发依赖类型详解:从Node.js到Python、Go、Rust全覆盖
Asimov支持的开发依赖类型详解:从Node.js到Python、Go、Rust全覆盖 【免费下载链接】asimov Automatically exclude development dependencies from Apple Time Machine backups 项目地址: https://gitcode.com/gh_mirrors/as/asimov Asimov是一款能够自动将…...
Unity3d之Timeline功能开发
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Timeline; using UnityEngine.Playables; using UnityEngine.Events;/// <summary> /// TimeLine控制器 /// </summary> public class TimeLineController : M…...
Warcraft Helper:让经典魔兽争霸3在现代系统高效运行的智能解决方案
Warcraft Helper:让经典魔兽争霸3在现代系统高效运行的智能解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper Warcraft Helper是一款…...
