ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
2024-11-22 07:46:09  作者:幸福遗忘轼  网址:https://m.xinb2b.cn/tech/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-22全国哪的食用盐最好吃您家里常备的是哪种盐?以前过穷日子的时候,因为吃不起盐,很多人就容易生怪病现在生活条件好了,超市里面的各种盐,又让人挑得眼花缭乱,分不清好坏关于盐的功效,我们在生活中被很多人科普过,人体失盐过多,便会。
  • 五行缺土怎么办(这几种方法可以帮助你)
  • 2024-11-22这几种方法可以帮助你基本方法:在生辰把自己里,五行是由金木水火土构成的如果命里缺土的话,可以通过取包涵土字的名字,比如闰土、土萍、土媛等当然还可以用田、山、石等字用来作为命里缺土的人的名字为什么这三个字也可以呢?主要是因。
  • 乌龟不用过滤水的养法(养乌龟可以不用过滤吗)
  • 2024-11-22养乌龟可以不用过滤吗养龟的方式很多种,有些人喜欢用超强过滤清水方式养,有些人则很简陋就一个脸盆,有些人干脆就直接散养了接下来我就说说我养龟的其中之一方法吧!泥水养!没错就是用泥加水!很难想象吧,看似脏兮兮的泥水,乌龟生活。
  • 结论怎么写(写结论方法)
  • 2024-11-22写结论方法结论既然不能简单重复研究结果,就必须对研究结果有进一步的认识结论的内容应着重反映研究结果的理论价值、实用价值及其适用范围,井可提出建议或展望也可指出有待进一步解决的关键性问题和今后研究的设想因此,在结。
  • 家有儿女穿帮过程(明明是同一个人)
  • 2024-11-22明明是同一个人文/宸曦微凉《星汉灿烂》还有三集就大结局了,不过,想嗑凌不疑、程少商CP的小伙伴,也不用太担心,毕竟这部剧还有下部,那才是男、女主角感情戏的关键,因为《月升沧海》迟迟不定档,很多剧粉纷纷留言,如果视频。
  • 王者荣耀各个英雄的玩法介绍(王者荣耀别乱花金币了)
  • 2024-11-22王者荣耀别乱花金币了大家好,我是白衣在王者荣耀里面,商城的英雄价格都不一样,许多人认为价格越高的英雄越厉害,这个还真不是一分钱一份货,许多18888英雄就是个坑,所以你如果金币不多就不要乱买英雄了,先买英雄比较强的英雄上。
  • 辽宁建业现状怎么样了 主场被冷落的一号店
  • 2024-11-22辽宁建业现状怎么样了 主场被冷落的一号店沃尔玛和京东战略合作后,迎来了一号店8周年店庆这是一个热闹的日子,但却与一号店无关,京东和沃尔玛高管的秀恩爱,让一号店仿佛成了围观群众明面上还是他的主场,实则已经成了客场,不过是点缀红花的绿叶,多少让。
  • 脖子上有黑黑的污垢洗不掉(生活中容易被忽视的细节)
  • 2024-11-22生活中容易被忽视的细节为什么有些人颈后有一圈黑黑脏脏的,特别搓洗还是洗不掉呢?其实那不是脏,而是身体健康的信号!那些黑垢,可能是黑棘皮病,是糖尿病的前兆呐!图片来源于网络什么是黑棘皮病?黑棘皮病(acanthosisnig。
  • 茶马古道普洱景点介绍(精品游线推荐六)
  • 2024-11-22精品游线推荐六见诸史籍的普洱茶六大古茶山中那苔痕覆面的茶马古道至今仍在诉说着源远流长的马帮文化及普洱茶文化今天,让我们跟着这条精品旅游线路通过西双版纳的茶山游在沧桑变化的茶马古道上体验美景风情品尝普洱茶的“苦尽甘来。
  • 王者荣耀元歌21赛季怎么玩(元歌官方攻略来了)
  • 2024-11-22元歌官方攻略来了要说王者荣耀中哪个英雄的操作最难,我相信肯定就是还在体验服的元歌了,之前也说了好多次要上线,结果由于很难平衡而被搁浅,而今天官方正式公布了这个英雄的攻略,看来离正式服真的不远了元歌的伴生皮肤是午夜歌剧。
  • 小学生吃辣条被辣死(迁安一学生吃辣条出现过敏反应)
  • 2024-11-22迁安一学生吃辣条出现过敏反应2021年3月4日早,迁安六实小610班一同学由于吃了煎饼里面的辣丝出现过敏反应,当时面色苍白,说话有气无力,甚至出现了心慌气短,两眼发黑和呕吐的状况班主任在联系了家长后立即拨打了120同时迁安六实小。