0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DPU的云原生计算资源共池管理解决方案

DPU高性能云异构算力解决方案 来源:DPU高性能云异构算力解决 作者:DPU高性能云异构算 2024-07-09 11:52 次阅读

1. 方案背景和挑战

在传统的云环境中,通常存在着不同的技术栈,支撑多样化的计算服务,具体如下:

① OpenStack环境与虚拟化云主机及裸金属服务

OpenStack是一个开源的云计算管理平台项目,它提供了部署和管理大规模计算、存储、网络等基础设施的一整套软件堆栈。在OpenStack技术栈中,Nova服务主要负责管理虚拟化云主机,而Ironic服务则专注于裸金属资源的管理。

② Kubernetes环境与容器服务

Kubernetes(简称K8s)是广受欢迎的容器管理平台,是行业内的事实标准,主要用于自动化容器应用的部署、扩展和管理。Kubernetes技术栈围绕容器化应用构建,通过其核心组件如kubelet、kube-apiserver、scheduler等,实现了容器资源的高效调度与管理。

虚拟化云主机、裸金属、容器这三种计算服务及其对应的资源池通常独立运行和管理,各自遵循不同的管理和调度规则。

这种分池管理的方式虽然在一定程度上保证了资源的专属性和安全性,但也构成了一个明显的瓶颈,严重制约了资源的灵活性、扩展性和整体利用率,对运营效率和成本控制带来了多重挑战。以下是对这一问题的深入剖析:

1.1. 扩展性受限

在分池管理的框架下,业务的可扩展性受到了严重制约。首先,由于资源池的容量是固定的,当某一资源池的资源即将耗尽时,即便其他类型的资源池中尚有大量闲置资源,也无法实现快速调配。其次,资源池的扩容往往需要人工介入,包括资源的重新规划、配置、测试等一系列繁琐流程,不仅耗时费力,还可能因为预判失误导致资源闲置或供给不足,从而影响业务的连续性和服务质量。这种扩展性差的问题,使得企业在面对市场变化和业务增长时,难以做到敏捷响应和快速扩张,进而错失商机。

1.2. 资源分配僵化与切换困难

资源池之间的独立管理进一步加剧了资源分配的僵化,使得在不同资源池之间进行资源切换或重新分配变得异常困难。例如,在虚拟机资源池接近满负荷运行的同时,裸金属资源池可能仍存在大量未充分利用的节点,但由于缺乏有效的资源池间通信和资源共享机制,这些裸金属节点无法被快速转换为虚拟机资源,以缓解虚拟机资源池的压力。这种资源分配的不灵活性不仅限制了系统的弹性伸缩能力,还导致了资源的冗余和浪费。

1.3. 整体资源利用率低下

资源池的独立管理导致了资源利用率的显著下降。由于各资源池之间的资源无法实现共享,即便某些资源池存在资源过剩的情况,也无法有效支援资源紧张的池子,从而造成了资源分配的不平衡。例如,容器资源池中创建的节点可能只承载了少量的容器应用,而与此同时,虚拟机资源池却可能面临严重的资源挤兑现象,导致新虚拟机的创建受阻。这种资源孤岛现象不仅降低了整体资源的使用效率,还可能引发一系列连锁反应,如服务延迟、性能下降和客户满意度降低等问题。

综上所述,传统云环境中资源池的独立管理方式暴露出了一系列问题,包括扩展性差、资源分配不灵活和资源利用率低等,这些问题共同构成了云计算资源管理的一大难题。为了解决这一挑战,业界正在积极探索和实践资源池融合、自动化资源调度和智能资源配置等创新技术,以期实现资源的高效利用和灵活调度,推动云计算基础设施向着更加智能、弹性和经济的方向发展。

2. 方案介绍

2.1. 整体方案架构

为了解决上述问题,我们提出了基于DPU的云原生计算资源共池管理解决方案,结合了DPU的硬件优势与Kubernetes的能力和插件生态,在Kubernetes架构下实现了虚拟机、裸金属和容器资源的无缝整合与统一管理,可以实现当某一类资源池(如虚拟机资源池)面临资源紧张时,系统能够自动从共享资源池中调用资源,实现Worker节点的快速扩容,而当资源需求下降时,又能够智能缩容,将多余Worker节点回收至共享池中,确保资源的按需分配与适时释放。

