Tungsten Fabric如何编排

OpenStack和TF集成

OpenStack是虚拟机和容器的领先的开源编排系统。Tungsten Fabric提供了Neutron网络服务的实现,并提供了许多附加功能。安全

在OpenStack中,用户组被分配到“项目”,其中诸如VM和网络之类的资源是私有的,而且其余项目中的用户没法看到(除非特别启用)。服务器

在vRouters中使用VRF且每一个网络都有路由表,能够直接在网络层中实施项目隔离,由于只有到容许目的地的路由才会分发到计算节点上的vRouters中的VRF,而且不会发生泛洪vRouter执行的代理服务。微信

网络服务是Neutron,计算代理是Nova(OpenStack计算服务)。网络

当二者都部署在OpenStack环境中时,Tungsten Fabric能够在VM和Docker容器之间提供无缝网络。架构

在下图中,能够看到OpenStack的Tungsten Fabric插件提供了从Neutron网络API到Tungsten Fabric API调用的映射,后者在Tungsten Fabric控制器中执行。
Tungsten Fabric如何编排负载均衡

Tungsten Fabric支持网络和子网的策略,以及OpenStack网络策略和安全组。能够在OpenStack或Tungsten Fabric中建立这些实体,而且在两个系统之间同步任何更改。ide

此外,Tungsten Fabric还支持OpenStack LBaaS v2 API。工具

可是,因为Tungsten Fabric经过OpenStack提供了丰富的网络功能超集,所以许多网络功能仅经过Tungsten Fabric API或GUI提供。这些包括指定route target以实现与外部路由器的链接、服务链、配置BGP路由策略和应用程序策略。操作系统

当OpenStack使用Tungsten Fabric网络时,彻底支持应用程序安全性。能够在项目、网络、主机、VM或接口级别应用Tungsten Fabric标记,并应用于标记对象中包含的全部实体。插件

此外,Tungsten Fabric还支持用于网络和安全性的资源,可使用OpenStack Heat模板进行控制。

Kubernetes容器和TF集成

容器容许多个进程在同一操做系统内核上运行,但每一个进程均可以访问本身的工具、库和配置文件。

与每一个VM运行其本身的完整客户机操做系统的虚拟机相比,容器须要更少的计算开销。在容器中运行的应用程序一般启动速度更快,而且比在VM中运行的相同应用程序执行得更好,这也是为何人们愈来愈关注在数据中心和NFV中使用容器的缘由之一。

Docker是一个软件层,它使容器能够跨操做系统版本移植,而且Kubernetes做为部署容器的典型接口,管理服务器上容器的建立和销毁。

Tungsten Fabric如何编排

如上图所示,Kubernetes管理容器组,它们共同执行某些功能,称为_pods. pod中的容器在同一服务器上运行并共享IP地址。

一组相同的pod(一般在不一样的服务器上运行)造成services,而且必须将指向服务的网络流量定向到服务中的特定pod。在Kubernetes网络实现中,特定pod的选择是由应用程序自己使用发送pod中的本机Kubernetes API来执行的。对于非本机应用程序,是由负载平衡代理使用中实现的虚拟IP地址,来执行发送服务器上的Linux iptables。

大多数应用程序都是非本机的,由于它们是在未考虑Kubernetes的状况下开发的现有代码的端口,所以使用了负载平衡代理。

Kubernetes环境中的标准网络其实是扁平的,任何pod均可以与任何其余pod进行通讯。若是目标pod的名称或其IP地址是已知的,则不会阻止从一个命名空间(相似于_project _in OpenStack)中的pod到另外一个命名空间中的pod之间的通讯。

虽然此模型适用于属于单个公司的超大规模数据中心,但它不适合数据中心在许多最终客户之间共享的服务提供商,也不适合必须将不一样组的流量彼此隔离的企业。

Tungsten Fabric虚拟网络能够集成在Kubernetes环境中,以与OpenStack相似的方式提供一系列多租户网络功能。

带有Kubernetes的Tungsten Fabric 配置以下图所示。
Tungsten Fabric如何编排

使用Kubernetes编排和Docker容器的Tungsten Fabric架构相似于OpenStack和KVM / QEMU,其vRouter在主机Linux OS中运行,并包含带有虚拟网络转发表的VRF。

pod中的全部容器共享一个具备单个IP地址的网络堆栈(图中的IP-1,IP-2),可是侦听不一样的TCP或UDP端口,而且每一个网络堆栈的接口链接到vRouter的VRF。

一个名为_kube-network-manager _listens的进程使用Kubernetes _k8s _API侦听与网络相关的消息,并将这些消息发送到Tungsten Fabric API。

在服务器上建立pod时,本地_kubelet _和vRouter代理之间经过Container Network Interface(CNI)进行通讯,以将新接口链接到正确的VRF。

服务中的每一个pod在虚拟网络中分配惟一的IP地址,而且还为服务中的全部pods分配浮动IP地址。服务地址用于将流量从其余服务中的pod或外部客户端或服务器发送到服务中。

当流量从pod发送到服务IP时,链接到该pod的vRouter将使用到服务IP地址的路由执行ECMP负载平衡,该服务IP地址将解析为构成目标服务的各个pod的接口。

当流量须要从Kubernetes集群外部发送到服务IP时,能够将Tungsten Fabric配置为建立一对(用于冗余)_ha-proxy_负载均衡器,它能够执行基于URL的路由到Kubernetes服务,最好使用浮动IP地址避免暴露集群的内部IP地址。

