热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

最新技术_TungstenFabric架构和最新技术进展丨TF成立大会演讲实录

本文整理自瞻博网络杰出工程师SukhdevKapur在“TF中文社区成立暨第一次全员大会”上的演讲,增加了对于TF功能的描述,pdf点击下载。https://tung

本文整理自瞻博网络杰出工程师Sukhdev Kapur在“TF中文社区成立暨第一次全员大会”上的演讲,增加了对于TF功能的描述,pdf点击下载。https://tungstenfabric.org.cn/assets/uploads/files/powering-edge-cloud-and-multi-cloud-with-tungsten-fabric-sukhdev-kapur.pdf 更多会议资料,请在"TF中文社区“公众号后台回复“成立大会”获取。
技术图片
瞻博网络杰出工程师Sukhdev Kapur
大家好,我叫SukhdevKapur,来自Tungsten Fabric(以下简称TF)社区技术指导委员会,下面我为大家介绍一下TF的架构和技术的现状,以及最新的进展。

TF架构与部署模式

技术图片

我们可以看一下这张TF的宏观架构图,整体图描述是设备的物理连接,而右上角有虚机之间的逻辑网络,TF基本的工作原理和机制,就是你创建VM或者POD,然后(通过SDN)把它们放到这些逻辑网络里。
在这些逻辑网络中,你能够以根据自己业务需要,放置任何虚机、PODS、或者裸服务器,它们的物理位置在哪里没有关系,它们可能会在一个集群里,也可能在一个机架中,这都没有关系。
大家再看一下它下面底层的部分,TF会利用虚拟的路由器(计算节点上),来负责是这些虚拟的工作负载的转发,而左边是一个物理网络的连接,例如一个裸机的物理网络,一旦你做好了网络定义,它可能会和实际网络连接,也可能会和右边逻辑网络里头虚拟网络的虚机来进行连接
第四部分(上半部分)是CONTRAILController(SDN控制器),是做配置控制分析和CSN的。
第五部分是网关的功能,它可能是一个物理网关,或者是一个虚拟的网关,当数据中心的虚机需要对外互联的时候,通过IP的组网——也就是MPLS这种协议——进出骨干网络。
所有这一切,都是通过一个ORCHESTRATOR编排器去管理,它可能是OpenStack、K8s或OpenShift,通过API来调度TF来工作。

TF中Vrouter的体系架构概述

技术图片

这张图说的是TF的路由vRouter的架构,左上角是vRouter的Agent,主要是控制的部分,在这里它会通过路由的学习,VRFs的定义,以及策略的定义,如果虚拟路由器要进行策略的执行,必须是由Agent去控制的:它来决定网络的流量是允许通过,还是拒绝,如果允许的话,应该把它转发到哪个位置。
你可以看到,vRouter有一个转发的路径,学习的路径进行封装,然后做二层或者三层的数据流量的转发。

vRouter的部署模式

技术图片

这是TF虚拟路由器的四种部署模式,左上角是默认的模式,在内核的vRouter部署。
右上角呢?如果你在一个高吞吐、高流量的状态下,网络支持DPPK的话,TF可以有的DPDKvRouter的部署。
左下角其实是一种混合部署的模式,如果你有好几个VNF这种虚拟网络的功能,可以用到SR-IOV的话,可以采用SR-IOV和内核的vRouter共存的混合模式。
第四种就是基于SmartNIC的vRouter,也就是说,这些VM可以充分地利用到所有处理器的能力。

TF与Kubernetes的集成

技术图片

大家再来看一下TF和Kubernetes(以下简称K8s)的集成,首先,TF的CONTRAIL Controller会和K8s通过API进行通讯,那么,某一个指定的位置,它是如何得到IP地址以及策略的呢?首先,K8s会和TF的Scheduler也就是调度管理程序进行通讯,再通过调度管理程序和CNI Plugin插件进行联系,在左上角就表示vRouter是如何获得在K8s这边的策略,去进行IPAM的读取和执行的,简单一点说,K8s的管理器会和TF的CONTRAIL Controller进行通讯,确定网络的策略,然后TF的Controller会把这个策略发布到vRouter。

TF的微服务架构

技术图片

TF的技术演进,一开始主要是基于虚机部署,后来开始支持容器技术,现在已经演进到了微服务(Microservices)的架构。目前我们的TF在部署是完全采用containers的方式进行部署,大概有27-30个左右的image。

K8s环境下的网络隔离

技术图片

K8s是一个非常扁平的网络,租户和租户之间可以进行任意的沟通,工作负载之间也是这样。
基于这样的场景,我们就通过网络策略的执行,去实现网络中租户的隔离,也就是说,只是在指定区域内的用户之间,才可以进行沟通。
那么在TF这一层,我们把管理又向前推进了一步,即在一个租户的空间之内,我们也可以决定哪个位置和哪个位置可以沟通,也就是哪个POD和哪个POD通讯。

TF提供的统一策略管理功能

技术图片

