ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
2024-11-25 06:51:55  作者:幸福遗忘轼  网址:https://m.xinb2b.cn/life/cna133177.html

大家好,我是博哥爱运维,这节课带来k8s的HPA 自动水平伸缩pod,接下来我们就来聊聊关于ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA?以下内容大家不妨参考一二希望能帮到您!


ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA

HPA

大家好,我是博哥爱运维,这节课带来k8s的HPA 自动水平伸缩pod。

我们知道,初始Pod的数量是可以设置的,同时业务也分流量高峰和低峰,那么怎么即能不过多的占用K8s的资源,又能在服务高峰时自动扩容pod的数量呢,在K8s上的答案是Horizontal Pod Autoscaling,简称HPA 自动水平伸缩,这里只以我们常用的CPU计算型服务来作为HPA的测试,这基本满足了大部分业务服务需求,其它如vpa纵向扩容,还有基于业务qps等特殊指标扩容这个在后面计划会以独立高级番外篇来作教程。

自动水平伸缩,是指运行在k8s上的应用负载(POD),可以根据资源使用率进行自动扩容、缩容,它依赖metrics-server服务pod使用资源指标收集;我们知道应用的资源使用率通常都有高峰和低谷,所以k8s的HPA特性应运而生;它也是最能体现区别于传统运维的优势之一,不仅能够弹性伸缩,而且完全自动化!

我们在生产中通常用得最多的就是基于服务pod的cpu使用率metrics来自动扩容pod数量,下面来以生产的标准来实战测试下(注意:使用HPA前我们要确保K8s集群的dns服务和metrics服务是正常运行的,并且我们所创建的服务需要配置指标分配)

# pod内资源分配的配置格式如下:# 默认可以只配置requests,但根据生产中的经验,建议把limits资源限制也加上,因为对K8s来说,只有这两个都配置了且配置的值都要一样,这个pod资源的优先级才是最高的,在node资源不够的情况下,首先是把没有任何资源分配配置的pod资源给干掉,其次是只配置了requests的,最后才是两个都配置的情况,仔细品品 resources: limits: # 限制单个pod最多能使用1核(1000m 毫核)cpu以及2G内存 cpu: "1" memory: 2Gi requests: # 保证这个pod初始就能分配这么多资源 cpu: "1" memory: 2Gi

我们先不做上面配置的改动,看看直接创建hpa会产生什么情况:

# 为deployment资源web创建hpa,pod数量上限3个,最低1个,在pod平均CPU达到50%后开始扩容kubectl autoscale deployment web --max=3 --min=1 --cpu-percent=50#过一会看下这个hpa资源的描述(截取这下面一部分)# 下面提示说到,HPA缺少最小资源分配的request参数Conditions: Type Status Reason Message ---- ------ ------ ------- AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale ScalingActive False FailedGetResourceMetric the HPA was unable to compute the replica count: missing request for cpuEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedComputeMetricsReplicas 3m46s (x12 over 6m33s) horizontal-pod-autoscaler invalid metrics (1 invalid out of 1), first error is: failed to get cpu utilization: missing request for cpu Warning FailedGetResourceMetric 89s (x21 over 6m33s) horizontal-pod-autoscaler missing request for cpu

我们现在以上面创建的deployment资源web来实践下hpa的效果,首先用我们学到的方法导出web的yaml配置,并增加资源分配配置增加:

# cat web.yaml apiVersion: apps/v1kind: Deploymentmetadata: labels: app: web name: web namespace: defaultspec: replicas: 1 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - image: nginx name: nginx resources: limits: # 因为我这里是测试环境,所以这里CPU只分配50毫核(0.05核CPU)和20M的内存 cpu: "50m" memory: 20Mi requests: # 保证这个pod初始就能分配这么多资源 cpu: "50m" memory: 20Mi

更新web资源:

# kubectl apply -f web.yaml deployment.apps/web configured

然后创建hpa:

# kubectl autoscale deployment web --max=3 --min=1 --cpu-percent=50 horizontalpodautoscaler.autoscaling/web autoscaled# 等待一会,可以看到相关的hpa信息(K8s上metrics服务收集所有pod资源的时间间隔大概在60s的时间)# kubectl get hpa -wNAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGEweb Deployment/web <unknown>/50% 1 3 1 39sweb Deployment/web 0%/50% 1 3 1 76s

我们来模拟业务流量增长,看看hpa自动伸缩的效果:

# 我们启动一个临时pod,来模拟大量请求# kubectl run -it --rm busybox --image=busybox -- sh/ # while :;do wget -q -O- http://web;done# 等待2 ~ 3分钟,注意k8s为了避免频繁增删pod,对副本的增加速度有限制# kubectl get hpa web -wNAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGEweb Deployment/web 0%/50% 1 3 1 11mweb Deployment/web 102%/50% 1 3 1 14mweb Deployment/web 102%/50% 1 3 3 14m# 看下hpa的描述信息下面的事件记录# kubectl describe hpa webEvents: Type Reason Age From Message ---- ------ ---- ---- -------... Normal SuccessfulRescale 62s horizontal-pod-autoscaler New size: 3; reason: cpu resource utilization (percentage of request) above target

好了,HPA的自动扩容已经见过了,现在停掉压测,观察下HPA的自动收缩功能:

