基于DPU的云原生裸金属网络解决方案

1. 方案背景和挑战

裸金属服务器是云上资源的重要部分,其网络需要与云上的虚拟机和容器互在同一个VPC下,并且能够像容器和虚拟机一样使用云的网络功能和能力。

传统的裸金属服务器使用开源的 OpenStack Ironic 组件,配合 OpenStack Neutron 网络实现。

传统方案1:在Neutron使用VLAN网络时,每个VPC网络会分配一个唯一的VLAN标签。通过在裸金属服务器的网卡上配置相应交换机端口的VLAN标签,使其与目标网络的VLAN标签匹配,就可以将裸金属服务器的网络切换到对应的VPC中。

尽管VLAN网络在流量管理和网络隔离方面具有较高效率,但也存在一些缺点:

  • 可扩展性有限,仅支持4096个VLAN,不能应用在大规模和复杂环境中;
  • 管理复杂,需要一致性配置和手动维护;
  • 广播域限制,可能导致网络拥塞。

为了解决传统方案1的扩展性和管理灵活性问题,业界逐渐开始采用传统方案2:利用SDN交换机进行VXLAN/Geneve处理。裸金属服务器通过VLAN接入SDN交换机,后者负责对数据包进行封装,然后将流量引入对应的VPC网络,实现裸机与虚拟机互通。如下图所示:

这种方案相比传统方案1,提升了网络的可扩展性,通过Overlay网络提高了网络可扩展性、灵活性和安全性。但是,这种方案仍面临很多问题与挑战:

  1. 网络架构割裂问题:该方案未能实现虚拟网络与裸机网络架构的统一管理,导致两者的配置和管理流程存在差异,增加了运维团队的学习成本和操作复杂度。这种割裂不仅减缓了网络变更的响应速度,还可能引发配置错误,影响网络的稳定性和一致性。
  2. 成本与维护负担:依赖SDN交换机进行网络封装处理,虽然带来了技术上的进步,但同时也引入了额外的硬件采购与维护成本。这些交换机的部署与升级都需要专业的技术支持,且设备本身的价格不菲,长期来看对预算造成压力。此外,特定品牌和型号的SDN交换机可能限制了技术选型的自由度,影响网络架构的扩展性和兼容性,不利于技术迭代和未来升级。
  3. 灵活性与扩展性局限:在该方案中,裸金属服务器仅通过单一物理网卡接入SDN交换机,这种连接方式的固定性,限制了网络接口的灵活性和扩展能力。尤其是缺乏热插拔支持,意味着在需要调整网络配置或增加网络带宽时,必须停机操作,这不仅影响了业务连续性,也降低了数据中心的运维效率和资源的快速调配能力。

综上所述,尽管传统方案2在一定程度上改善了网络的扩展性和安全性,但其存在的架构复杂性、较高的成本投入、以及有限的灵活性和扩展性,成为制约裸金属服务高效运营和未来发展的主要障碍。因此,探索更优化的网络解决方案,以实现网络架构的统一管理、降低成本负担、并增强灵活性与扩展性,显得尤为迫切。

2. 方案介绍

2.1. 整体方案架构

本方案基于DPU的网络能力,采用开源 Kubernetes 底座架构,以OVN/OVS做为网络转发面,整体架构如下图所示:

在集群架构中,裸金属服务器既可以单独使用,也可以作为Worker节点加入Kubernetes集群,部署Pod或虚拟机(VM)。无论是作为裸金属服务器,还是作为Worker节点,网络I/O均由DPU卸载,并通过OVN进行统一管理。在使用SmartNIC或普通网卡的Worker节点中,OVN的流表管理和下发逻辑保持不变,仅将网络I/O交由主机侧处理。整体方案采用统一的OVN控制器进行策略下发和调度,实现DPU裸机网络与Pod/VM之间的网络互通。

本方案的关键组件为自研,包括以下组件:

● bmctl:类似于 kubectl 的一个便于操作裸金属的命令行工具。

● ycloud-cni:为裸金属提供虚拟网卡配置功能,实现CNI接口,并对本地 OVS网络进行配置。

● ycloud-ovn-controller:该组件执行K8S内资源到OVN资源的翻译工作,其作用相当于SDN系统的控制平面。监听所有和网络相关的资源事件,并根据资源变化情况更新OVN内的逻辑网络。

2.1. 方案详细描述

裸金属的网络完全由DPU卡来配置,裸金属机器本身可以不携带任何物理网卡,而是通过DPU提供的PF/VF设备作为网卡设备。这些设备由DPU SOC(SOC 可以灵活对软件升级和部署服务)侧的OVS进行配置,而不依赖外部交换机,可以实现VXLAN、Geneve等各种虚拟网络,本方案具有性能优越、灵活性强、部署简化、管理统一、高可扩展性等优点,是一种高效和可靠的裸金属网络解决方案。如下图所示:

