范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

兴盛优选云原生降本增效实践k8s多方向拓展

  1.前言
  近年,云原生技术得到了快速发展和广泛应用,兴盛优选云原生团队及时拥抱变化,基于云原生实现了多云平台(简称:星斗云),做了很多业务场景落地的实践,并帮助公司实现了非常不错的降本增效,本文将重点将星斗云遇到的大大小小问题与挑战,及对应优雅解决方案一并呈现给大家。 2.背景
  随着业务方容器化改造越来越深入,星斗云将多套集群做了合并管理,集群的规模变得非常大,遇到的问题也越来越棘手,其中我们以降本增效为导向,聚焦收敛后,整理了一些代表性问题,如下:
  图示说明:
  1.残退复用:公司运转多年,存在不少老旧机器、待退役机器或三无组装机,如何通过"法力无边"的云原生技术纳管复用?
  2.稳定保障:星斗云除了支持无状态业务部署外,还为业务提供了非常多的有状态组件(如:ceph、kafka、es、hbase、rocketmq、redis等)部署管理,因上面提到的老旧残退机器时不时会出现故障,引起响应的有状态服务大受影响,故亟需做好稳定性保障?
  3.耗用管控:业务做容器化改造期间,暂未限制预算与使用,业务服务部署时,资源耗用鲜少评估,也无限制,造成大手大脚,如何管控?
  4.资源挖掘:资源利用再利用,公司总希望每一分成本都花在刀刃上,采购一台机器几十万,如何尽可能深入挖掘,高效利用?
  5.闲置回收:业务每天开发、测试发版成千上万次,每天生成很多增量镜像,需对镜像仓库老旧镜像清理;另外,部分业务或组件缩容后,PV/PVC许久未用,怎么回收?如何自动智能,一劳永逸?
  针对上述各类问题,我们做了深刻地思考和实践性的解决方案,且听娓娓道来。 3.实践
  3.1 node超卖
  node资源超卖是当前业界通用的资源挖掘方式,通过超卖技术,实现每个node尽可能多的运行服务,提高资源利用率,最大限度的挖掘机器的性能,目前星斗云基于160核1T配置的Dell物理母机,实现了800%的超卖率,为实现降本做出了非常大的共享。
  3.1.1 超卖方案
  流程说明:
  1.kubelet通过apiserver上报node资源信息。
  2.上报请求达到apiserver后,对上报请求做认证和鉴权。
  3.认证鉴权通过后,将通过validating 和 mutating验证,在mutating阶段将会调用我们webhook server,做资源信息改写。
  4.资源改写后,经apiserver落入etcd,实现超卖管理。
  核心原理主要是实现一个webhook server,通过mutating webhook劫持node上报的资源信息,然后按指定的系数改写后落入etcd,供后续scheduler调度使用。
  3.1.2 超卖方式
  针对不同场景,我们实现了两种超卖方式:固定比例和指定系数。
  固定比例:内存不超卖,将cpu按mem/cpu的设置比例超卖,如:母机原配置mem 1T内存、cpu 160核,默认比例为6,若我们设置超卖比例为4,则node可用调度资源调整为1T、250核,反之,若设置超卖比例为8,低于实际母机配置,则不超卖。
  指定系数:cpu和mem设置指定的系数进行超卖,默认系数均为1即不超卖,且低于1的设置无效,如:母机原配置mem 1T内存、cpu 160核,设置cpu超卖系数为2.0,mem超卖系数为1.2,则超卖出的cpu为320核,mem为1.2T内存。
  3.2 自定义HPA
  3.2.1 原生HPA
  原生的HPA已经比较强大了,能实现多指标、冷却窗口等能力,但在具体业务场景实践中还是稍有欠缺,具体问题如下: 无用耗时:每15秒的计算周期,无法满足超大突发场景下秒级甚至ms级响应需求。 缺少并发:从队列里获取多个HPA对象,处理完一个再轮到下一个,若同一时刻,业务请求导致微服务调用链上下游均高负载,缺少并发处理能力,无法满足场景需求。 指标滞后:通过获取metrics,prometheus周期性抓取、聚合再做计算,每一个流程都是耗时,时效已经偏低,无法做到实时响应,对于电商突发性高负载,太滞后。 事件驱动:原生HPA都是事后的处理,即流量突发已成事实,缺少对事前预警性的场景满足,需要类似于KEDA一样的被动感知或事件驱动。 零副本:原生HPA暂未支持零副本能力,对于离线计算业务,场景需求明确。
  3.2.2 SophonHPA
  经过长期需求对接和充分的业界方案调研发现,目前暂无符合我们应用场景的开源HPA方案,故我们重新设计了SophonHPA,方案架构图如下:
  图示架构说明:
  SophonHPA为Operator,支持自定义CRD以controller方式实现HPA逻辑,同时兼容原生能力。
  SophonHPA将HPA拆分为控制面(controller)和执行体(executor),相互独立运行,以保持架构的稳定性及容灾能力,即使其中某个挂掉,HPA功能继续运作,不会造成大面积瘫痪。
  controller多副本,支持选举,主要实现针对CRD的Reconcile逻辑,作为控制管理,一旦发现新增CR,创建一个robot实现针对指定workload的HPA专属护航。
  robot即executor主要负责每个CR指定workload的HPA实现,以独立pod方式运行,即1个CR会生成1个executor pod,该executor通过直接调用度量系统API获取实时指标或通过apiserver的api service方式获取缓存指标,来判断触发HPA逻辑,过程和原生类似,支持冷却窗口,支持多指标综合等能力。
  为尽可能保证实时性,指标获取方式拓展支持实时拉取prometheus或其他自定义监控系统指标,以抽象接口方式实现,executor通过不断循环拉取的方式,保证指标的实时更新,实现弹性伸缩的实时感知与触发。
  图示流程说明:
  1.用户设置customize-HPA即SophonHPA,生成CR并下发。
  2.CR通过apiserver写入etcd。
  3.operator监听到CR新增事件,触发Reconcile逻辑。
  4.用户每新增部署一个CR,新建一个robot即executor,以pod方式运行,跟随用户CR指定workload,一对一保障其HPA能力。
  5.executor以聚合指标接口的方式,从不同的后端获取指标。
  6.executor内的Calculator通过获取的指标,根据指定的策略,决策是否做弹性伸缩。
  7.executor内的Calculator计算达到触发条件,触发弹性伸缩。
  8.executor内的scaler执行对指定workload的弹性伸缩,并通过实现冷却窗口和控制扩缩步伐,保证扩缩节奏。
  9.executor内的scaler执行完扩缩后,将状态同步记录到CR中。
  3.3 优先级管理
  业务有重点、非重点之分,有在线、离线之别,我们对于业务做了细分差异处理,即分级管理。
  3.3.1 业务分级
  业务按重要程度从高到低依次分为P0-P5共6个等级:
  P0:绝对核心业务、公司级平台服务,如:电商、物流等核心业务,ceph存储,网关等
  P1:核心支撑系统,如:能效平台、星斗云组件等
  P2:重要业务、集群核心组件,如:prometheus,日志平台、镜像仓库等
  P3:测试通用通用中间件,非核心通用业务,如:redis、kafka、hbase等
  P4:开发测试业务
  P5:离线计算业务
  3.3.2 QOS策略
  我们针对不同级别的业务,会做不同级别的QOS策略保障及资源管控,其中不同的级别对应不同的QOS策略即(Guaranteed、Burstable、BestEffort):
  1.P0:绝对核心业务,QOS为Guarranteed模式,即request和limits的cpu、memory都一样,示例:
  a.pod需求评估是4核8G,实际部署时,request和limits都设置成4核8G,即:
  2.P1:memory不允许弹性,cpu弹性范围为实际cpu需求的1/2~2倍,QOS为Burstable模式,即request和limits下mem一样,limits的cpu为requests的1-16倍,示例如下:
  a.pod需求评估是4核8G,实际部署时,request的cpu、memory设置成2核8G,limits设置为8核8G,即:
  3.P2:memory不允许弹性,cpu弹性范围为实际cpu需求的1/4~4倍,QOS为Burstable模式,即request和limits下mem一样,limits的cpu为requests的1-16倍,示例如下:
  a.pod需求评估是4核8G,实际部署时,request的cpu、memory设置成1核8G,limits设置为16核8G,即:
  4.P3:memory不允许弹性,cpu弹性范围为实际cpu需求的1/4~8倍,QOS为Burstable模式,示例如下:
  a.pod需求评估是4核8G,实际部署时,request的cpu、memory设置成1核8G,limits设置为32核8G,即:
  5.P4:cpu、memory均允许弹性,memory弹性范围为实际的1/2~2倍,cpu弹性范围为实际cpu的1/4~8倍,QOS为Burstable模式,即request和limits下mem一样,limits的cpu为requests的1-16倍,示例如下:
  a.pod需求评估是4核8G,实际部署时,request的cpu、memory设置成1核8G,limits设置为16核16G,即:
  6.P5:cpu、memory均不设置,默认BestEffort模式,随时可以销毁回收同node超卖实现机制一样,通过mutating webhook server劫持用户部署的workload,改写resource配置,从而实现不同等级的QOS管控,并做到了较大程度的资源复用,提高了整体负载弹性。
  3.4 重点加固
  服务器有好、坏之异,业务有绝对核心,要求不可中断,作为平台方,务必重点保障核心业务稳定性,同时尽可能做到容灾高可用,降低风险:
  3.4.1 Taint & Toleration
  对重点母机打Taint方式,只允许带对应Toleration的pod调度到该机器,保障该母机容量同时,避免其他非核心服务的过度占用,以致相互干扰。
  3.4.2 亲和性
  对于重点业务服务,我们会通过设置Node Selector和Node Affinity,设置到指定node的调度亲和性,使其能调度到性能更佳、配置更好的母机上去,保证其稳定可靠运行。
  3.4.3 打散
  核心组件都会做分布式打散部署,常用如:Redis、Kafka、RocketMq、Hbase等,当然还有很多核心业务,也会根据需求做同样的配置管理,打散主要通过反亲和性的方式实现。
  3.4.4 抢占
  业务做了分级管理,高优先级的业务,必须高优先级保障,通过设置抢占策略,可以对pod部署调度过程做出绝对保障,当资源紧张或某些机器异常时,可以优先保证高优先级的业务服务运行。
  3.5 在离线混布
  计算资源的深度挖掘,除了超卖以外,就是混布,超卖有其场景限制,超卖容易导致母机整体负载过高,影响业务服务的稳定性,在、离线则不一样,在利用率波谷期,可以完美搭配在线业务体系,实现业务空窗期资源利用填谷的效果,业界共识当然,方向有了,实践效果就取决于管理系统的优劣了,好的离线业务调度管理系统,可以高效的实现离线计算服务高峰下线、低谷运行的目标,基于此我们从以下三个点做了思考、设计及实践。
  3.5.1 分级管理
  在已有的分级策略中,离线计算业务默认按最低等级P6部署,即Best Effort模式,随时可以中断,在常规场景中,离线计算业务作为最低优先级的服务,混布过程中,即使影响到现网业务,遇到异常情况也会最先被处理,比如:内存占用过多,该类型服务会先触发oom,资源抢占情况下,最先驱逐的也是该类服务,所以分级QOS策略能帮我们实现影响收敛。
  3.5.2 CronHPA
  有了业务分级QOS管理体系后,我们再通过构建CronHPA的能力,实现定期调度部署任务能力,兴盛业务有明显的高峰、低谷期,周期性很强,夜间电商业务成交冻结,资源都浪费了,我们的离线作业系统,完全可以通过CronHPA的方式,定时扩缩容,如:晚上11:00开始拉起离线作业任务,早上7:00停掉。
  3.5.3 调度系统
  CronHPA的效果还是相对太大佬粗,一点也不柔和,对过程中的异常处理也不及时,无法根据实时情况,做出响应策略,比如:某台母机突发异常,负载过高,影响在线业务服务响应,就需要有对应的管理系统感知,并停掉对应node上的离线计算服务,此时,一套更全面的离线业务调度管理系统即应运而生。
  图示说明:
  离线计算作业调度系统共分两套核心流程,图中分别用橙色和蓝色流程给出。
  图示橙色流程为支持作业的调度发布及状态同步管理,负责离线计算业务的定时或实时调度、部署、回收等管理,以及运行过程中的作业状态管理。
  图示蓝色流程为动态调谐流程,负责服务运行中感知周边系统状态,如:node负载、业务预警、集群巡检异常通知等信息,通过感知这些信息,动态调整运行中的作业,将作业pod做迁移、伸缩,或规避指定node等操作,保障现网业务稳定。
  3.6 智能清理
  存储资源的回收管理,通过自动化、智能化的方式实现,达成成本管控目标前提下,做到非人工参与。
  3.6.1 镜像仓库
  业务每天发布几千次,各种镜像数据,如果缺少合理的清理策略,时间久了多大的空间都会被打满,容易导致镜像上传失败或下载效率低harbor镜像仓库支持设置清理策略,并自动执行,但实践中,无论我们怎么设置,如:保留每个镜像最近20个版本、保留最近1个月的镜像,都无法满足需求,经常会出现策略不合理,使得现网在运行服务镜像被清理,导致该服务pod异常重建或扩容时失败,引起事故,所以我们花了很大精力思考如何做到精准清理,实现一劳永逸,最终经过多番探讨和论证,提出了如下方案:
  3.6.2 持久存储
  业务经常会扩缩容,部分业务会使用持久存储,经常缩容后残留很多pv未清理,基于此我们会考虑如何做好清理,并且关键是不能把业务在用或待用的清理掉,以免导致数据丢失,引起业务故障,清理很简单,但要做到顾全周到,就有很多细节需要把控。
  3.7 配额管理
  业务总是觉得自己的服务很重要,需要足够资源保证使用,所以经常会分配过多的资源,导致占用膨胀以致浪费,我们会对其使用的计算资源做合理管控,管控策略即限额和弹性,流程包括实时统计、限额预警和弹性借调。
  3.7.1 实时统计
  集群中会运行一套Controller用于计算实时资源消耗情况,并按小时为周期做流水记录和统计,统计单位为CPU"核小时"或内存"G小时",配额也是同样的单位,比如:A业务部署了多个实例,累计共10核20G配置使用,每隔1小时,会计算生成20核*小时的消耗流水记录,并落入到数据库。
  3.7.2 限额预警
  实时流水生成后,星斗云会根据流水记录做统计计算,并与业务配额做比对,按指定条件触发预警,如:当业务资源使用达配额60%时,发送邮件预警,当达到80%时企业微信告警,当达到90%时短信告警,超过100%时电话告警。
  图示说明:
  1.Report Generater从数据库获取数据统计,并计算是否达到预警限额。
  2.Report Generater将触发指定的预警发送到消息队列。
  3.Report Pusher从消息队列消费,按指定等级推送预警信息。
  3.7.3 弹性借调
  顾名思义,弹性借调即根据业务的使用情况动态调整其预算额度,部分业务因持续增长,会导致配额吃紧,相反,部分业务可能因预算评估过高,导致配额冗余,或不同业务波峰波谷错开,可以配额互惠,具体实践则是对指定业务打标,然后按业务树,由下往上借调,如:
  1.业务树结构为A->B->C,A是一级业务,B为二级业务,C是三级业务。
  2.将C标记为核心业务,可做配额借调,若C的配额耗尽,则会从C上层业务B的范围做借调,即二级业务B下属的可用额度,借调到C业务上。
  3.若二级业务B范围内额度不够,则继续往上借调。
  4.若A范围内也不够,则告警通知增加配额。 4.展望
  通过以上述技术实践,我们沉淀了很多经验和能力,在往后的降本增效路上,还会有更多的云原生技术方向延伸,比如:通过ebpf、NUMA调度等机器性能挖掘技术,及大数据、AI等云原生技术结合方向探索,实现更好地降本增效技术落地,帮助业务更快发展受限于业务形态及发展规模,当前我们在离线混布、大数据、人工智能等云原生技术结合方向尚浅,后续随着业务的持续发展,我们将会投入更多相关实践,期望在高性能计算方向沉淀出更多技术结晶。 5.总结
  兴盛优选当前业务稳健发展,为了迎接未来可能会大规模业务增长,我们做了很多技术实践和探索,为未来即将到来的挑战做好准备,希望借助云原生技术的东风,助力业务更好的发展,本文着重将过程中以降本增效为方向的沉淀做了整理归纳,其中涉及超卖、调度、弹性、管控等多方面技术点,希望可以通过此次分享,帮助业界伙伴们提供一些思路和方法参考。

