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

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进行设计,其整体架构如下:

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

  • 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执行一次,检测集群状态,决定是否执行扩容或缩容操作。整体流程图如下:

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

2.2.2. ScaleUp

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

从流程图中可以看到,当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评估后需要执行缩容操作后调用的模块,其流程图如下:       

从流程图中可以看出,缩容也会进行前置检查。缩容过程中最重要的是检查需要驱逐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后得到实际的调用。其具体流程如下:

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

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

3. 方案优势

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解 RTOS 中断处理机制:实战项目与代码解析

中断,如同嵌入式系统的神经反射,实时响应着外部事件,是保证系统实时性和可靠性的关键。在实时操作系统(RTOS)中,中断处理机制更是重中之重。本文将结合一个具体的项目案例,深入剖析 RTOS 中断处…

LabVIEW高能质子束流密度分布测试系统

LabVIEW平台开发的高能质子束流密度分布测试系统。该系统主要应用于电子器件的抗辐射加固试验,旨在精确测量高能质子束的密度分布,以评估电子器件在辐射环境下的性能表现和耐受能力。 系统组成与设计 硬件组成: 法拉第杯探测器:…

【ARMv8/v9 GIC 系列 2.4 -- GIC SGI 和 PPI 中断的启用配置】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC SGI 和 PPI 中断的使能配置GICR_ISENABLER0 操作使用举例SummaryGIC SGI 和 PPI 中断的使能配置 GICR_ISENABLER0寄存器(中断设置-使能寄存器0)用于启用相应的SGI(软件生成中断)或PPI(专用外设中断)向CPU接口的转发。每个…

Vue基础知识:Vue3.3出现的defineOptions,如何使用,解决了什么问题?

1.那么为什么会出现defineOptions? 原因说明&#xff1a; 有<script setup></script>语法糖应用之前&#xff0c;如果要定义 props&#xff0c;emits 可以轻而易举地添加一个与 setup 平级的属性。但是用了<script setup>后&#xff0c;就没法这么干了整个…

成长过程,摔倒不要紧,爬起来、改过、前进

无论何时何地&#xff0c;我们都有重头再来的能力&#xff0c;这份生生不息的力量来自天之灵根&#xff1b; 学习过程会有跌倒&#xff0c;这是很正常的节奏次序&#xff0c;不能掩盖自己的过失、自欺欺人&#xff0c;这不是过失&#xff0c;摔倒了就拍拍身上的灰尘&#xff…

算法题:用JS实现删除链表的倒数第N个节点

学习目标&#xff1a; 删除链表的倒数第N个节点 leetcode原题链接 学习内容&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点 示例 1: 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2: 输入&a…

谷粒商城学习笔记-2-分布式组件-SpringCloud Alibaba-Nacos注册中心

文章目录 一&#xff0c;Nacos简介1&#xff0c;简介2&#xff0c;Nacos原理剖析 二&#xff0c;Nacos服务端安装1&#xff0c;下载 nacos-server2&#xff0c;解压启动nacos-server3&#xff0c;验证 三&#xff0c;服务注册步骤1&#xff0c;引用Nacas客户端的Jar包2&#xf…

c++之命名空间详解(namespace)

引例 在学习之前我们首先了来看这样一个情形: 在c语言下&#xff0c;我们写了两个头文件&#xff1a;链表和顺序表的。我们会定义一个type(typedef int type)方便改变数据类型&#xff08;比如将int改成char&#xff09;&#xff0c;来做到整体代换。 但是我们两个头文件里面…

python实现接口自动化

代码实现自动化相关理论 代码编写脚本和工具实现脚本区别是啥? 代码&#xff1a; 优点&#xff1a;代码灵活方便缺点&#xff1a;学习成本高 工具&#xff1a; 优点&#xff1a;易上手缺点&#xff1a;灵活度低&#xff0c;有局限性。 总结&#xff1a; 功能脚本&#xff1a;工…

【C++】BMP图片结构深度解析及其在C++中的操作与应用

