2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Cable:360 实现的新虚拟网络架构

  • 2019-03-27
  • 本文字数:1254 字

    阅读完需:约 4 分钟

Cable:360实现的新虚拟网络架构

前言

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

需求背景

目前公司的虚拟网络架构有如下不足:


  • 物理机、虚机和容器网络分开管理,无法达到直接互联互通。

  • Neutron agent 里的 DHCP、metadata 采用集中式服务,健壮性不足。

  • vxlan 实现时需要外部路由器的支持,较为复杂。


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

方案实现

为了满足上诉需求,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 的整体框架如图 1 所示。



图 1 Cable 整体框架图


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



图 2 Cable 工作流程

与 OpenStack 兼容

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



图 3 Cable 替代 Nuetron 后 OpenStack 架构图

总结

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


本文首发于微信公众号“360 技术“( id: qihoo_tech)


2019-03-27 14:313239

评论 2 条评论

发布
用户头像
开源?
2019-03-31 20:52
回复
用户头像
这个不错,可以关注下
2019-03-28 17:55
回复
没有更多了
发现更多内容

大模型的 Token 使用详解:限制与注意事项

木南曌

大模型

28+岗位!百度安全2025届实习生招聘火热进行中

百度安全

Partisia Blockchain:真正做到兼顾隐私、高性能和可拓展的公链

股市老人

新版Redis不再“开源”,对使用者都有哪些影响?

平平无奇爱好科技

浅析KV存储之长尾时延问题,探寻行业更优解决方案!

平平无奇爱好科技

小程序应用市场发展趋势分析

Onegun

小程序 小程序平台

What's new in PikiwiDB (Pika) v3.5.3 (正式版)

apache/dubbo-go

nosql redis

华为云GeminiDB发布新版本,全面支持Redis 6.2

平平无奇爱好科技

一文读懂兼顾隐私、高性能和可拓展的公链Partisia Blockchain

BlockChain先知

Golang DB连接池ErrBadConn的应用

三七互娱后端技术团队

golang MySQL

一文读懂兼顾隐私、高性能和可拓展的公链Partisia Blockchain

股市老人

C++ 运算符全解析:从基础概念到实际应用

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

华为云原生多模数据库GeminiDB架构与应用实践

平平无奇爱好科技

Partisia Blockchain:如何做到兼顾隐私、高性能和可拓展?

石头财经

让 AI 帮你写代码,开发提效神器来了

阿里巴巴云原生

阿里云 AI 云原生

中国超高清自有珠穆朗玛:双Vivid是什么?

脑极体

音视频

在 ASP.NET Core 中使用 HttpClient

雄鹿 @

ASP.NET Core

堪称教学神器的5款软件,每一款都值得推荐!

彭宏豪95

效率工具 在线教育 在线白板 办公软件 在线协作

业内首个!央广网APP率先完成鸿蒙原生应用全量版本开发,领跑鸿蒙化进程

最新动态

Jetson Xavier nx 全盘加密

一五

AI 边缘计算 jetson 全盘加密 jetson xavier nx

究竟什么样的数据库,才能承接RTA广告这个技术活!

平平无奇爱好科技

适合老师使用的在线教学软件推荐!这一款千万别错过。

彭宏豪95

在线教育 在线白板 办公软件 教学 效率软件

足球场上的黑科技:图神经网络优化角球

算AI

#人工智能

怎样让 API 快速且轻松地提取所有数据?

技术冰糖葫芦

API 接口 API 文档

2024-03-27:用go语言,多维费用背包。 给你一个二进制字符串数组 strs 和两个整数 m 和 n, 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个

福大大架构师每日一题

福大大架构师每日一题

【干货分享】华为云多模数据库GeminiDB架构与应用实践直播问答实录

平平无奇爱好科技

GeminiDB新特性:让Redis广告频控爱不释手的exHASH

平平无奇爱好科技

Cable:360实现的新虚拟网络架构_服务革新_360技术_InfoQ精选文章