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