松江再添一家度假酒店!带上相机来看看自云间粮仓开园以来,涂鸦艺术已成为园区一道靓丽的风景线,市民游客纷纷来此打卡。在诸多涂鸦中,最引人注目的,无疑是由沪上著名涂鸦艺术家施政亲自操刀的筒仓涂鸦稻田守望者。如今,与八栋筒海南万宁日月湾有超级治愈的海浪声,安静的坐在沙滩上倾听风船计划2。0海南万宁日月湾如果你喜欢冲浪,一定知道日月湾,冲浪圈里常说中国最好的浪在日月湾,海浪是一种能量,主要来自于风。如果你畏首畏尾什么都不敢做,那么只能被海浪狠狠拍打,但是徐云说好像天神打翻了调色盘!很多人都说徐云的骑行也很精彩!我看了最新的一期,被他的一句话感动了。徐云说好像天神打翻了调色盘!徐云说的,就是下面图中的景观,海拔5830米,据说是世界上最高的公路垭口。乌青色的云1个旅游人像拍摄忌讳,摄影新手及时改正,旅游照片越来越好摄影中级班,天天评照片。为什么你拍的旅游照片不好看呢?今天分享一个容易被人忽略的原因。很可能是因为你的脸跟背景上的东西纠缠不清了。摄影中级班,天天评照片我们以下图(图一)为例,模特我的本地游一漫步傣乡水城清晨,我从家里步行400米来到傣乡水城,沿着栈道慢步走,河道两边种植着许多西双版纳特有的热带植物和树木,河水清澈,绿树成荫,一路行来,春风拂面,凉风习习,让人心旷神怡。因是周末,栈立夏前后,记得给家人吃1豆2肉2瓜,顺应节气,顺利度夏立夏前后,记得给家人吃1豆2肉2瓜,顺应节气,健康顺利度夏。转眼间马上就要立夏了,伴随着温度的高升,也就意味着夏天即将到来。此时也到了顺应时节调整饮食的重要时刻,伴随着温度的高升,马铃薯发芽了还能继续食用吗?马铃薯,俗称土豆,含有大量淀粉,还富含蛋白质氨基酸及多种维生素矿物质,能为人体提供热量。马铃薯是全球第四大粮食作物,仅次于小麦稻谷和玉米也是家常菜的重要食材。消费者贮存和食用时,发中老年人脑血栓怎么办?刮中指青筋关键时刻能保命?真相告诉您刮中指青筋在脑血栓发作的关键时刻可以保命。中老年人脑血栓怎么办?刮刮中指青筋就可以得到缓解。在临床上,脑血管疾病造成神经学缺损,导致存活者残障及生活失能,是家庭社会的一大负担。因此退休了,一天吃几餐比较合适,如何养生才会越养越好呢?退休后的老人,很喜欢在家里研究美食,希望自己身体健康没病没灾,身体好才能更好地享受退休后的美好生活。但是不少人发现,退休后反而觉得自己脾胃虚弱了,吃东西也不愿意消化,运动似乎也起不烦!干燥易上火一到春季就烂嘴巴,眼睛干痒,还耳鸣头晕好不容易到了春暖花开的季节,很多人却因为上火很是烦恼。据青州大华中医门诊的杨国亮主任介绍春季为四季之初,阳气升发之始,大地万物复苏生机勃勃,人大新疆新疆之大,超乎你的想象有一次自驾游,去阿勒泰。中间有一段高速,傍晚,昏暗的天空下,两边都是茫茫戈壁滩,没什么其他的景色。路上出奇的安静,人鸟声俱绝,内心着实有点害怕。高速我一个人开着车,眼皮直打架,昏昏
中超4消息!中超积分榜更新,三镇爆冷或丢冠,泰山紧咬不放第1个消息来自于中超积分榜。中超第17轮补赛,几场比赛的比分确实有些让人意外。武汉三镇在一场进球大战中34不敌沧州雄狮,而山东泰山则是以40大胜深圳队,北京国安与大连人战成22平,欧国联最新积分战报葡萄牙末轮只需战平西班牙瑞士2连胜升至第3北京时间9月25日凌晨,202223赛季欧国联A级小组赛第5轮进行了最后2场比赛的争夺,今天进行的是C组两场较量。经过一番鏖战,西班牙主场12不敌瑞士,葡萄牙客场40捷克。上轮葡萄什么是素圈戒指?佩戴素圈戒指都有什么讲究?问题怎么才能每天都收到这种文章呢?答案只需要点击右上角关注即可。大家好,我是东方,今天咱们来聊一聊这几年,人们在配饰方面的选择更倾向于简约时尚,不追求繁重的工艺设计和花里胡哨的装饰18岁红遍全球,40岁美得睿智优雅,她的人生太传奇话说,上周周报里,我们提到了大嘴安看秀,美到发光。她去看的,正是MichaelKorsCollection2023年春夏大秀。小郑特意去网上看了整个视频,都是给摩登都市女郎设计的衣正式退役!新疆男篮名将无球可打,投奔名帅被拒绝,告别CBA赛场这个夏天,CBA上演了一次失业潮,众多名将都因为没有找到新工作而告别了赛场,其中就包括了新疆名将买尔丹。过去两个赛季他在深圳男篮效力,通过减重,他给人焕然一新的感觉,不过买尔丹还是央视NBA解说历史最早是每周日下午两点在CCTV2会有NBA比赛的录像重播,解说是韩乔生孙正平,评论员是徐济成苏群张卫平。早期央视主持人堪称全才,韩乔生孙正平都不是只专注在某一项比赛里,而是各项比赛热身赛0完胜加纳北京时间9月24日凌晨2点30分,一场国际足球热身赛在巴西队和加纳队之间进行。上半场,马尔基尼奥斯头球破门,随后内马尔两次送出助攻,理查利森梅开二度下半场,两队都没有再进球。最终,20!亚洲第2太强了,击败世界第13,改写29年历史,中国队没比赛麒麟杯开打,日本男足和美国男足过招,经过全场比赛的对决,日本队以20的比分战胜了对手,29年来,日本队首次击败世界第13,为世界杯做好准备。当我们的近邻取胜世界强队的时候,我们的国79分钟绝杀,10爆冷!亚洲第一掀翻乌拉圭,国足差距太大世界杯的脚步临近,各支参赛队都抓紧时间进行热身。9月24日凌晨,伊朗和乌拉圭进行一场友谊赛。全场比赛,伊朗都被对手压着踢,但凭借塔雷米的进球,10击败乌拉圭。根据最新一期国际足联排羽坛名宿葛菲父亲早逝亲情有泪,退役结婚后人生现状怎样?头条创作挑战赛点击关注,每天都有名人故事感动您!葛菲近照葛菲是公认的羽毛球双打奇才,运动生涯她共夺得13次世界冠军,还夺得7次亚洲冠军,11次全国冠军,创造了世界羽坛的奇迹。199李梦王思雨表现出色,中国女篮负美国队,虽败犹荣女篮世界杯焦点之战,中国队迎战美国队。经过几轮比赛之后,小组排名中中国队两战全胜,以净胜分高于美国成功排在小组第一的位置,同样两战全胜的美国队排在第二位。今天的这场比赛,则是小组第