在裸金属方案中,网卡被抽象为弹性虚机网卡(VNic)对象,由bm-controller根据用户需求创建VNic对象,并由Ycloud-cni组件将VNic绑定到裸金属。在这个过程中,bm-controller会为Host侧分配PF/VF,并调用OVS将相应的端口绑定到OVS网桥,进行必要的配置。这种方案无需更改交换机的配置,同时将控制面和数据面都卸载到DPU中处理,使得管理流程与虚拟网络中的POD/VM基本一致。唯一的区别在于本地虚拟网络设备的生成过程,使用Ycloud-cni-ds处理配置DPU本地网络。如下图所示:

总体来说,基于DPU的裸金属网络方案为裸金属服务器提供了灵活且高效的网络管理解决方案。

基于DPU的裸金属方案使用DPU的VF设备提供网卡功能,动态配置网卡,无需冗余网卡。Ycloud-cni组件负责管理PF/VF设备,实现网卡的动态插拔和配置。相比原生Ironic的冗余网卡需求,这种方案更灵活高效,避免资源浪费。 DPU提供数百个以上的VF,足以满足不同用户需求,使得网卡的热插拔变得简单而高效,提高资源利用率。

3. 测试与验证

3.1. 资源创建

与其他k8s 资源的创建类似,裸金属的通过一个yaml描述进行创建,同时创建POD、VM:

kubectl apply -f bm-xxx.yaml
kubectl apply -f pod-xxx.yaml
kubectl apply -f vm-xxx.yaml

裸机yaml中网络信息:

VM yaml中的网络信息:

POD yaml中的网络信息:

查看资源信息如下:

创建后,可通过 kubectl 命令查看:

裸机可以看到bm-01、bm-02及 bm-node3三个裸金属实例,均为 Running 状态。

我们提供了类似 kubectl 的一个 bmctl 命令行工具,方便进行管理维护。通过该命令,可以方便的进行登录、重启、网卡插拔等操作:

3.2. 联通性

验证BM跟POD和VM的网络互通情况

裸机和POD互通:

裸机和VM互通:

3.3. 热插拔

通过提供的 bmctl 命令行工具操作。

添加网卡:

bmctl addinterface  bm-02   bm-02-vnicpf

查看网卡:

删除网卡:

bmctl delinterface  bm-02   bm-02-vnicpf

查看网卡bm-02

3.4. 统一管理

K8S 纳管DPU节点,且DPU SOC中使用OVS,可以看到pf0hpf使用的是驭数的驱动。

4. 总结

4.1. 统一管理方案优势

DPU赋能的裸金属网络解决方案,在以下几个方面具有显著优势:

  1. 精简网络架构,提升管理效率:通过将Overlay网络的终结点设在DPU层面,该方案有效精简了网络层级,削减了不必要的组件,从而大幅降低了网络架构的复杂度。这一设计不仅增强了网络的可管理性,还为未来的扩展需求奠定了灵活的基础。
  2. 优化设备配置,实现成本与效率双赢:采用DPU为核心的技术路径,该方案成功减少了对物理交换机的依赖,从根本上简化了网络设备配置,降低了硬件成本及运维开支。此举不仅经济高效,也为网络环境的轻量化与高效运作提供了有力支撑。
  3. 增强网络接口灵活性,确保业务连续性:得益于DPU的动态特性,支持网络接口的热插拔成为可能。这意味着在服务器持续运行的同时,可以根据需要轻松添加或移除网络接口,确保了业务的不间断与基础设施的即时适应性。
  4. 统一控制,深化SDN潜能:整合统一的SDN控制器,实现策略精准下发与智能调度,不仅超越了传统VLAN的限制,兼容VXLAN和Geneve等先进技术,还内置了SDN ACL安全策略,模拟云环境下的安全组功能,强化了网络安全防护。这一策略不仅统一了管理界面,简化了SDN软件栈,还显著提高了网络的灵活性和响应速度,降低了维护难度,确保了网络管理的高效与直观。

综上所述,DPU驱动的裸金属网络方案通过一系列创新设计,从根本上重塑了网络的部署与管理方式,为追求高效、灵活及安全的现代数据中心提供了强有力的支持。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Uncaught TypeError: Cannot read properties of null (reading ‘isCE‘)

问题描述 使用 view-ui-plus 加 vue3 开发项目,本地启动项目正常,但其他人将代码拉下来,启动项目时报错 Uncaught TypeError: Cannot read properties of null (reading isCE): 原因分析: 尝试将 mode_nodules 文件删…

量子计算:1 从薛定谔的猫开始

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

C++ 编程技巧分享

侯捷 C 学习路径:面向对象的高级编程 -> STL库 -> C11新特性 -> cmake 1.1. C 与 C的区别 在C语言中,主要存在两大类内容,数据和处理数据的函数,二者彼此分离,是多对多的关系。不同的函数可以调用同一个数据…

【Linux进程】手把手教你如何调整----进程优先级(什么是优先级?为什么要有优先级?)

目录 一、前言 二、优先级的基本概念 🥝 什么是优先级? 🍍 为什么要有优先级? 三、如何查看并修改 --- 进程优先级 🍇 PRI and NI 🔥PRI🔥 🔥NI🔥 &#x1f3…

亿发开启极速开单新纪元,解锁业务新速度,提升企业竞争力

我们不断追求卓越,致力于通过技术革新,为客户带来更快捷、更智能、更全面的进销存管理体验。立即更新,享受更高效的业务处理流程。

