加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

基于K8S,云原生架构的成本优化攻略

发布时间:2022-04-25 09:40:19 所属栏目:云计算 来源:互联网
导读:在探讨成 本优化 之前 ,我们 先来 看看 货拉拉 的基 本情 况,让 大家 对货拉拉有一个初步的认识。 货拉拉的生产环境是100%跑在公有云上的,所以我们的成本优化也是针对公有云。货拉拉是一间全球化的互联网公司,我们的业务遍布世界各地,在新加坡、印度、
  在探讨成 本优化 之前 ,我们 先来 看看 货拉拉 的基 本情 况,让 大家 对货拉拉有一个初步的认识。
 
  货拉拉的生产环境是100%跑在公有云上的,所以我们的成本优化也是针对公有云。货拉拉是一间全球化的互联网公司,我们的业务遍布世界各地,在新加坡、印度、拉美和国内都有集群,所以我们必定会有多个集群跑在不同的云厂商上,这就决定了我们的所有方案都必须是通用的,不绑定任何云厂商的。货拉拉的流量比较规律,高峰低谷也比较明显,货运行业一般没有什么突发事件导致流量突增,不像微博这种服务,某个明星突然丢出一个瓜就引来一大波吃瓜群众,导致流量突增。同时,同城货运是个日出而作、日落而息的行业,所以白天高峰期比较稳定,晚上低峰期流量也会降到很低,这样的流量特点可以使我们通过简单的预测算法就达到较好的预测效果,同时低峰期的成本优化也将会是我们的优化重点。货拉拉也会有大量的大数据离线任务,大数据的离线任务占了我们公司大概一半的计算资源,并且高峰期正好是业务的低峰期,所以如何通过离在线的混合部署提高整体资源利用率也是我们的优化方向之一。
  
       基于K8S的成本优化手段
  讲完货拉拉的基本情况,我们再来看一下云原生时代下,一般有哪些成本优化手段,我把主流的成本优化手段分成四类:
 
  私有云的服务器成本优化
  公有云的服务器成本优化
  服务器利用率优化
  服务性能优化
  由于货拉拉是100%跑在公有云上,所以我们本次不讨论私有云方面的优化。而服务性能优化是非常个性化的优化,所以也不在我们这次讨论范围内,我们这次主要讨论公有云的服务器成本优化和服务器利用率优化。
 
  1、公有云的服务器成本优化
 
  所谓公有云的服务器成本优化,其实就是研究如何在保证满足公司实际需求的前提下,以尽可能低的价格买到服务器实例。
  
       公有云的服务器,一般有三种优惠模式:
 
  包年包月: 按固定周期购买一台服务器,这种模式稳定性高,价格实惠,但是弹性不足,特别是晚上想缩容根本缩不动。
  节省计划: 这种模式其实就是通过承诺每小时最低消费换取折扣,稳定性有保障,服务器也可以随意伸缩变换,但是每小时的总消费不能低于承诺消费,一般来讲公司都会按最低需求购买。
  竞价实例: 竞价实例就是云厂商将闲置的实例通过固定折扣或竞价的方式出售,折扣一般能到一折或两折,竞价实例有最便宜的价格以及不输按需实例的灵活性,但是不稳定,随时有被回收的风险,使用这种实例对公司的技术能力和服务质量都有较高要求。
  2、服务器利用率优化
  下面我们再来看看提升服务器利用率的一些常用优化手段。
 
  1)合理request/limit
 
  如何科学合理地配置request/limit是每个公司使用k8s都会遇到的问题,request调整太大节点利用率低,调整太小服务容易OOM或者被驱逐。一般来讲优化方式分两步,第一步是根据应用画像和过往负载设置一个初始值,第二步是建立巡检机制定期巡检,根据实际负载和策略动态调整request/limit配置。

  2)智能调度
 
  智能调度是指根据公司实际需求增强调度器。k8s默认的调度器比较简单,但一般不能完全符合公司需求,并且有较大的优化空间,例如实际负载感知、权重计算增加更多维度、磁盘GPU、优化堆叠策略等,通过优化更符合公司实际情况的调度算法,可以有效地提升节点资源利用率。
 
  3)在离线混合部署
 
  离在线混合部署是利用离线任务可以中断以及高峰期与在线服务相反的特点,充分利用服务器算力的一种方式。由于离线任务一般是在晚上运行,如果将离线任务和在线服务整合进一个k8s集群,那刚好可以弥补在线服务低峰期时的资源浪费,同时,如果离线任务可以支持随时中断,那通过自动避让以及资源隔离等手段,还可以实现在高峰期利用空闲资源运行离线任务,榨干服务器最后一滴性能,但是这项能力在大幅度提升服务器利用率的情况下,也带来了巨大的技术挑战。
 
  符合货拉拉特点的成本优化路线
  通过结合上面说的业界最佳实践和货拉拉的实际情况,我们探索出了以下这条货拉拉成本优化演进路线。
 
  首先我们通过节省计划以相对优惠的价格保证了货拉拉的基础算力和稳定性,然后使用价格低廉且伸缩灵活的竞价实例来提供弹性伸缩的算力,当然我们也做好了准备面对竞价实例带来的稳定性挑战,到此基本上解决了服务器价格的优化问题。
 
  接下来我们就需要解决服务器利用率的问题。
 
  首先我们需要解决低峰期资源浪费的问题。刚刚讲过货拉拉的流量是很有规律的,所以我们通过自研CronHPA实现可预测和计划内的弹性伸缩,同时通过HPA实现流量突增时的紧急扩容。这是我们已经做完的内容。
 
  我们目前正在做的是智能request,通过应用画像和过去的指标计算出合理的request和limit,期望通过这个功能提高高峰期的节点资源利用率。
 
  当我们完成前面这几项后,我相信我们已经极大的提高了节点的资源利用率,剩下的就是走完最后一公里,通过智能调度和在离线混合部署榨干服务器的最后一滴性能,我们计划在2023年完成这些功能,之后再整体不断优化。
 
 

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读