在多云时代的企业云服务中,经常遇到混合云和异构资源问题,作为开源SDN 的代表, Tungsten Fabric 能够很好实现 SDN 互通,在网络层面打通异构资源池。
7 月 9 日,在 TF 中文社区线上直播活动【 TF Live 】中,华胜天成网络架构师王峻与大家进行了在线交流,演示了基于 Tungsten Fabric 开源 SDN 功能,如何实现 vCenter 、 OpenStack 、 K8s 之间的异构资源池互通,以及服务链的引流功能。
本期活动,由TF 中文社区和 SDNLAB 联合举办。
【pdf文档下载】
https://tungstenfabric.org.cn/assets/uploads/files/tf-live4-sdn.pdf
【直播视频回放】
https://v.qq.com/x/page/m31138leucf.html
王峻,华胜天成网络架构师。拥有 10 多年网络行业经验,曾参与设计建设大型银行骨干网、互联网政务云等项目。在 7 月 9 日的 TF Live 直播和问答环节,王峻也分享了自己的实践心得,以及 Tungsten Fabric 在企业云计算应用中的作用和表现。
基于 Tungsten Fabric 实现资源池互通
作为老牌云计算综合服务商和云计算运营商,华胜天成在服务客户云计算业务的过程中,开发了适应多云异构资源的统一管理平台,通过统一的云管平台,去对接OpenStack 、 K8s 、 vCenter 、 PowerVC 、 Ironic/xCAT 、裸机、公有云等各自不同的资源池。
不过,在网络层面上,每类资源池其实都有各自的一套网络体系和插件。这对于云管平台来说,网络层就变得比较复杂,需要寻找统一网络管理解决方案,应对客户支持异构资源池的需求。同时,许多客户并不希望被厂商绑定,希望构建一个解耦的架构。
王峻介绍,华胜天成的云开发团队经过大量调研比较,在多云环境覆盖、混合资源池网络应用编排、 SDN 功能、设备支持友好度、开源架构、专业网络支持等方面综合考量,最终选择了 Tungsten Fabric 作为未来统一网络管理的技术方向。
从Tungsten Fabric 的整体架构来看,不管是 OpenStack 的资源池,还是 k8s 的资源,或者 VMware 的资源池,都通过 Tungsten Fabric 计算节点里边的 vRouter 来实现。
QA问答
在 实际应用使用中, 一般 什么场景 会出现这种多个异构资源 ?
从现在很多项目上来看,客户本身一直通过 VMWARE 使用虚拟化,后来又上了 OpenStack ,这种情况很多,但两边管理是割裂的。对于客户来说,一方面想要解耦,不希望绑定厂商;另一方面,比如互联网出口有内外两层防火墙,也需要做成异构的,在金融行业都是比较常见的。
原来用 某厂 的 OpenStack 方案,想用Tungsten Fabric的话是不是改动太大了?
改动应该比较大,我不知道您用的是他们SDN 哪个版本?像厂商这种的,都是基于硬件下发相应配置,然后在边界上去做一个 VLAN 到 VXLAN 的一个转换。而 Tungsten Fabric 主要是开源软件,可以看到,我们所有的 vRouter 全都是在宿主机上去装的,然后跟 underlay 的网络其实没什么关系,只要保证互通就行。
V r outer替换了OVS,架构变化还是挺大的。
对。变化确实比较大,vRouter 相当于都是路由的东西。比如说我在 vCenter 里面创建了一个虚机,然后接到了分布式交换机上,就算我们用的是相同的网络, Tungsten Fabric 也会分配不同的 VLAN tag ,这就会导致所有的流量都会上到 vRouter 上去,不会在这个 vSwitch 上去做转发。
接下来王峻进行了细致的演示,基于Tungsten Fabric 在 vmware 中的实现( Tungsten Fabric 和 vCenter 的集成),来进一步说明 Tungsten Fabric 的功能。
l Tungsten Fabric 通过监控 VM 的创建的 event ,部署网络和安全策略;
l Tungsten Fabric 会为每个 VM 分配 vlan id ,每一个 VM 都有一个独立的 vlan id ;
l vRouter 一个口通过 trunk 连接到 vCenter 的分布式交换机,所有 VM 流量到交换机上打上相应 tag ,通过 trunk 发给 vRouter ,进入相应 vrf ,接下来处理方式和 openstack 和 k8s 就都一样了;
l vRouter 另一个口通过标准端口组连接物理网卡,和其他的 ESXi 和 KVM 资源池建立 MPLSoverUDP 的隧道;
l 实际运行中,会在vRouter 装一个 vCenter 的 manager ,去管理 VLAN 的 tag 。
在直播的演示环境中,包含了 OpenStack , K8s 和 vCenter 三个资源池。通过在 vCenter 上部署两台机器:一台为 TF 的 Controller ,一台为部署了 vRouter 的 ESXi ,后者创建一个虚机,然后去和 K8s 和 OpenStack 上虚机的互通。
在三个资源池互通演示完成后,王峻还演示了数据流追踪,在vRouter 上通过命令追踪数据流,查看了中间的转发过程和互通的实现。
QA问答
每个资源池都有一个 vRouter ,这个是谁提供的?
比如说我们在OpenStack 有两个计算节点,这两个节点宿主机上面都会有相应的 vRouter ,去负责它的宿主机的转发。再看 K8s 里面的 Pod ,两个 node 上都有 vRouter 。对于 vCenter 来说,每个 ESXi 上都有 vRouter 。
刚才这些 演示的 操作,都在一台 宿主 机上完成的吗?
不是的,我们的OpenStack 和 K8s 是嵌套虚拟化,在现有的虚拟化平台上又搭建了环境, vCenter 这块也是用一个工作站去搭的,还有 v Center 的环境, VMX 出口的路由器是在一个 vCenter 的环境上。
Tungsten Fabric 只能用于 二层的网络 ,来 连接几个资源池 ,是这样吗?
它其实本质上是三层的,你的每一个虚机上来,它都在vRouter 上面,刚才我们也看了追踪路由,虚拟机接上来之后会给它分配相应的虚拟接口,划到相应的 VRF 里边,刚才看到 VRF 里面的路由表,会生成一个 32 位的路由,本质上我觉得还是路由,但它是一个 32 位的路由。
除了异构资源池互通,王峻还分享了服务链的引流功能。
虚机一般是通过vRouter 到网关,然后出去访问互联网,但为了保护虚机安全,可能还要在路径上增加一个防火墙。此时防火墙有可能是在 OpenStack 、 KVM 资源池里边,那就需要把流量引到防火墙,再从防火墙出来,然后再通过网关出去上网。
也就是说,当我们需要在路径上增加一些NFV 相应的功能,比如防火墙或者检测的设备,然后把流量引过来,就要用到服务链的功能。
针对服务链引流的演示,首先在 K8s 里边创建一个 pod ,然后接入到一个自定义的网络里边,通过 Floating IP 绑定给 pod 。
接下来,防火墙是在vCenter 环境里的一个 VSRX ,有两个 VN ,通过 RT ,去把 Floating IP 网络和 left 网络( trust 接口)打通,将流量引到防火墙上来。
最后,再通过right 网络,和 vmx 边界打通,进而访问外网。
QA问答
中间有没有碰到过比较难解决的问题 ?跑通 的过程中踩过什么坑?
部署的过程中还好,但因为vCenter 文档比较少,我们团队这边找了很多东西,遇到些麻烦。其实 vCenter 这块来说, Tungsten Fabric 的支持不是特别好,比如防火墙导入文件镜像的时候,只能选一个网卡,导入成功之后,要新添加网卡(需要三个接口:管理、 left 、 right ),这个时候 Tungsten Fabric 就不能识别到了,暂时只能手动解决。比如关联了新建的网络,或者原来关联的网路改了,不能同步更改,要手动更改,才能一致互通。
Tungsten Fabric管 理 裸机的方向是什么?
Tungsten Fabric 目前不能完美地实现裸机的东西,我们裸机可以注册到OpenStack 上面,然后去部署操作系统,完成后但就没有办法去切换到租户网络上去,还需要一些改进。
在实验环境 中 的 underlay 是在一个局域网 吗 ? 可以在广域网实现吗?
广域网其实有更好的方案,我们现在的环境,所有的出口都是通过一个VMX ,这样的话不可能两个数据中心通过同一个出口出去,我觉得更合理的方案是,每个数据中心都会有一个出口,然后通过出口去把两边实现互通,隧道应该是可以互通的,我们下一阶段就要测这个场景。
在直播过程中,王峻也提到,Tungsten Fabric 还有很多需要改进完善的地方,但作为华胜天成下一步的网络技术发展方向,团队会和大家一样,做好研究开发,在社区积极交流,探索如何更好地应用 Tungsten Fabric ,打造更高可用的异构混合云架构。
往期回顾
KK/建勋:多云、SDN,还有网工进化论
杨雨:Tungsten Fabric如何增强Kubernetes的网络性能
Frank Wu:当OpenStack遇到Tungsten Fabric
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。