引言 BMP&#xff08;Bitmap Image File&#xff09;是一种与设备无关的图像文件格式&#xff0c;它采用了一种非常直接的方式来存储图像数据&#xff0c;即按照图像的行和列顺序&#xff0c;逐像素地存储颜色值。由于其简单性和可移植性&#xff0c;BMP文件在图像处理、图像分…

windows电脑桌面便签在哪里找?

在忙碌的工作中&#xff0c;我们经常会有很多事情需要记住。这时&#xff0c;电脑桌面便签就成为了我们的好帮手。那么&#xff0c;在Windows电脑上&#xff0c;我们该如何找到桌面便签呢&#xff1f;下面&#xff0c;就让我来为大家详细介绍一下。 其实&#xff0c;Windows电…

告别盲目跟风!1688竞品数据分析实战指南(图文解析)

不管是哪个行业&#xff0c;想把这个做起来&#xff0c;做下去&#xff0c;第一就要学会模仿&#xff0c;不要自己盲目瞎做&#xff0c;因为别人的数据&#xff0c;都是得到了认可的&#xff0c;先模仿后超越&#xff0c;1688运营里面模仿就是要学会看竞品&#xff0c;店雷达总…

基于AD8232的心电图套件的测试

基于AD8232的心电图套件的测试 1、测试设备2、电源的选择3、 用于测试心电图套件的模拟心电图电路基本4017B的电路基于multisim的电路仿真基于STM32F103RCT6 参考测试数据 1、测试设备 1、AD8232心电模块 2、手持示波器 3、心电信号模拟发生器 4、NI multisim 14.3 5、实物待补…

django后台定制

Django 后台&#xff08;Admin&#xff09;是一个强大的工具&#xff0c;用于管理 Django 项目中的数据模型。然而&#xff0c;默认的 Django Admin 可能无法满足所有项目的需求&#xff0c;因此经常需要进行定制。以下是一些关于 Django 后台定制的推荐、介绍以及技术实现的建…

全卷积网络之FCN图像语义分割

前言 FCN是一种用于图像语义分割的全卷积网络&#xff0c;可以端到端进行像素级预测。 语义分割 图像语义分割是图像处理和机器视觉技术中的重要一环&#xff0c;旨在对图像中的每个像素进行分类。与普通的分类任务不同&#xff0c;语义分割任务输出与输入大小相同的图像&…

鸿蒙语言基础类库:【@ohos.uri (URI字符串解析)】

URI字符串解析 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入…

亿康源精英盛宴暨亿康源启动成功举办

&#xff08;本台记者报&#xff09;2024年7月7日下午&#xff0c;亿康源精英盛宴暨启动仪式在杭州市中维歌德大酒店盛大举行。此次盛会不仅吸引了行业内的专业人才、著名投资界大咖和科技领域的杰出企业家&#xff0c;还汇聚了众多关注大健康产业的各界人士&#xff0c;共同见…

软件设计之Java入门视频(13)

软件设计之Java入门视频(13) 视频教程来自B站尚硅谷&#xff1a; 尚硅谷Java入门视频教程&#xff0c;宋红康java基础视频 相关文件资料&#xff08;百度网盘&#xff09; 提取密码&#xff1a;8op3 idea 下载可以关注 软件管家 公众号 学习内容&#xff1a; 该视频共分为1-7…

【在线词典】项目实现

15_Dictionary 在线词典 搭建客户端-服务器架构 准备必要的资源 整理原始数据 整理英汉双语对照表&#xff0c;将XLSX格式转换成CSV格式&#xff0c;准备好vocabulary_list.csv文件备用 注意&#xff1a;CSV格式的文件必须使用UTF-8的字符集&#xff1b; 建立mydatabase.…

SCI三区|儿童学习优化算法KLO:基于社会进化和认知学习的优化算法

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;ST Javed受到社会环境下家庭儿童的早期社会学习行为启发&#xff0c;提出了儿童学习优化算法&#xff08;Kids Learning Optimizer, KLO&#xff09;。 2.算法原理 2.…