<span id="ubbei"><video id="ubbei"></video></span>
<span id="ubbei"></span>
<span id="ubbei"><video id="ubbei"></video></span>
<strike id="ubbei"><video id="ubbei"></video></strike><th id="ubbei"></th>
<span id="ubbei"><video id="ubbei"></video></span><span id="ubbei"></span><span id="ubbei"><video id="ubbei"></video></span>
<th id="ubbei"><video id="ubbei"><span id="ubbei"></span></video></th>
<span id="ubbei"></span>
<th id="ubbei"><video id="ubbei"><span id="ubbei"></span></video></th><strike id="ubbei"><dl id="ubbei"><ruby id="ubbei"></ruby></dl></strike>
<span id="ubbei"></span>
<th id="ubbei"></th>
<span id="ubbei"></span>
<th id="ubbei"></th>
<span id="ubbei"></span>
<span id="ubbei"></span>
<span id="ubbei"></span>
<span id="ubbei"><video id="ubbei"><strike id="ubbei"></strike></video></span>
<strike id="ubbei"><video id="ubbei"></video></strike>

  • <output id="ubbei"></output>
          1. <li id="ubbei"><s id="ubbei"><strong id="ubbei"></strong></s></li>
          2. 新虚拟网络架构——Cable介绍

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

            前言

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

            背景简介

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

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

            2、Neutronagent里的DHCP、metadata采用集中式服务,健壮性不足;

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

            新的网络架构需要满足统一管理物理机、虚机和容器网络,实现直接互联互通;简化Neutronagent,分布式架构实现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、安全组等。

            3.Cable工作流程

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

            与Openstack兼容

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

            Cable代替Neutron后架构图

            总结

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

            【本文是51CTO专栏机构360技术的原创文章,微信公众号“360技术( id: qihoo_tech)”】

            戳这里,看该作者更多好文

            我来评几句
            登录后评论

            已发表评论数()

            相关站点

            热门文章
            陕西高频十一选五 中国体彩网七星彩开奖 新快3投注技巧 118心水论坛115 体彩排列3最高奖金 阳光娱乐城ktv 11选五5爱彩乐 福彩中奖真假 零点棋牌下载 下载福建十一选五开奖结果 黑龙江11选5历史数据 彩票双色球个十百位分布图 香港赌场 法甲赛程 澳洲幸运8app 甘肃11选5论坛