A股3000点失守是出局还是机会?

今天的大A失守300点,那么A股3000点失守是出局还是机会? 1、今天两市低开,盘中一度跌破3000点,最低回踩到了2985点,盘面出现了两个罕见现象,意味着即将探底回升。 2、盘面出现两个罕见现象: 一是…

【嵌入式开发】UART

目录 一、概述 1.1 常见的通信类别/特点 1.2 常见几种通信 二、UART通信协议 2.1 UART通信介绍 2.2 UART通信协议 物理连接示意图: 三、STM32的UART接口 3.1 STM32的UART特点 3.2 STM32的UART框图分析 3.3 UART初始化步骤 3.4 STM32中UART使用 一、概述…

代码随想录第30天|贪心算法

122.买卖股票的最佳时机II 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得…

Java项目:基于SSM框架实现的绿色农产品推广应用网站果蔬商城水果商城蔬菜商城【ssm+B/S架构+源码+数据库+答辩PPT+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的绿色农产品推广应用网站果蔬商城水果商城蔬菜商城 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能…

kettle无法启动问题_PENTAHO_JAVA_HOME

1,遇到spoon.bat启动报错:先增加pause看清错误信息 1.1,错误信息 1.2,因为本地安装jdk1.6无法支持现有版本kettle。只能手动执行kettle调用的java路径;如下 系统--高级系统设置--高级--环境变量 启动成功

【CMake】CMake从入门到实战系列(十七)—— CMake添加环境检查

🔥博客简介:开了几个专栏,针对 Linux 和 rtos 系统,嵌入式开发和音视频开发,结合多年工作经验,跟大家分享交流嵌入式软硬件技术、音视频技术的干货。   ✍️系列专栏:C/C、Linux、rtos、嵌入式…

【无线传感网】LEACH路由算法

1、LEACH路由算法简介 LEACH协议,全称是“低功耗自适应集簇分层型协议” (Low Energy Adaptive Clustering Hierarchy),是一种无线传感器网络路由协议。基于LEACH协议的算法,称为LEACH算法。 2、LEACH路由算法的基本思想 LEACH路由协议与以往的路由协议的不同之处在于其改变…

C#.net6.0语言+前端Vue,Ant-Design开发的智慧医院手术室麻醉管理平台源码 什么是手术麻醉临床信息管理系统?

C#.net6.0语言前端Vue,Ant-Design开发的智慧医院手术室麻醉管理平台源码 什么是手术麻醉临床信息管理系统? 手术麻醉临床信息管理系统涵盖了手术进程管理、自动排班、手术记录、术前评估与麻醉记录等功能,强调了系统如何通过技术架构和数据集成提高工作…

python代码生成可执行文件

以下面转换图片尺寸的代码resize_images.py为例: 代码功能:原始图片放在img文件夹中,然后运行代码可以转换成指定分辨率,保存在同一目录下的新生成的文件夹中 import os import sys import cv2 from datetime import datetime f…

第4集《大乘起信论》

请大家打开《讲义》第七页。 解释标题有别释跟合释,在合释当中又分两科。第一个明心,先明白我们内在的种性,这个种性就会产生不同的业力、不同的果报。在明白这个道理以后,我们应该怎么去扭转这个种性呢?就讲到修学的…

贝锐蒲公英异地组网方案:实现制药设备远程监控、远程运维

公司业务涉及放射性药品的生产与销售,在全国各地拥有20多个分公司。由于药品的特殊性,在日常生产过程中,需要符合药品监管规范要求,对各个分部的气相、液相设备及打印机等进行监管,了解其运行数据及工作情况。 为满足这…

MobileNet系列论文阅读笔记(MobileNetV1、MobileNetV2和MobileNetV3)

目录 引言MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications摘要Prior Work -- 先前工作MobileNet Architecture— MobileNet结构Depthwise Separable Convolution—深度可分离卷积Network Structure -- 网络结构 总结 MobileNetV2: Invert…

19 Shell编程之条件语句

目录 19.1 条件测试操作 19.1.1 文件测试 19.1.1 整数值比较 19.1.3 字符串比较 19.1.4 逻辑测试 19.2 if条件语句 19.2.1 if语句的结构 19.2.2 if语句应用示例 19.3 case分支语句 19.3.1 case语句的结构 19.3.2 case语句应用示例 19.1 条件测试操作 Shell环境根据命令执行后…

Javase.认识异常

认识异常 【本章目标】1. 异常的概念与体系结构1.1 异常的概念1.2 异常的体系结构1.3 异常的分类 2. 异常的处理2.1 防御式编程2.2 异常的抛出2.3 异常的捕获2.3.2 try-catch捕获并处理2.3.3 finally2.4 异常的处理流程 3. 自定义异常类 【本章目标】 异常概念与体系结构异常的…

日常工作中常用的管理工具

日常工作中常用的管理工具 SWOT分析法: 帮你清晰地把我全局,分析自己在资源方面的优势域劣势,把握环境提供的机会,防范可能存在的风险与威胁,对我们的成功有非常重要的意义 PDCA循环规则: 每一项工作&#…