更新时间:2024-08-17 GMT+08:00

云原生混部概述

随着云原生技术迅速发展,海量应用正在走向云原生化。从2021年到2022年,Kubernetes集群中的云原生应用总数同比增长30%+,Kubernetes正在成为云时代的“操作系统”。但随着进一步调研发现,应用部署在Kubernetes集群后,大部分用户节点的CPU利用率不足15%。在调研不同类型客户,排除一些闲置资源、套餐活动等干扰因素后,发现造成资源利用率低的主要因素可归纳为如下几点:

  1. 集群规划粒度过细,节点分布过散:集群规划粒度过细,节点分布在多个不同的集群中,使得计算资源无法共享,计算资源碎片数量增加。
  2. 节点规格没有跟随应用迭代而变化,资源分配率低:初期节点规格与应用规格匹配度较好,资源分配率较高;随着应用版本迭代,应用申请资源发生变化,与节点规格比例差异较大,使节点分配率降低,计算资源碎片数量增加。
  3. 业务“潮汐”特性明显,预留资源较多:在线业务具有明显日级别波峰、波谷特性,用户为保证服务的性能和稳定性按照波峰申请资源,集群的大部分资源处于闲置状态。
  4. 在线和离线作业分布不同集群,资源无法分时复用:用户为在线和离线作业划分不同的K8s集群中,在线业务在波谷时,无法部署离线作业使用这部分资源。

这些都是云原生应用粗犷发展阶段的典型表现。在业务云原生化过程中,不同的业务架构有着不同的部署方案,不同架构的应用有着不同的演进节奏,不同的团队有着性能和服务质量的平衡点。面对这样复杂的场景,应该如何化繁为简,帮助用户有步骤的提升资源利用率和控制成本呢?

CCE通过多年在混合部署领域的探索和实践,围绕Volcano和Kubernetes生态,构建帮助用户提升资源利用率,实现降本增效的云原生混部解决方案。

如上图所示,混部不是简单将小集群合并成一个大集群,然后将多个不同的业务部署在同一个集群中那么简单,而需要确保用户的应用能够部署到合适的位置,并能保障其需要的资源。这也是云原生混部解决方案中的两个核心设计:全域统一调度和资源分级管控。

全域统一调度和资源分级管控

全域统一调度

应用的全域统一调度的核心是全域和统一,比如:分布式云场景中跨云、跨集群的统一调度,以及不同在线应用、离线任务的统一调度。

  • 首先,Volcano通过静态分析,获取应用的静态特征,如:CPU、内存、存储、GPU等资源的需求,应用间亲和性、区域亲和性、云平台亲和性等。
  • 接着,Volcano对接监控系统,获取不同云平台资源、集群资源的动态数据,以及应用运行的数据,分析其规律,获得其运行态势,如:业务分级(天/周/月)的潮汐规律性、CPU敏感型、L3缓存敏感型、内存敏感型等。
  • 最后,通过Volcano丰富多样的、按需启用的调度策略,将应用调度到合适的环境中。如:基于预测的智能调度策略、基于业务的binpack装箱/重调度策略、基于运行态势的资源超卖策略等。

Volcano将分布式云平台中的资源统一管理,将不同类型的应用调度到合适的位置,有效的解决了多集群带来的资源碎片问题和因应用迭代带来的节点规格不匹配问题,帮助用户从繁杂的资源规划和版本迭代带来的变化中解脱出来。

资源分级管控

应用被调度到合适的运行环境后,如何来保障其所需要的资源呢?

基于Huawei Cloud EulerOS 2.0操作系统,从CPU、L3缓存、内存、网络、存储等全方位提供资源隔离能力,并以内核态为主,用户态为辅,通过快速抢占(毫秒)和快速驱逐(秒级),保障在线业务的服务质量。

  • 资源隔离的措施,如:CPU的绑核、NUMA亲和性、潮汐亲和特性,网络带宽控制等,有效的保障资源敏感型业务的SLO。
  • 资源优先级控制的措施,如:CPU分级控制、内存分级控制、网络优先级控制、磁盘IO的优先级控制等,在提升资源分配率的同时,又少影响或不影响优先级高的业务SLO。

资源分级管控为业务潮汐明显的在线业务间混部、在线和离线业务混部奠定了基础。解决了应用预留资源较多、资源无法分时复用的问题。

在线作业与离线作业

从业务是否一直在线的角度看,其类型可分为在线作业和离线作业。

  • 在线作业:一般运行时间长,服务流量呈周期性,资源存在潮汐现象,但对服务SLA要求较高,如广告业务、电商业务等。
  • 离线作业:往往运行时间短,计算需求大,可容忍较高的时延,如AI/大数据业务。

功能介绍

功能

描述

参考文档

动态资源超卖

根据在线作业和离线作业类型,通过Volcano调度将集群中申请而未使用的资源(即申请量与使用量的差值)利用起来,实现资源超卖和混合部署,提升集群资源利用率。

动态资源超卖

CPU Burst弹性限流

提供一种可以短暂突破CPU Limit值的弹性限流机制,以降低业务长尾响应时间,可以有效提升时延敏感型业务的服务质量。

CPU Burst弹性限流

出口网络带宽保障

平衡在线业务与离线业务对出口网络带宽的使用,保证在线业务有足够的网络带宽。

出口网络带宽保障