这些外部可见的服务地址解析为到服务Pod的ECMP负载平衡路由。

在Kubernetes集群中使用Tungsten Fabric虚拟网络时,不须要Kubernetes代理负载均衡。

提供外部访问的其余替代方法包括:使用与负载均衡器对象关联的浮动IP地址,或使用与服务关联的浮动IP地址。

在Kubernetes中建立或删除服务和pod时,kube-network-manager进程会检测k8s API中的相应事件,并使用Tungsten Fabric API根据为Kubernetes群集配置的网络模式应用网络策略。 各类选项总结在下表中。
Tungsten Fabric如何编排

Tungsten Fabric为Kubernetes世界带来了许多强大的网络功能,与OpenStack的功能相同,包括:

  • IP地址管理
  • DHCP
  • DNS
  • 负载均衡
  • 网络地址转换(1:1浮动IP和N:1 SNAT)
  • 访问控制列表
  • 基于应用程序的安全性

TF和vCenter集成{#tf-vcenter}

VMware vCenter普遍用做虚拟化平台,但须要手动配置网络网关,以实现位于不一样子网中的虚拟机与vCenter群集外部目标之间的网络链接。

能够在现有vCenter环境中部署Tungsten Fabric虚拟网络,以提供先前列出的全部网络功能,同时保留用户可能依赖的工做流,以使用vCenter GUI和API建立和管理虚拟机。

此外,还在vRealize Orchestrator和vRealize Automation中实现了对Tungsten Fabric的支持,以便Tungsten Fabric中的常见任务(如建立虚拟网络和网络策略)能够包含在这些工具中实现的工做流中。

使用VMware vCenter的Tungsten Fabric架构以下图所示。
Tungsten Fabric如何编排

虚拟网络和策略能够在Tungsten Fabric中直接建立,也能够在vRO / vRA工做流程中使用TF任务建立。

当vCenter使用其GUI或vRO / vRA建立VM时,Tungsten Fabric的vCenter插件将在vCenter消息总线上看到相应的消息,这是Tungsten Fabric在服务器(将要建立VM的服务器)上配置vRouter的触发器。

每一个VM的每一个接口都链接到一个端口组,该端口组对应于该接口所在的虚拟网络。端口组具备与之关联的VLAN,由Tungsten Fabric控制器使用vCenter中的“VLAN override”选项设置,而且端口组的全部VLAN都经过中继端口组发送到vRouter。

Tungsten Fabric控制器将接口的VLAN映射到包含该子网的虚拟网络的VRF上。剥离VLAN标记,并执行VRF中的路由查找。

如本文档前面所述,经过Tungsten Fabric与vCenter的配合使用,用户能够访问Tungsten Fabric提供的所有网络和安全服务,包括零信任微分段,代理DHCP,DNS和DHCP,可避免网络泛洪,服务链,几乎无限的规模,以及与物理网络的无缝互连。

###嵌套的Kubernetes与OpenStack或vCenter {#tf-nested-kubernetes}

假设已经经过某种方式预先配置了运行容器的KVM主机。

还有一种替代方法,是使用OpenStack或vCenter来配置容器运行的VM,并使用Tungsten Fabric管理OpenStack或vCenter建立的VM与Kubernetes建立的容器之间的虚拟网络,以下图所示。
Tungsten Fabric如何编排

编排器(OpenStack或vCenter),Kubernetes Master和Tungsten Fabric在一组服务器或VM中运行。

编排器配置为使用Tungsten Fabric管理计算群集,所以每台服务器上都有vRouters。

能够将虚拟机启动并配置为运行Kubelet和Tungsten Fabric的CNI插件。这些虚拟机可供Kubernetes主机运行,并经过Tungsten Fabric管理网络。

因为同一个Tungsten Fabric负责管理orchestrator和Kubernetes的网络,所以能够在VM之间,容器之间,以及VM和容器之间实现无缝联网。

在嵌套场景中,Tungsten Fabric提供与前面所述相同的隔离级别,而且多个Kubernetes Masters能够共存,而且运行Kubelet的多个VM能够在同一主机上运行。 这容许提供多租户Kubernetes容器服务。


MORE
更多Tungsten Fabric解析文章

第一篇:TF主要特色和用例
第二篇:TF怎么运做
第三篇:详解vRouter体系结构
第四篇:TF的服务链
第五篇:vRouter的部署选项
第六篇:TF如何收集、分析、部署?

关于Tungsten Fabric:
Tungsten Fabric项目是一个开源项目协议,它基于标准协议开发,而且提供网络虚拟化和网络安全所必需的全部组件。项目的组件包括:SDN控制器,虚拟路由器,分析引擎,北向API的发布,硬件集成功能,云编排软件和普遍的REST API。

关于TF中文社区:
TF中文社区由中国的一群关注和热爱SDN的志愿者自发发起,有技术老鸟,市场老炮,也有行业专家,资深用户。将做为链接社区与中国的桥梁,传播资讯,提交问题,组织活动,联合一切对多云互联网络有兴趣的力量,切实解决云网络建设过程当中遇到的问题。

Tungsten Fabric如何编排
关注微信:TF中文社区
Tungsten Fabric如何编排

相关文章
相关标签/搜索