# 可以看到,在业务流量高峰下去后,HPA并不急着马上收缩pod数量,而是等待5分钟后,再进行收敛,这是稳妥的作法,是k8s为了避免频繁增删pod的一种手段# kubectl get hpa web -wNAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGEweb Deployment/web 102%/50% 1 3 3 16mweb Deployment/web 0%/50% 1 3 3 16mweb Deployment/web 0%/50% 1 3 3 20mweb Deployment/web 0%/50% 1 3 1 21m

  • 为什么要学魔方(为什么让孩子学习魔方)
  • 2024-11-25为什么让孩子学习魔方这些年学习魔方的小朋友越来越多,家长想让孩子学习魔方也会有各种各样的目的,有的家长想让孩子多一门技能,有的家长想让孩子提升注意力,有的家长想让孩子通过魔方提升自信心有的想让孩子交到更多的朋友我看过的最。
  • 小学生创意手工大全大熊猫(成都民间达人变废为宝)
  • 2024-11-25成都民间达人变废为宝陶思俊用易拉罐创作的镂空蓉宝陈静摄陶思俊用易拉罐创作的镂空蓉宝陈静摄中新网成都8月23日电题:成都民间达人变废为宝用易拉罐创意绘制大熊猫作者陈静贺劭清剪开一个易拉罐,压平瓶身铁皮,原本的废弃物就变成了。
  • 女性的妇科检查都应该查什么(女性常见的妇科检查有哪些)
  • 2024-11-25女性常见的妇科检查有哪些现在很多妇女都多多少少会患有一些妇科疾病,妇科疾病的类型是很多的,比如各种炎症、肿瘤、宫颈癌症、月经疾病等,有些妇科疾病是有感觉的,也有一些妇科疾病是无症状的,需要综合检查才能确定结果,我们来看下女性。
  • 自然拼读直播学拼单词(拼读作业的检查工具)
  • 2024-11-25拼读作业的检查工具出于对语文作业的检查,为了省事故利用ocr制作一个工具想法是利用ocr来识别作业中的拼读部分的拼音,然后给出拼英所对应的正确的汉字步骤上分为4步,第一是拍照,第二是识别图像中的文字,第三是找出拼读部分。
  • 如何和容易发脾气的老婆相处(爱发脾气的老婆都是好老婆)
  • 2024-11-25爱发脾气的老婆都是好老婆“每一次的容忍,都是一次爱的消耗”作者:南川大叔(nanCSS)微博上看到一句话:你做错事,我可以放你一马,你欺骗我,我也可以放你一马,你伤我心,我还是可以放你一马,但你要记住:我是有脾气的,不是放马。
  • 哈密瓜的根茎发霉能吃吗(哈密瓜的根茎发霉能不能吃)
  • 2024-11-25哈密瓜的根茎发霉能不能吃不建议食用哈密瓜无论是大面积发霉还是小面积发霉都是不建议食用的,因为一旦哈蜜瓜有发霉情况,那么说明哈密瓜的内部结构已经被破坏,还被霉菌感染了,含有大量的细菌等有害物质,若是食用的话,会使其中的有害物质。
  • 我们爱下去会怎样(如果爱下去会怎样)
  • 2024-11-25如果爱下去会怎样每个人在一生中都会经历一段刻骨铭心的爱情,也许是初恋,也许是某段感情,但最终告诉我们的都是一个道理,我们要学会长大……(一)邂逅他是文学界的新秀,他的作品得到很多人的认可,帅气但是不多金,他叫慕岩(二。
  • 陶昕然甄嬛传电视剧(甄嬛传本要找霍思燕演安陵容)
  • 2024-11-25甄嬛传本要找霍思燕演安陵容《甄嬛传》原本打算找霍思燕演安陵容,谁知,演员陶昕然对导演郑晓龙说了几句话,立马拿到了这个角色副导演试探着问郑晓龙,不考虑其他人了吗?郑晓龙递给他一张陶昕然的照片,肯定地说:“她就是安陵容”郑晓龙在2。
  • 神界原罪2洗点在哪里(神界原罪2取消加点)
  • 2024-11-25神界原罪2取消加点游戏:神界原罪2发行时间:2017年发行发行公司:LarianStudios,名气不大下载方法:百度一下,有学习版滴~找不到就买,没问题的! 推荐游戏模式:我一直很奇怪,3DM的单机排行榜上。
  • 夏季喝的三豆饮怎么做(我家必做的三豆饮)
  • 2024-11-25我家必做的三豆饮导语:夏日必备清凉三豆饮,清热又解暑,食材简单制作方便,好喝不伤胃三豆饮是端午节后我家必做的一款饮品,将黄豆、绿豆和黑豆搭配在一起简单煮一煮,一份营养健康的汤饮便做好了,这款简单好做的三豆饮,适当喝对。
  • 注册公司认缴可以改实缴吗(注册一家公司认缴100万)
  • 2024-11-25注册一家公司认缴100万过去几年,我国掀起了一轮创业热潮,很多人纷纷下海创业,而在创业的过程当中很多人都会注册一家企业为了方便大家创业,目前我国注册企业的时候实行的是认缴制,也就是说不用验资,想要注册多少资金都由大家说了算,。
  • 新手应该如何才能做好网站优化(网站优化推广心得分享)
  • 2024-11-25网站优化推广心得分享网站结构的设计是很多人在做网站优化推广时容易漏掉的内容,结构对于优化的重要性非常重要,好的网站结构设计可以让网站抓取的速度得到提升,可以快速的获取排名1、模板网站结构的改进如今的搜索引擎已经非常智能了。