50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:451161

评论

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

限流不只有计数器,带你快速了解四种经典限流算法实现

知识浅谈

8月月更

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

OpenHarmony开发者

OpenHarmony

web前端面授培训课程

小谷哥

开源一夏 | 教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”

知识浅谈

开源 8月月更

Dva.js 新手入门指南

Susie喵~

dva 8月月更

wallys/new product/MT7915/MT7975/4*radios/

wallys-wifi6

微信小程序获取用户手机号码

源字节1号

微信小程序 软件开发 前端开发 后端开发

TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践

PingCAP

TiDB

深入理解MySQL事务MVCC的核心概念以及底层原理

jiangxl

MySQL 事务 MVCC dba 签约计划第三季

STM32+OLED显示屏制作指针式电子钟

DS小龙哥

8月月更

后台图库上传功能

CRMEB

C#/VB.NET 从PDF中提取表格

在下毛毛雨

C# .net PDF 提取表格

Python 教程之输入输出(3)—— 在 Python 中从用户那里获取多个输入

海拥(haiyong.site)

Python 8月月更

近邻搜索算法浅析

得物技术

深度学习 算法 Faiss 近邻搜索 乘积量化

前端高频面试题

helloworld1024fd

聊天app开发——防炸麦以及节省成本的内容鉴定方法

开源直播系统源码

软件开发 语音聊天室 直播系统源码 直播源码 语音app开发

ABAB-740新语法

桥下本有油菜花

SAP abap

Hadoop Spark太重,esProc SPL很轻

石臻臻的杂货铺

SPL

实至名归!九章云极DataCanvas公司荣获智能制造领域多项殊荣

九章云极DataCanvas

智能制造

XDR平台架构与关键技术解析

极盾科技

网络安全 信息安全 数据安全 xdr 检测响应

fastposter v2.9.0 程序员必备海报生成器

物有本末

fastposter 海报生成器 海报编辑器 海报生成 图片生成

mysql进阶(二十四)防御SQL注入的方法总结

No Silver Bullet

MySQL SQL注入 8月月更

深入解析分布式文件系统的一致性的实现

移动云大数据

分布式系统 数据同步

浅谈SVN备份

剑雪封喉

LP流动性挖矿DAPP系统开发丨流动性挖矿功能原理及说明

开发微hkkf5566

下午见!2022京东云数据库新品发布会

京东科技开发者

MySQL 数据库 云计算 安全 数据迁移

开源一夏 | 分享一款实用的太阳能充电电路(室内光照可用)

矜辰所致

开源 电路设计 8月月更 太阳能

《数字经济全景白皮书》金融数字用户篇 重磅发布!

易观分析

金融 数字用户

七夕专属限定:1 分钟 Serverless 极速抽盲盒

hum建应用专家

云计算 Serverless

中文字体反爬,易易易易易易【Python脱敏】车车车车车车车车

梦想橡皮擦

Python 爬虫 8月月更

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