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

评论

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

机器人存在的问题挑战

阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

阿里巴巴云原生

阿里云 产品 RocketMQ 云原生

“极速、统一、开放”,StarRocks开启企业数据分析新局面

趣谈装饰器模式,让你一辈子不会忘

Tom弹架构

Java 架构 设计模式

微信朋友圈的高性能复杂度分析

Puciu

架构实战营

Android TTS语音播报实践

轻口味

android 音视频 TTS 11月日更

模块二作业

周文

架构实战营 「架构实战营」

40多场面试,凝聚成了这篇文章!

程序厨

面试 面试技巧 秋招

全项指标第一,腾讯V265与新一代VAV1自研编码器登顶MSU视频编码器大赛

科技热闻

万字长文聊哈希

程序厨

面试 哈希 哈希表

架构实战 - 模块二

唐敏

架构实战营

实时语音如何过质量关?

声网

深度学习 算法 音视频

[架构实战营] 模块二作业

张祥

架构实战营

分析微信朋友圈的高性能复杂度

Steven

架构实战营

元宇宙的三个阶段

石云升

元宇宙 11月日更 10月月更

电商秒杀系统设计

张文龙

#架构实战营

微信朋友圈架构复杂度分析

Geek_nlp小咖

架构 微信朋友圈

eSOL和RTI合作支持汽车和工业自动化市场快速开发

薛斐

自动驾驶

IM扫码登录技术专题(四):你真的了解二维码吗?刨根问底、一文掌握!

JackJiang

即时通讯 IM 二维码 扫码

看完电影《门锁》感觉脊背发凉,智慧园区给你安全感!

ThingJS数字孪生引擎

可视化

crm的核心是什么?CRM对企业的核心作用是什么?

低代码小观

企业 企业管理 CRM 管理系统 CRM系统

《黑客之到》- 全网最详细的kali系统安装教程

学神来啦

网络安全 渗透 kali kali基础

#每个人的掌上图书馆# 藏书馆App基于Rainbond实现云原生DevOps的实践

北京好雨科技有限公司

容器 DevOps 云原生 k8s最佳实践 Kubernetes从入门到精通

架构实战营模块二作业

spark99

架构实战营

移动App应用进入存量竞争阶段,如何全维度洞察用户体验?

博睿数据

创业邦聚焦新消费,2021 跨时代消费新发展峰会圆满落幕

创业邦

亿滋中国X阿里云,释放新零售的数字化力量

阿里云大数据AI技术

大数据 零售

微信朋友圈复杂度分析

AHUI

架构实战营 「架构实战营」

Hudi 在字节实践记录

Clarke

Python代码阅读(第49篇):限制一个数在指定范围内

Felix

Python 编程 Code Programing 阅读代码

Thoughtworks 正式成为阿里云云原生核心合作伙伴,携手共创数字新未来!

阿里巴巴云原生

阿里云 云原生 thoughtworks 合作伙伴

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