本方案中包括了BareMetalManager,这是基于DPU的裸金属管理软件包,由bm-controller、bm-api、bm-handler三个组件组成。它负责管理裸金属机器的生命周期,实现裸金属服务器的无盘启动、云盘的动态热插拔以及网卡动态热插拔。BareMetalManager将裸金属服务器作为 k8s资源进行统一管理,从而提升裸金属服务器的管理效率,并为虚拟机、容器资源池Worker节点的快速部署提供基础保障。

本方案的核心部分包括资源池状态感知、评估和调度,基于Kubernetes Cluster AutoScaler进行设计,其整体架构如下:

wKgaomaLwmaAXB7XAAFLTaaLQPY500.png

该架构主要是由以下几个核心组件完成:

AutoScaler:核心模块,负责集群节点及Pod信息检查,调用扩缩容功能。

Estimator:负责评估worker节点扩容需求,进行Pod预调度。

Simulator:负责评估worker节点缩容需求,模拟节点缩容。

Yusur Cloud Provider:负责将裸金属资源注册到为供Cluster AutoScaler扩缩容使用的NodeGroup。管理裸金属实例的创建和删除,并将裸金属实例加入或移出 Kubernetes集群。

2.2. 方案详细描述

本节主要对云原生计算资源共池管理方案的核心部分,即Cluster AutoScaler模块、扩缩容逻辑以及cloud provider进行介绍。

2.2.1. AutoScaler

AutoScaler启动后触发循环控制逻辑。每10s执行一次,检测集群状态,决定是否执行扩容或缩容操作。整体流程图如下:

wKgZomaLwrWAXPHyAAJtbwyi5dY713.png

从流程图中可以看到,AutoScaler关键逻辑为发现node,pod以及cloud provider信息。经过几个模块处理,将因资源不足导致未调度的pod缓存起来。然后进行下一步判断,是否需要调用ScaleUp或者ScaleDown进行扩缩容控制。

2.2.2. ScaleUp

ScaleUp是AutoScaler评估后需要执行扩容操作后调用的模块,其流程图如下:

wKgaomaLws2API9VAAHF-yNDGqg778.png

从流程图中可以看到,当AutoScaler检测到需要进行扩容操作后,ScaleUp还是会进行一些基础检查,如当前计算节点数量是否达到最大限制、扩容后资源是否超限等前置检查。然后通过调用Estimator,进行Pod预调度,进行扩容决策,最终选出一个NodeGroup,从该NodeGroup中申请节点对k8s集群进行扩容。

当集群中有多个 Node Group可供选择时,可以通过expander选项配置选择 Node Group的策略,支持如下三种方式:

random:随机选择;

most-pods:选择容量最大(可以创建最多 Pod)的 Node Group;

least-waste:以最小浪费原则选择,即选择有最少可用资源的 Node Group。

2.2.3. ScaleDown

ScaleDown是AutoScaler评估后需要执行缩容操作后调用的模块,其流程图如下:

wKgaomaLwu-ASLHNAAH3NzVIHOs906.png

从流程图中可以看出,缩容也会进行前置检查。缩容过程中最重要的是检查需要驱逐pod再移除相应节点的流程。当节点上需要驱逐Pod才能回收时,会调用Simulator模拟Pod驱逐,为被需要驱逐的Pod寻找可调度节点。由于在删除worker节点时会发生Pod重新调度的情况,所以应用必须可以容忍重新调度和短时的中断(比如使用多副本的 Deployment),当满足以下条件时,worker节点不会删除:

节点上有pod被PodDisruptionBudget(PDB)控制器限制,PDB是k8s中的一种资源,它为 Pod提供了一种保护机制;

节点上有命名空间是kube-system的pods;

节点上的pod不是被控制器创建,例如不是被deployment, replicaset, job, statefulset创建;

Pod使用了本地存储;

节点上pod驱逐后无处可去,即没有其他worker节点能调度这个pod;

节点有注解:”cluster-autoscaler.kubernetes.io/scale-down-disabled“:“true”,可以通过给节点打上特定注解保证节点不被Cluster AutoScaler删除;

