既要稳也要省,容器资源该怎么分配?( 二 )


  • 收益1:资源层面 , S级服务CPU外部争抢降低60% ~80% , A级服务CPU外部争抢降低30~50% 。
  • 收益2:业务延迟方面 , 业务99分位延迟(均值)降低7% ~ 20%业务99分位延迟(最大值)降低5% ~ 15% 。
  • 收益3:容量方面,高峰期S级服务比之前多承载30%+流量,S级服务比之前能缩容30%+资源 。
  • 收益4:业务收益角度,高峰期CPU外部争抢下降65%~75%,毛刺基本消失 , 业务延迟指标下降5%~25% , 业务压测CPU外部争抢下降60%~70% 。
弹性云新分级保障体系总体架构为了支持新分级保障体系,弹性云从下到上,针对每一层中的相关组件都进行开发改造 , 同时也包含了系统部 CMP 系统quota相关的开发工作 , 主要体现在操作系统层、k8s 调度层、kube-odin 层、服务树和系统部 CMP 系统 。
既要稳也要省,容器资源该怎么分配?

文章插图
从上述架构图中可以看到 , 位于最底层的是机房的物理机资源,物理机分别位于不同的机房 。
操作系统层物理机之上是操作系统层,操作系统层面分为内核态和用户态 。在内核态新增特性上,新分级体系对 CPU 调度,内存管理 , IO 读写都进行了针对性的开发和优化 。
CPU 调度:
  • 新增优先级权重概念,不同优先级容器的调度权重不同,用于区分不同等级容器调度优先级 。
  • 新增 CPU Burst 技术,允许部分重要容器能短时间内突破规格的上线,临时使用超量的 CPU 。
内存管理:
  • 新增优先级回收技术,优先回收低优先级容器的内存 , 最后回收高优先级容器内存 。
  • 新增分级水位特性 , 减少系统内存紧张时高优先级容器内存分配受阻 。
IO 读写:
  • 新增带宽限速特性,支持对低优先级容器的 IO 读写带宽进行限速 , 以减少对高优先级容器的影响 。
  • 新增优先级带宽分配特性,支持按容器优先级分配 IO 带宽 。
在用户态新增特性上,操作系统用户态针对新分级体系的支持主要体现在 Kubelet、IRMAS 和单机资源调度这几个组件上 。其中,kubelet 和 IRMAS 主要新增了新分级体系容器的识别、信息采集上报、单机资源配置、环境适配等工作 。新增单机资源调度模块实现了极端情况下单机资源的压制和恢复,以及与 k8s 调度联动等功能 。
k8s 调度层在 k8s 容器调度层,针对新分级体系新增了最小资源保障策略,指的是通过合理的调度,保障任何时候 , 容器均能获得承诺的资源量 。
容器分级均衡打散策略指的是保证一台物理机上不会存在过多同一级别的容器,将不同等级的容器均匀打散到不同的物理机上 。
分级容量资源大盘指的是资源大盘新增新分级体系容器支持,实时观察新分级容器容量健康情况 。
扩容成功率保障指的是新增容量预估特性,优化资源申请流程,实时监控弹性云可供扩容资源量 , 有效提高扩容成功率 。
kube-odin 层kube-odin 层配合新分级体系也进行了相关改动和升级:
  • 新增新等级接入平台:包括新等级容器查询操作相关接口的适配 。
  • 计费管理模块:新增新分级体系容器的计费支持,支持多种计费场景 。
  • 服务 quota 操作:新增 quota 操作接口 。
服务树服务树在保持兼容性的基础上 , 新增了新分级体系集群信息的支持 。
系统部 CMP 系统新体系容器的 quota 申请和使用由系统部 CMP 系统操作和记录 。
CMP 系统通过获取业务申请的 quota 信息,能明确推算所需的物理机资源,更好实现物理机资源的保障 。针对新体系容器的 quota 支持,CMP 系统新增了 quota 成本账户、quota 成本账户以及 quota 申请模块 。