下面为大家介绍一下TF的独特的策略框架。假设我们有一个应用,该应用有三层,分成三层,分别是Web层、应用层和数据库层。而这个应用的生命周期会有三个阶段,分别是开发的阶段,部署准备的阶段,和最后的生产阶段。
不同的阶段可能部署在不同的网络环境,甚至于不同的云平台中,那么在最上面的开发阶段,不同的层之间(层也是tie的概念),会有一些安全的访问策略(图中P1的策略也),而这个策略可能在部署准备阶段也需要(图中P2的策略)在生产阶段也需要,在不使用TF的情况下,很有可能会出现重复的策略,而是用TF之后,我们可以只使用一个策略
我们所做的就是把策略的管理进行了简化,首先就是降低了复杂性,简化管理,提高了可伸缩度。一旦定义好了策略,你就可以在各种各样的环境之下,进行规模性的、可伸缩的复用,包括公有云、私有云,以及多云的环境。
技术图片
给大家介绍一个实际的策略框架用例。
假设我们有一个应用,我们允许它的Web层和应用层进行沟通,那么不管是在开发阶段,还是在生产阶段,我们都可以使用这样一个定义,比如在开发阶段的Web层,也可以和生产环境下的应用层进行沟通。
技术图片
但是,也许我们并不希望有这样的事情发生,我们不希望某一个开发人员能够随意修改在生产环境下的代码。这时你不用去改变策略,只需要在策略里头加上App Match Deployment的标签,它可以去规定——比如说只有在开发阶段的Web层和开发阶段的应用层才可以进行通信。
同样地,如果你的应用是一个地理分布式的应用,你可以通过定义策略,让在地理区域A的Web层和在地理区域B的应用层之间进行通信。
如果你不希望这种跨层、跨区域的通信产生,就在AppMatch Deployment的后头再加上End Site。所以说这个match,不光是它的部署,还有它的位置,你都要把它match一下。
我们再加一层,你看我们第二个策略的意思,就是说只要是这个站点我们match上了,匹配上了,那么它们都可以和数据库进行访问。
这样的一种策略在管理方面非常的有用。如果你有一个非常大型的跨地理区域分布式的金融应用,它可能使用了多个网络,网络上还有数百种的应用,这个时候你只需要一个策略,就可以对整个分布式的金融应用进行管理。

一个界面,搞定多云部署

技术图片

同时,TF还可以实现多云部署的自动化管理。比如说我们在驻地这里自动创建了一个叫做多云的网关MC-GW,它会建立一个通道,和在云端的(比如说AWS上的)同样的部署,自动地进行安全的连接。
这里也要看,你在云上部署的工作负载到底是什么种类的。有了这个工作负载,你可以在本地云的环境下进行管理,而TF能够给你一个多云的可视性。
大家可以看一下,如果你自己去进行多云管理,需要通过很多的流程来实现。而TF只需要一个单一的图形用户界面,就能够轻松地进行多云管理,你需要做的,只是做几下点击的动作。

多云环境的服务链

技术图片

下面来介绍一下TF的多云服务链。大家看到最上面有两个网络在驻地,左边的是2.2.2.4,右边的是3.3.3.5,然后有一个服务的实例,假设服务实例是POD的虚拟化服务,通过TF的服务链,可以将工作负载从左边的网络传到右边。
同样地,如果要在不同的公有云上也去部署这样的虚拟网络,你可以通过TF,从驻地到多云建立这样一个服务链。
技术图片
我来总结一下,只需要一个SDN的控制器,就能够去管理连接——不管是金属裸机、K8s CNI、OpenStack,还是左边的各种边缘的站点——并且提供非常丰富的网络功能。

TF与Akraino的集成

技术图片

TF在边缘计算的环境下也做出了自己的贡献,这是另外一个开源的项目,TF实现了和Akraino的集成,能够为边缘计算这样的场景提供支持,它是纯基于K8s原生基础架构的,非常适用于轻量级的,像工业自动化这种应用。基本上它部署的环境是非常小的,目标行业主要是电信运营商和企业级用户。
技术图片
这是另外一个Akraino和TF集成的用例,主要是打造电信云,目前美国电信运营商AT&T就做了这样的一个架构部署。这里主要是使用SR-IOV这种虚拟化,我们所做的就是把TF作为一个单一的SDN,它的部署模式包含了以上所有类型。
技术图片
这是第三个用例,它是一种叫做微云的软件堆栈,主要应用于移动的场景,例如手机游戏,工作负载是移动化的这种架构。
在这里我们是怎么做的?首先,我们有一个DME(分布式的匹配引擎),它知道有多少个设备或者多少个移动用户接入进来,并根据移动用户的数量,启动微云资源管理器去做信息传递;然后微云资源管理器就会匹配到相应的资源;接下来CRM会和TF的控制器进行沟通,来进行这种资源的部署;再到下面一层,通过vRouter的转发层,和TF的控制器进行联系。

TF与OpenStack的集成

技术图片

熟悉OpenStack的朋友都知道,它有两种部署模式,一种是单一的插件方式,另一种是基于ML2的部署。
TF专门有一个Networking Open Contrail,可以将TF作为一个ML2的插件去启动。这样做有什么好处呢?我们可以同时去运行基于OVS、SR-IOV和vRouter的这工作。
你可以用OpenStack来运行OVS、SR-IOV的工作负载,并且在网络层面使用我们的TF去进行管理。
技术图片

更多了解Tungsten Fabric
TF中文社区介绍
TF主要特点和用例
TF怎么运作
详解vRouter体系结构

关注微信:TF中文社区
技术图片


推荐阅读
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 探讨低代码行业发展现状,分析其未能催生大型企业的原因,包括市场需求、技术局限及商业模型等方面。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 本文介绍了如何通过 AJAX 发送请求到后端控制器,并将返回的 JSON 数据解析后在前端页面上显示。具体步骤包括发送 AJAX 请求、解析 JSON 字符串和遍历数据。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • ECharts 官方提供了丰富的图表示例,但实际项目中往往需要从后端动态获取数据。本文将详细介绍如何从后端获取数据并将其转换为 ECharts 所需的 JSON 格式,以实现动态饼图的展示。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
author-avatar
猪猪寂寞的王子_125
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有