ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
2024-09-28 01:22:00  作者:幸福遗忘轼  网址: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-09-28林志颖多大岁数属啥林志颖47岁,属相是虎林志颖(JimmyLin),1974年10月15日出生于中国台湾省台北市,中国台湾男演员、歌手、赛车手因此到现在林志颖是47周岁了公元1974年(NineteenSeventy-。
  • 孩子喉咙有痰呼噜呼噜怎么排痰(呼噜呼噜嗓子有痰)
  • 2024-09-28呼噜呼噜嗓子有痰咳、咳、咳……又到了呼吸道疾病出来组团作妖的季节,这个时候,所有母亲最怕宝宝生病咳嗽,一听到宝宝咳嗽,自己这心就像炸毛了一样,狂躁“孩子呼吸的时候还有呼噜呼噜的声音,是不是有痰?”“宝宝太小,不能自己。
  • 决战流岩(决战岩流岛九沧浪)
  • 2024-09-28决战岩流岛九沧浪那一道阳光,把武藏唤回到现实中他画了一座岛,在大海的环抱之中上面是蓝色的天和云后的太阳岛上有树,但天太空阔了,于是在上面添上了一只鹰他还想在上面添些什么,这时阿鹤姑娘又来了后面跟着一个人,正是介缝殿先。
  • 背单词怎么背又快又牢知乎(知乎2200万点赞的纯干货)
  • 2024-09-28知乎2200万点赞的纯干货文|魏剑峰From英文悦读微信号:read_the_economist经常阅读经济学人或其他外刊的同学大概都有这样的困惑:怎样在保持阅读速度和查单词之间找到一个平衡?阅读过程中碰到生词究竟应该怎么处理。
  • 被猫抓了怎么办(被猫抓伤怎么处理)
  • 2024-09-28被猫抓伤怎么处理被猫抓完手以后需要看伤口是否有渗血等,如果伤口有明显渗血,这种情况属于最严重的Ⅲ级暴露Ⅲ级暴露的处理方法:(1)冲洗伤口,用犬伤净或者自己用肥皂水冲洗伤口20分钟左右(2)要注射狂犬疫苗,狂犬疫苗现在。
  • 肌酐适合吃什么食物(肌酐适合吃哪些食物)
  • 2024-09-28肌酐适合吃哪些食物肌酐偏高的患者可以多吃一些小米、玉米、猕猴桃、橙子等富含维生素的食物也可以多吃一些蛋类、奶类、豆类、鱼类等优质蛋白,对身体都有一定的好处肌酐是体内的蛋白质代谢产物,主要通过肾脏排出如果出现肌酐偏高,需。
  • 立体元素周期表绘画(超神了他用Excel)
  • 2024-09-28超神了他用Excel点击手绘之家关注,回复:20领取30G彩铅水彩素描教程公告:招募美术公开课讲师,有教学经验者优先如果你认识有厉害的老师,欢迎推荐加我们微信:shouhui1233每个人的电脑桌上,都会有一个Excel。
  • 刘真死后吴宗宪捐款(刘真病逝老公辛龙悲伤过度闭门不出)
  • 2024-09-28刘真病逝老公辛龙悲伤过度闭门不出据台媒报道,3月23日“国标女王”刘真等不到换心续命,在医院救治45天后,最终于昨晚不幸辞世,享年44岁!刘真离开后,留下老公辛龙和4岁女儿,这样的人间悲剧令人心酸不已!辛龙早前曾发文表示“愿意用自己。
  • 冯绍峰和范丞丞演的电影(范丞丞冯绍峰主演的致命愿望)
  • 2024-09-28范丞丞冯绍峰主演的致命愿望大家好,我还是你们的好朋友诸葛小乔呀~关注小乔,告别片慌《八角亭迷雾》收官两周后,《致命愿望》开播了杨苗导演冯绍峰文琪范丞丞杨蓉等领衔主演豆瓣评分:4.7分爱奇艺的迷雾剧场,随着《隐秘的角落》《沉默的。
  • 菊花大面积种植怎么管理(菊花怎么种植高产)
  • 2024-09-28菊花怎么种植高产菊花是常栽的花卉,除了观赏外还具有不错的功效,很多地区都有栽种菊花是喜阳光充足、温暖湿润的气候的植物,那么要如何栽种管理?下面一起来了解下一、菊花种植技术1、选地整地选肥沃疏松排水良好的壤土或沙质壤土。
  • 谷德昭谈周星驰完整版(因周星驰被逐出师门)
  • 2024-09-28因周星驰被逐出师门周星驰真的是一位非常厉害的导演兼演员,他的强大之处不仅只体现在演戏,还有对演员的选拔上周星驰拍了半辈子电影,捧出来的黄金配角不计其数,吴孟达、林子聪、苑琼丹、八两金、黄一山、田启文等等,优秀演员可谓不。