配置 `cluster-autoscaler.kubernetes.io/safe-to-evict=false注解,可以确保 pod不被驱逐,pod所在 worker节点不被缩减。

2.2.4 Yusur Cloud Provider

yusurCloudProvider会在Cluster AutoScaler初始化的过程中进行注册NodeGroup信息,在执行ScaleUp和ScaleDown后得到实际的调用。其具体流程如下:

wKgaomaLwxKAVyveAAIfPK4zIpc747.png

其中将裸金属资源添加到集群共享资源池(NodeGroup),可以根据指定规则(如机型、CPU等)将其划分为多个组。每个 NodeGroup需要包含当前组中机器的详细配置,用于扩容过程中的模拟调度。

扩容与缩容操作中,裸金属实例的生命周期由BareMetalManager控制。

3. 方案优势

本解决方案针对传统云环境中资源池独立管理的挑战,提出了创新的资源共池管理机制,旨在大幅提升资源的灵活性、效率和利用率,以下是该方案的三大核心优势:

3.1. 增强业务可扩展性与弹性

该方案通过构建统一的资源池,打破了不同资源类型之间的界限,实现了资源的动态调配与共享。当某一资源类型(如虚拟机)面临资源瓶颈时,系统能够自动从共享资源池中申请额外资源,快速扩容以满足业务需求。反之,在资源空闲时,又能自动缩容,将多余的资源节点归还至共享池,避免了资源浪费。这种机制显著增强了业务的可扩展性和弹性,使得企业能够更加从容地应对业务波动和突发流量,提高服务的连续性和用户满意度。

3.2. 提升资源分配的灵活性与效率

通过资源共池管理,实现了资源的自动化和智能化分配,显著提升了资源分配的灵活性与效率。不再局限于固定资源池的限制,系统能够根据实时的资源需求和业务负载,自动在共享资源池中寻找最优的资源匹配,进行即时的资源调度。这种动态分配机制不仅简化了资源管理的复杂度,还极大地提高了资源分配的精准度和响应速度,使得资源能够更加高效地服务于业务需求,减少人为干预,提升整体运维效率。

3.3. 最大化资源利用率,降低成本

云原生计算资源共池管理解决方案通过打破资源池之间的壁垒,实现了资源的全局优化与共享,有效解决了资源孤岛问题,大幅提高了资源的整体利用率。在传统模式下,由于资源池的独立管理,资源分配往往呈现出不均衡状态,导致部分资源长期闲置。而共池管理方案能够根据实际需求动态调整资源分配,避免了资源的冗余和浪费,从而显著降低了企业的运营成本。此外,通过智能的资源调度算法,该方案还能进一步挖掘资源潜力,提升资源使用效率,为企业带来更大的经济效益。

基于DPU的云原生计算资源共池管理解决方案通过实现资源的统一管理、动态调配与智能优化,有效解决了传统云环境中资源管理的痛点,为构建更加灵活、高效和经济的云基础设施提供了有力支撑。

本方案来自于中科驭数软件研发团队,团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成,不仅拥有丰富的实战经验,还对行业趋势具备敏锐的洞察力,该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案,帮助最终客户加速数字化转型,提升业务效能,同时降低运营成本。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    7721

    浏览量

    137159
  • DPU
    DPU
    +关注

    关注

    0

    文章

    354

    浏览量

    24117
  • 云原生
    +关注

    关注

    0

    文章

    240

    浏览量

    7934
  • kubernetes
    +关注

    关注

    0

    文章

    223

    浏览量

    8690
收藏 人收藏

    评论

    相关推荐

    基于DPU与SmartNic的云原生SDN解决方案

    随着云计算,大数据和人工智能等技术的蓬勃发展,数据中心面临着前所未有的数据洪流和计算压力,这对SDN提出了更高的性能和效率要求。自云原生概念被提出以来,Kubernetes为云原生应用
    的头像 发表于 07-22 11:44 622次阅读
    基于<b class='flag-5'>DPU</b>与SmartNic的<b class='flag-5'>云原生</b>SDN<b class='flag-5'>解决方案</b>

    《数据处理器:DPU编程入门》读书笔记

    。以DPU为技术代表的新算力架构,正在重新定义数据中心和云原生技术的基础架构。 DPU的出现,是随着数据中心的高速发展,通信能力和计算能力成为数据中心基础设施的相辅相成的两个重要发展方
    发表于 12-21 10:47

    只需 6 步,你就可以搭建一个云原生操作系统原型

    的帮助,提供什么样的解决方案。另外一个方面,云原生 SIG 也会负责拉通龙蜥社区内部的其他相关的技术 SIG。比如会协同 机密容器 SIG、高性能存储 SIG、容器网络 SIG 以及容器 OS SIG
    发表于 09-15 14:01

    源于TI领域的“云原生计算”对于推动5G网络发展有什么好处?

    源于TI领域的“云原生计算”对于推动5G网络发展有什么好处?
    的头像 发表于 07-16 15:06 3352次阅读
    源于TI领域的“<b class='flag-5'>云原生计算</b>”对于推动5G网络发展有什么好处?

    云原生计算对这三个热门市场的影响

    云原生计算如今正在成为业界最大和最具影响力的云计算范例。人们需要对其进行了解。
    的头像 发表于 09-28 02:27 2333次阅读

    华为Volcano项目为构建云原生批量计算平台奠定基础

    4月10日,CNCF(云原生计算基金会)正式接纳由华为云捐赠的容器批量计算项目Volcano, 迎来CNCF首个容器批量计算项目。Volcano项目的加入,将CNCF的云原生版图进一步
    的头像 发表于 04-17 14:26 2508次阅读

    云原生2.0时代 我们还要做什么?

    华为云自2015年以创始会员的身份参与了云原生计算基金会的组建,在过去的这5年时间里,华为云全面见证了云原生技术和产业的兴起和发展:开源项目能力的完善期、云原生产业的发展与融合期,再到如今,
    的头像 发表于 12-21 13:36 1796次阅读

    从云计算的初心尝试谈谈什么是真正的云原生

    不同云厂商的说法。2020年9月,阿里云成立了云原生技术委员会,今天我就从云计算的初心尝试谈谈什么是真正的云原生。 狭义的云原生 让我们先回顾云原生
    的头像 发表于 02-12 09:20 1941次阅读

    一种5G网络云原生应用资源调度优化策略

    随着5G网络和云原生技术的发展,面向服务的5G云原生核心网应运而生,传统应用正朝着云原生化方向发展。目前云原生服务提供商和云原生应用商数量众
    发表于 04-29 11:25 9次下载
    一种5G网络<b class='flag-5'>云原生</b>应用<b class='flag-5'>资源</b>调度优化策略

    云原生的目的是构建和运行可弹性扩展的应用

    CNCF,The Cloud Native Computing Foundation的缩写,云原生计算基金会。这是业界首个以云原生为主题的组织。 本文摘录自“云原生计算研究报告”,内容重点分析了微服
    的头像 发表于 11-08 16:25 1982次阅读
    <b class='flag-5'>云原生</b>的目的是构建和运行可弹性扩展的应用

    Volcano:云原生高性能批量计算平台

    云原生时代,Kubernetes(K8s) 已经成为云原生应用编排、管理的事实标准,越来越多的应用选择向 Kubernetes 迁移。 在 CAE 仿真、动漫渲染、物理化学、石油勘探、生命科学、气象
    发表于 12-07 15:33 652次阅读
    Volcano:<b class='flag-5'>云原生</b>高性能批量<b class='flag-5'>计算</b>平台

    华为电信云原生解决方案助力运营商解决网络云原生化痛点

    近日,由著名国际电信行业媒体Total Telecom举办的亚洲通信大奖(Asia Communication Awards)颁奖典礼在线上举行,华为电信云原生解决方案荣获“网络功能虚拟化创新奖(NFV Innovation Award)”。
    的头像 发表于 12-22 13:52 4171次阅读

    中科驭数亮相openEuler Summit 2022 探讨DPU云原生网络的场景应用

    当日下午举办的“虚拟化云原生”分论坛,分享DPU云原生时代的创新应用与解决方案实践。 openEuler Summit 是由欧拉开源社区发起并举办的年度开源操作系统峰会。openEu
    的头像 发表于 01-03 12:27 1430次阅读

    中科驭数携手DaoCloud道客开拓DPU云原生计算场景的应用

    打造基于 DPU+云原生的产品和联合方案,通过技术融合增强行业技术影响力和产品市场竞争力,同时进一步推动国产信息自主创新领域 DPU云原生
    的头像 发表于 04-20 09:31 1118次阅读

    中科驭数分析DPU云原生网络与智算网络中的实际应用

    CCF Chip 2024,精彩不能停!7月21日下午,中科驭数在第二届中国计算机学会(CCF)芯片大会的“驭数专属时刻”仍在继续,驭数组织承办“DPU技术趋势和应用——DPU云原生
    的头像 发表于 08-02 11:21 638次阅读