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

K8S集群Pod动态弹性扩缩容(HPA )部署

K8S集群Pod动态弹性扩缩容(HPA )部署

一、安装metrics-server

①开启API Aggregator

开启 API Aggregator(API 聚合层)是为了让 Kubernetes 能够安全、标准地集成第三方扩展 API,metrics-server 就是通过这种方式提供metrics.k8s.ioAPI 的。

vim/etc/kubernetes/manifests/kube-apiserver.yaml#添加这行- --enable-aggregator-routing=true

修改 manifests 配置后 API Server 会自动重启生效

②验证配置生效

使用kubectl describe命令来查看 kube-apiserver 的 Pod 描述,确认是否包含了相应的配置。

kubectl describe pod kube-apiserver-k8s-master-nkube-syste

二、下载 components.yaml

github地址:Releases · kubernetes-sigs/metrics-server

wgethttps://github.com/kubernetes-sigs/metrics-server/releases/download/v0.8.1/components.yaml
①修改配置

下载后修改如下配置,用于跳过证书校验,不加可能会报错

---kubelet-insecure-tls

②更换镜像

修改image地址为阿里云镜像源

image:registry.aliyuncs.com/google_containers/metrics-server:v0.6.1
③开始安装
kubectl apply-fcomponents.yaml#查看pod状态kubectl get pod-nkube-system|grepmetrics-server

④查看node和pod资源使用情况
kubectltopnodes kubectltoppods-nkube-system

所有验证都通过了,metrics-server 已经完全正常工作!

三、部署HPA测试应用:php-apache

①下载php-apache.yaml

使用 Kubernetes 官方 HPA 示例:

#下载原始YAML文件wgethttps://k8s.io/examples/application/php-apache.yaml
②修改镜像
sed-i's|registry.k8s.io/hpa-example|mirrorgooglecontainers/hpa-example|'php-apache.yaml

关键参数说明

  • 镜像:mirrorgooglecontainers/hpa-example
  • 设置了resources.requests.cpu: 200m(HPA 必需)
  • 暴露 Servicephp-apache供压测
③应用配置
kubectl apply-fphp-apache.yaml
④验证
kubectl get deploy/php-apache kubectl describe pod-lrun=php-apache|grep-A5"Requests"

四、创建HorizontalPodAutoscaler

kubectl autoscale deployment php-apache --cpu-percent=50--min=1--max=10
  • --cpu-percent=50:目标 CPU 利用率为 50%(基于 requests 计算)
  • 副本数范围:1 ~ 10

查看状态

root@k8s-master:/data/k8s/hpa# kubectl get hpaNAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache cpu:0%/50%110115h

若显示<unknown>/50%,请检查:

  1. Metrics Server 是否运行正常(kubectl top pods
  2. Pod 是否设置了resources.requests.cpu

五、压测验证HPA自动扩缩容

①启动负载生成器(新开终端)
kubectl run-i--ttyload-generator--rm\--image=busybox:1.28\--restart=Never\-- /bin/sh-c"while sleep 0.01; do wget -q -O- http://php-apache; done"
②实时观察HPA行为
kubectl get hpa php-apache --watch

典型扩缩容过程

行为说明

  • 扩容响应较快(秒级)
  • 缩容有默认 5 分钟冷却期(由--horizontal-pod-autoscaler-downscale-stabilization控制)
③停止压测

在负载终端按Ctrl + C,Pod 自动清理。

http://www.jsqmd.com/news/677508/

相关文章:

  • PostgreSQL 技术日报 (4月21日)|2 款核心扩展更新,内核优化多点突破
  • WindowsCleaner终极指南:三大清理策略如何根治Windows系统卡顿与C盘爆红问题
  • 告别冲突!深度清理你的Chrome/Edge浏览器,让IDM下载插件稳定运行(含扩展管理技巧)
  • WeChatExporter:三步实现微信聊天记录的永久备份与完整导出
  • 猫抓浏览器插件终极指南:如何快速获取网页视频和音频资源
  • WinUtil:一站式Windows系统管理工具,彻底改变你的电脑维护方式
  • 深蓝词库转换:告别20+输入法格式壁垒的终极解决方案
  • 如何配置Oracle分布式事务_两阶段提交与DB_DOMAIN参数
  • 2026年再生医疗机构推荐:正规合规专业机构选型参考与不同需求场景适配指南 - 商业小白条
  • 别再乱试软件了!Acer笔记本DMI修改失败后,我的硬刷救砖全记录
  • XJTU-thesis终极指南:西安交大LaTeX论文模板完整使用教程
  • 机器人编程避坑指南:RPY角与旋转矩阵转换中的万向节锁问题(附MATLAB/Python代码)
  • 保姆级教程:在Ubuntu 20.04上从零编译运行VINS-Fusion(避坑指南+数据集实测)
  • 如何用WebPlotDigitizer彻底改变你的科研数据处理方式
  • M1 Mac到手后,我花半小时把iTerm2终端调教成了这样(附保姆级配置清单)
  • HY-MT1.5-1.8B真实案例:用它翻译技术文档效果有多好?
  • Platinum-MD:让复古Minidisc焕发新生的现代音乐管理工具
  • 别再死记硬背了!用‘快递员送信’的故事,5分钟搞懂PKI、数字证书和CA到底在干啥
  • 保姆级教程:用树莓派CM4 eMMC版打造你的专属监控主机(从烧写到双摄像头配置)
  • FPGA新手避坑指南:Vivado 2023.1里用Clocking Wizard生成100MHz时钟,为啥我的板子不工作?
  • 深度掌控显卡性能:NVIDIA Profile Inspector 5大隐藏技巧全解析
  • 从端口到数据:深入解析EC与BIOS/OS的通信协议
  • 3步守护青春记忆:如何让QQ空间数据永久陪伴你?
  • Homebrew换源后安装Node.js还是报404?可能是你的缓存和源配置在‘打架’
  • 保姆级教程:用nvidia-smi命令行打造你的GPU资源监控看板(含自动记录与告警思路)
  • Python多线程微博相册批量下载器:架构设计与实现原理
  • 深入解析C++STL list实现
  • 高性能浏览器图片格式转换架构解析:为什么选择离屏Canvas处理方案
  • Win11下ISE彻底罢工?保姆级教程:在Ubuntu 18.04虚拟机里复活ISE 14.7和ModelSim
  • 别再只用default用户了!Redis ACL权限管理避坑指南与5个常见配置错误