容器的到来给数据中心网络带来了新的挑战。为了适应容器,还必须相应地调整网络的一部分,以便在容器周围生成许多不同的网络解决方案。本文档主要介绍几种容器网络方案技术。 。
容器技术非常活跃,经常被提及,尤其是开源可停靠工具,它已广泛用于许多数据中心。容器主要是标准化软件包及其依赖环境,它们将应用程序彼此分离并在许多主要操作系统上运行。显然,包装和虚拟机技术非常相似,容器是隔离的APP级别,而虚拟化是物理资源的隔离级别,容器解决了许多虚拟痛点技术问题,很多时间和虚拟机的容器可以一起使用这也是当前数据中心的主要做法。容器的到来给数据中心网络带来了新的挑战。为了适应容器,还必须相应地调整网络的一部分,以便在容器周围生成许多不同的网络解决方案。本文档主要介绍几种容器网络方案技术。 。
印花布
网络和其它容器Callico虚拟网络之间的最大区别是不使用覆盖网络用于消息转发,仅提供三层的网络模型。三个层次的通信模型表示的每个容器直接IP通信,彼此相遇通过旁通中间路由,包其中节点是类似于传统的路由器中,为了提供搜索功能的路由能够正确工作路由,每个容器必须的主机节点有一种方法可以知道整个集群的路由信息。 Callico使用BGP路由协议,称为边缘网关协议。
通过BGP,整个网络中的所有节点和网络设备都记录到整个网络的路由。您可以看到此方法生成许多无效路由。网络设备具有严格的路由规范。整个网络不能具有低路由规范的设备。 。 BGP是一种成熟的网络路由协议,在传统网络中得到广泛应用。因此,网络的一部分可以支持Callico自然,但规格路由网络更高。此外,通过Callico通过数据中心源主机实现从源容器中的路由选择过程,然后到目的地主机和最后目标容器。整个过程总是基于用于路由和转发BGP协议,并且没有分组被解码。包的过程,所以转发的效率会快得多。因此,技术越简化,执行效率越高,Callico集装箱网络的技术优势。
绒布
绒布是通过CoreOS提出解决群集主机容器之间的通信的网络解决方案。 Flannel本质上是叠加网络的叠加网络,其涉及将TCP数据包装在另一网络分组中以用于转发和通信。目前,它支持UDP,VXLAN,AWS VPC,路由GCE和转发数据的其他方法,包括VXLAN技术是目前最流行,许多数据中心都在考虑移动到绒布VXLAN网络考虑出台时容器法兰绒为每个主机分配子网。容器从该子网分配IP。这些IP可以在主机之间路由。容器可以在没有NAT和端口分配的主机之间进行通信。 Flannel允许群集中节点的不同主机创建具有群集特有的虚拟IP地址的容器,并连接到主机节点的网络。 Flannel可以为集群的所有节点重新规划IP地址的使用规则,以便不同节点中的容器可以获得“在同一个内部网上”和“不重复”的IP地址,这样不同节点中的容器可以直接通过Intranet。 IP通信,网络的封装部分对容器是不可见的。 UDP源主机服务封装原始数据内容,并根据自己的路由表将其传送到目标节点。一旦数据到达时,他们解压,然后直接进入到目的节点的虚拟网卡,然后直接到目标主机的虚拟网卡容器来实现网络通信的目的。尽管法兰绒对网络有很高的要求,但有必要引入封装技术,转发效率也会受到影响,但它可以顺利通过SDN网络。 VXLAN技术可以与SDN很好地集成,值得自动部署和整个网络的智能操作和维护。而管理,这也是网络技术发展的方向。因此,法兰绒放弃了传统网络并完全建立了一个新的覆盖网络来支持容器,这更适合于新数据中心的网络实施。
织
编织也是一个叠加的网络。 Weave可以虚拟化连接类似于本地网络的网络中不同主机上的容器的网络。不同的主机使用自己的私有IP地址。当容器分布在不同的主机上时。结构可以简化这些容器之间的通信。 Weave网络中的容器使用标准端口服务(例如MySQL默认为3306),管理微服务很简单。每个容器都可以通过域名与另一个容器通信,或者可以直接通信而无需使用NAT或使用复杂端口或联合的分配。实现Weave容器网络的最大好处是您无需修改应用程序的代码。
Weave通过在容器集群的每个主机上启动虚拟路由器并使用主机作为路由器来形成互连的网络拓扑,从而实现主机容器之间的通信。要实现Weave,必须确保主机的Linux内核版本大于3.8。 Docker1.10或更高版本。如果主机之间存在防火墙,则防火墙必须释放TCP端口号6783和UDP 6783/6784。这些是Weave控件和数据端口。名称不能相同,Weave希望通过主机名识别子网。编织网络类似于主机叠加技术,直接将数据包封装流量的主机实现主机与通过底层网络层3.这是最大的不同网络主机之间的相互访问法兰绒。法兰绒是一种网络覆盖解决方案。 。三种容器网络解决方案适用于不同的应用场景。这取决于数据中心的选择方式。在难度方面,Callico是最简单的。其次,法兰绒和编织是最复杂的。从网络技术的角度来看,Weave和Flannel都是。网络封装技术的区别在于网络设备或主机中数据包的位置。