k8s高级调度--HPA
简绍:
通过Metrics server组件来收集pod和node上的度量指标,HPA也是通过Metrics server组件的指标来实现的水平扩缩容,HPA主要通过观察Metrics server上报的数据来做出相应的扩容或者缩容动作,扩缩容指标为CPU和内存使用率
验证:
创建deploy资源测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: # nodeSelector: # env: test-team containers: - name: nginx image: nginx:1.7.9 # replace it with your exactly <image_name:tags> ports: - containerPort: 80 resources: limits: cpu: "500m" requests: cpu: "10m" |
创建svc
1 | kubectl expose deployment nginx-deployment-basic --port 80 |
创建HPA
1 2 3 | kubectl autoscale deploy nginx-deployment-basic --cpu-percent=10 --min=1 --max=10 #--cpu-percent 超过指标的百分比会触发扩容,上述参数表示cpu超过10%会触发扩容,最小扩容1个pod,最大扩容10个pody |
查看HPA状态
压测验证:
观察hpa的状态和pod的数量
pod扩容触发正常,在配置hpa的时候,也需要关注k8s集群的资源使用情况,保证pod触发hpa后资源池足够运行扩容的资源,pod状态pending,大概率是资源不足导致的,
停掉压测循环看下缩容情况
稍等几分钟会pod副本会缩容到hpa的min副本数,刚开始创建deploy的时候我们配置的是俩个副本,所以,hpa资源的最小副本数要根据线上环境所需的副本数来配置
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性