写点什么

Cable-- 新虚拟网络架构介绍

  • 2019-11-19
  • 本文字数:1314 字

    阅读完需:约 4 分钟

Cable--新虚拟网络架构介绍

本文主要介绍为了统一管理不同编排系统的网络模块,简化虚拟网络功能的开发流程,虚拟网络工作组实现的新虚拟网络架构–Cable。

前言

OpenStack 架构中,Neutron 作为虚拟网络模块,管理虚机的网络。随着容器技术的发展,越来越多的应用部署到 Kubernetes 等容器编排系统中,而 Kubernetes 也有自带的网络管理模块,如 Flannel,Calico 等。分别维护 OpenStack、Kubernetes 网络模块,不仅增加管理成本,且无法满足虚机和容器网络互通等需求。为了统一管理不同编排系统的网络模块,简化虚拟网络功能的开发流程,虚拟网络工作组实现了新的虚拟网络架构 Cable。

背景简介

目前公司的虚拟网络架构有如下不足:1 物理机、虚机和容器网络分开管理,无法达到直接互联互通。2 Neutron agent 里的 DHCP、metadata 采用集中式服务,健壮性不足。3 vxlan 实现时需要外部路由器的支持,较为复杂。


新的网络架构需要满足统一管理物理机、虚机和容器网络,实现直接互联互通;简化 Neutron agent,分布式架构实现 DHCP、metadata 等功能;在虚拟网络层面实现 vxlan;提供流量镜像等新功能。

方案实现

Cable 整体框架图


为了满足上诉需求,Cable 架构实现了如下两个关键点

1 虚拟数据平面

虚拟数据平面不再基于 OVS,而是采用功能更为丰富虚拟路由器 vrouter.ko。vrouter.ko 是 Juniper 的虚拟网络架构 OpenContrail 中的开源数据模块。相比于 OVS 的简单数据包转发,vrouter.ko 支持虚拟网络路由、vxlan、流表配置安全组、流表配置 nat/snat、流量镜像等功能。丰富的数据平面功能,简化了网络功能模块的开发难度。

2 自研管理平面

重新自研开发管理平面。管理平面统一管理 OpenStack 和 Kubernetes 网络模块;采用 Kubernetes 里的 watch 方式,主动监控平台资源变化情况,并执行相关操作;分布式实现 DHCP;用 vrouter.ko 中的 flow 功能实现 nat、安全组等。


Cable 工作流程



当用户请求到达 Neutron Server 后,Contrail Neutron Plugin 将请求转发至 Cable 的控制节点(Control Node)。控制节点的 proxy 转换请求发送至 API,API 将接收到的请求发送至相应模块,其中 controller 负责具体的计算和分配工作,IPAM 模块负责网络地址的管理。每台计算节点部署了 Cable agent,通过 Rest API 监听 Control Node 的资源,如监听到资源变化,则调用 vrouter.ko 执行相应请求(添加/删除/修改网络信息)。

与 Openstack 兼容

Cable 需要考虑如何与现有的虚拟网络结构兼容,使得 Neutron 能够平滑过渡到新的架构上。所以在保持 Neutron 原有接口不变的基础上,将 Neutron 的 db 替换为 etcd,并将 DHCP-agent,metadata-agent,l3-agent 替换为统一的 cable-agent。将 Neutron 用 Cable 替代后,OpenStack 的相关命令行和 Restful API 都没有变化,实现无缝切换,方便运维管理。


Cable 代替 Neutron 后架构图


总结

新的虚拟网络架构,兼容了不同网络平面,简化了网络功能模块,使得网络更为健壮。目前 Cable 的整体架构已经基本开发完成,实现了 DHCP、metadata 和 VLAN 架构网络,后续将实现安全组、VXLAN 等更多功能,并实现自动化部署,完善监控功能。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/NWftZCQNfO4crjOoUExKWg


2019-11-19 23:451168

评论

发布
暂无评论
发现更多内容

鸿蒙游戏生态新纪元:500+厂商共建,3700+游戏上架华为游戏中心

最新动态

沐曦与和鲸科技完成兼容性测试,国产GPU与国产AI开发平台的强强联合

ModelWhale

人工智能 大数据 gpu 国产大模型

如何使用通义灵码玩转Linux - AI编程助手提升效率

阿里巴巴云原生

Liunx

在.NET中使用正则表达式匹配特殊字符[和]——双重转义的技巧

雄鹿 @

.net csharp

为什么我们需要淘宝商品详情数据 API?

代码忍者

淘宝API接口

ClickHouse 的“独孤九剑”:极速查询的终极秘籍

京东零售技术

从传统冶金到智慧工厂:中国恩菲用IoTDB破解有色金属行业数据难题

Apache IoTDB

JavaScript 常用的高阶函数

雄鹿 @

JavaScript

网页版脑图工具有哪些?5个办公必备的思维导图盘点!

职场工具箱

AI 思维导图 办公软件 AIGC 脑图

企业级低代码平台的架构范式转型研究

JeeLowCode低代码平台

低代码 低代码前端 低代码缺点 低代码, 低代码选择

食品行业龙头哈尔滨裕昌食品签约用友,迈向业财一体新未来

用友智能财务

财务 会计

等保合规体系化建设

黑龙江陆陆信息测评部

chrony时间同步软件介绍

天翼云开发者社区

chrony 时间同步软件

从手工测试到AI测试工程师,揭秘大厂20-50K高薪岗位核心技术栈

测试人

人工智能

C++ AI 通义灵码 VSCode插件安装与功能详解

阿里巴巴云原生

c++ 云计算 AI

Apache Doris & SelectDB 技术能力全面解析

SelectDB

数据库 大数据 Doris SelectDB 实时分析

如何使用BOM和MRP解决生产物料管理混乱问题

积木链小链

数字化转型 智能制造 物料管理

DePIN 之于传统基础设施,正如同 DeFi 之于传统金融

PowerVerse

defi web3 DePIN

华为云智能驾驶用户大会高阶智驾量产成焦点,产业链生态合作再加码

极客天地

优化你的 REST Assured 测试:设置默认主机与端口、GET 请求与断言

数据追梦人

云备份技术解析:永久增量备份

天翼云开发者社区

云备份

我们又忘了,人形机器人≠AI

脑极体

AI

故障定位系列-3-容器资源故障

乒乓狂魔

可观测性 故障定位 AIOPS

C++ AI 通义灵码 VSCode插件安装与功能详解

阿里云云效

c++ 通义灵码

如何使用通义灵码玩转Linux - AI编程助手提升效率

阿里云云效

Liunx

加速高水平研究型医院建设!以 AI 力量驱动医院科研管理效能提升

ModelWhale

人工智能 大数据 AI 医疗

Orpheus 语音模型支持中文预训练和微调,模拟细微语音特征;谷歌版 MCP 来了,A2A 协议让不同厂商 Agent 协作

声网

LLMs.txt:让大模型更懂你的 Web 文档

Baihai IDP

程序员 AI LLM Baihai IDP GenAI

App上线Google Play的流程

北京木奇科技有限公司

APP外包 海外APP上线 google play

千万级数据秒级响应!碧桂园服务技术引擎重构智慧社区新标杆

StarRocks

存算分离 StarRocks 湖仓一体 数据查询 OLAP 数据库

[直播预告]StarRocks 小课堂 监控告警全覆盖,别等服务挂了才处理!

StarRocks

StarRocks 数据库· 数据异常 镜舟科技 数据警告

Cable--新虚拟网络架构介绍_文化 & 方法_虚拟化网络团队_InfoQ精选文章