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网络提高了网络可扩展性、灵活性和安全性。但是,这种方案仍面临很多问题与挑战:
- 网络架构割裂问题:该方案未能实现虚拟网络与裸机网络架构的统一管理,导致两者的配置和管理流程存在差异,增加了运维团队的学习成本和操作复杂度。这种割裂不仅减缓了网络变更的响应速度,还可能引发配置错误,影响网络的稳定性和一致性。
- 成本与维护负担:依赖SDN交换机进行网络封装处理,虽然带来了技术上的进步,但同时也引入了额外的硬件采购与维护成本。这些交换机的部署与升级都需要专业的技术支持,且设备本身的价格不菲,长期来看对预算造成压力。此外,特定品牌和型号的SDN交换机可能限制了技术选型的自由度,影响网络架构的扩展性和兼容性,不利于技术迭代和未来升级。
- 灵活性与扩展性局限:在该方案中,裸金属服务器仅通过单一物理网卡接入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赋能的裸金属网络解决方案,在以下几个方面具有显著优势:
- 精简网络架构,提升管理效率:通过将Overlay网络的终结点设在DPU层面,该方案有效精简了网络层级,削减了不必要的组件,从而大幅降低了网络架构的复杂度。这一设计不仅增强了网络的可管理性,还为未来的扩展需求奠定了灵活的基础。
- 优化设备配置,实现成本与效率双赢:采用DPU为核心的技术路径,该方案成功减少了对物理交换机的依赖,从根本上简化了网络设备配置,降低了硬件成本及运维开支。此举不仅经济高效,也为网络环境的轻量化与高效运作提供了有力支撑。
- 增强网络接口灵活性,确保业务连续性:得益于DPU的动态特性,支持网络接口的热插拔成为可能。这意味着在服务器持续运行的同时,可以根据需要轻松添加或移除网络接口,确保了业务的不间断与基础设施的即时适应性。
- 统一控制,深化SDN潜能:整合统一的SDN控制器,实现策略精准下发与智能调度,不仅超越了传统VLAN的限制,兼容VXLAN和Geneve等先进技术,还内置了SDN ACL安全策略,模拟云环境下的安全组功能,强化了网络安全防护。这一策略不仅统一了管理界面,简化了SDN软件栈,还显著提高了网络的灵活性和响应速度,降低了维护难度,确保了网络管理的高效与直观。
综上所述,DPU驱动的裸金属网络方案通过一系列创新设计,从根本上重塑了网络的部署与管理方式,为追求高效、灵活及安全的现代数据中心提供了强有力的支持。
本方案来自于中科驭数软件研发团队,团队核心由一群在云计算、数据中心架构、高性能计算领域深耕多年的业界资深架构师和技术专家组成,不仅拥有丰富的实战经验,还对行业趋势具备敏锐的洞察力,该团队致力于探索、设计、开发、推广可落地的高性能云计算解决方案,帮助最终客户加速数字化转型,提升业务效能,同时降低运营成本。