ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
ltpo自适应刷新k50支持吗 第6关k8s架构师课程之HPA
2024-11-22 08:41:49  作者:幸福遗忘轼  网址:https://m.xinb2b.cn/know/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转型两年万家乐亮起2016年底剥离厨卫家电业务后,万家乐(000533)在2017年通过收购浙江翰晟携创实业有限公司(以下简称“浙江翰晟”)60%股权,转型进入供应链管理业务然而,不到两年,浙江翰晟就出现爆雷事件浙江翰。
  • 推荐十部最好看的经典电视剧(这20部经典的电视剧)
  • 2024-11-22这20部经典的电视剧那些经典电视剧,给我们的童年时光和青春时期带来了无数美好的回忆当那些曾经熟悉的画面、熟悉的名字、熟悉的歌曲再次出现时,总会勾起我们尘封多年的记忆今天就来盘点20部我们小时候看的电视剧,看看大家对他们还。
  • 郑州周末亲子游推荐(周末带孩子去哪玩)
  • 2024-11-22周末带孩子去哪玩期盼已久的周末假期又来啦家里孩子的暑假已过半,是不是在家都闲不住了?宝爸宝妈们准备带孩子去哪玩?小王整理了周边距离近的3个地方大家可以参考一下,好玩有趣涨知识,孩子玩得开心家长带的省心~1:九龙口景区。
  • 为什么亚历山大那么出名(年仅二十岁的亚历山大)
  • 2024-11-22年仅二十岁的亚历山大在世界历史上,曾经出现过一个昙花一现的帝国,它是当时世界上领土最大的帝国,它的领土大到甚至超过了东方战国七雄领土的总和而创下这前无古人的辉煌业绩、亲手缔造了这个庞大的帝国者,就是年仅二十多岁的亚历山大。
  • 详细解读广汽传祺gs3(广汽乘用车传祺GS3解读)
  • 2024-11-22广汽乘用车传祺GS3解读就整体设计来看,这台车的设计其实还是符合一些人的审美的在整体设计方面,传祺GS3整体的设计新颖的,整个车头看起来辨识度高,两侧犀利的大灯造型,内部灯组错落有致,点亮时炯炯有神车身侧面来看,新车采用了侧。
  • 关于董仲舒的天人合一的感悟(善恶皆不是董仲舒独特的人性论)
  • 2024-11-22善恶皆不是董仲舒独特的人性论关于人性论,我国古代的思想里有两大派别,孟子的性善论和荀子的性恶论关于人性善恶的问题自古以来很多学者都曾经深入地讨论过告子认为人性无善无恶,全凭外界因素影响,而周代的世硕认为人性有善有恶而汉代大儒董仲。
  • 美国对华战略走向歧路(美国对华极限施压)
  • 2024-11-22美国对华极限施压来源:参考消息审视美国当前对外政策,“极限施压”(maximumpressure)无疑是关键词之一自特朗普上台以来,伴随着多次重大人事调整,白宫现已由强硬派(hard-liners)主导观察人士认为,。
  • 云南风景最美的雪山(云南雪山之巅一米阳光)
  • 2024-11-22云南雪山之巅一米阳光"雪歇晨光十几峰,半山绿白半山红杜鹃仍叠银铧处,忽见过云隐玉龙",将玉龙雪山的绝美景观描绘地淋漓尽致位于云南省丽江市玉龙纳西族自治县境内的玉龙雪山,以险、奇、美、秀著称于世,随着季节和。
  • 蓝翔挖掘机的技术(挖掘机技术哪家强)
  • 2024-11-22挖掘机技术哪家强[ZOL汽车用品]这个世界上有两个人改变了笔者对车的认识,一个是蓝翔,他让我知道了车里边还有挖掘机这等神器,而且挖掘机技术是一个日进斗金的金饭碗;另一个人则是马斯克,他让我知道了原来我们现在交通工具统。
  • 肖申克的救赎到底救赎了谁(肖申克的救赎到底救赎了什么)
  • 2024-11-22肖申克的救赎到底救赎了什么《肖申克的救赎》是一部神奇的影片,在1994年影院公映时票房收入区区1600万美元,连成本都没有收回来但后来居然奇迹般地获得了七项奥斯卡奖项,然后重新上映,又获得了2830万票房更神奇的是,在影院彻底。