蚂蚁金服Docker网络技术实践

  • 时间:
  • 浏览:2
  • 来源:uu快3下载网站_uu快3开户二维码

VPC Driver

业务上云会有这个选者,有另另另一个 是经典的云环境,另外就说 VPC的环境。因此 亲戚亲戚朋友使用的是VPC环境,就不必 采用亲戚亲戚朋友的这个VPC Driver。其主要实现最好的土办法就说 阿里云提供了自定义路由的最好的土办法,不必 自定义VRouter上的路由,也就说 自定义数据到达VRouter之后下一跳的路径,因此 是利用专线就不必 实现和用户中心的Docker互联。VPC Driver非常适用于在阿里云的VPC上使用docker。

小结

这这个网路有一点同时点,首先需求是同时的,也有满足容器的跨主机通信的需求,同时ARP的广播会增加网络负担,阿里云我本人的产品上这个点就被处置了,这这个网络使用的Gossip协议的运维复杂性度,因此 无法适应多种docker网络环境,难以满足高性能的网络业务。

Smart Nic Driver

之后提到的最好的土办法也有在Linux内核中完成的,所以消耗的是Linux主机的能力,在千兆网络环境下亲戚亲戚朋友因此 着实 也有问題报告 ,因此 在万兆网络中,就会感觉到无法发挥出万兆网络真正的能力。因此 没有SRIOV网络隔离,容器之间网络的影响还是比较大的,另外在各种业务整合的之后,时要做流量管控的之后又将是性能消耗点。

高性能网络着实 要做的就说 类式 一张智能网卡,用网卡对于协议报文进行加解封装,因此 将协议报文直接送到容器上边,宿主机性能没有任何消耗,因此 没有 对于智能网卡功能的扩展也非常容易,就说 会影响宿主机。实现了无论网卡要怎样,保证容器底层的网络最优。

docker和plugin是要怎样通信有这个最好的土办法:.sock/.spec/.json。一般亲戚亲戚朋友使用的也有sock的最好的土办法。目前蚂蚁金服使用的也有容器的最好的土办法,没有 的最好的土办法既不必 很方便地对它进行升级,不必 能很方便地进行管理。

二、docker网络插件架构和开发

在介绍阿里云的插件构建之后,先给简单亲戚亲戚朋友介绍docker网络插件架构和开发通用的CNM模型。如下图所示,这里有有另另另一个 docker容器,这里主要有有另另另一个 概念Sandbox、Endpoint和Network。Sandbox不必 理解为docker内控 运行的namespace,也就说 隔离的网络配置环境;Endpoint着实 是虚拟的网卡,它隶属于某有另另另一个 network的通讯端口,多个Endpoint不必 能在有另另另一个 Sandbox中共存;而NetWork就说 所有接在节点上边的Endpoint,也就说 有另另另一个 唯一的、可识别的endpoint组。在同有另另另一个 Network中的endpoint不必 相互通讯,因此 愿意创建有另另另一个 Frontend和Backendnetwork,因此 这有另另另一个 network是详细隔离的。

在网桥建立完成之后,同有另另另一个 宿主机上的不同容器之间就不必 通过网桥的转发功能进行通信,因此 发生不同宿主机器上的容器无法直接进行通信,亲戚亲戚朋友不必 通过iptables SNAT/DNAT和容器外网络进行通信。Bridge网络形状比较简单,因此 缺点是不同宿主机之间的容器着实 不必说在有另另另一个 同时的网络中,不同宿主机之间的容器无法进行直接的通信。

SRIOV Driver

SRIOV Driver本质上也是VLAN网络,因此 目前没有采用Ovs。因此 有一点像DB没有 的业务对于网络的延迟有更高的要求,才产生了SRIOV Driver。具体的做法就说 将VF虚化出来,直接塞到容器上边去,沿用现实场景中的Bonding模式,使用双活的Bonding模式使得PF和VF两边都不必 结合起来。

目前docker因此 提供了开发“利器”,也就说 docker官方提供的开发框架。亲戚亲戚朋友在开发时只时要导入有几个包,当容器运行起来,整个插件的服务也就现在现在开始 运行了,上边时要实现的就说 有几个接口了。也就说 最少亲戚亲戚朋友不必从零现在现在开始 造轮子了。

docker Weave网络

Weave网络的易用性比较高,所以更容易上手,因此 目前而言,Weave网络的产品系也是比较完善的。Weave网络有这个实现最好的土办法,这个是用户动态的封装实现,另外这个是内核态的封装实现,这里主要介绍内核态的封装实现。

这里简单提一下VXLAN协议,下图中的Inner Enthernet Frame是由容器发出的报文,在经过报文一层层封装之后,最后以UDP的最好的土办法发送出去。

在下图中Weave Router暗含没有 的有另另另一个 插件,这个插件主要实现了有另另另一个 功能,有另另另一个 是帮助与一点的宿主机建立gossip协议的链接,从而建立集群的拓扑关系。另外一点就说 帮助跨宿主机的容器通过datapath和VXLAN隧道进行通信。

以下内容根据演讲PPT以及现场分享采集而成。

在理解这有另另另一个 概念之后,亲戚亲戚朋友看一下哪些地方地方概念是要怎样在流程中串联起来的。docker在启动起来一定会起到Controller没有 的角色,当创建Network的之后,就会调用newController函数,之后再调用newSandbox创建namespace,之后一定会调用newEndpoint,使得插件我本人处置要怎样去创建Endpoint,最后将调用join的最好的土办法,建立Sandbox和Endpoint的关系,这之后就最少容器暗含了网卡。

VXLAN Driver

VXLAN Driver适用于在阿里云经典云环境上边进行构建应用的场景。这个方案是比较完善的,它将SLB,以及对内和对外的因素都考虑进去了。VXLAN Driver具有独立的IPAM,支持Subnet,进行了MACNAT和ARP带回,所以在容器上边就看的所有容器的MAC地址也有一样的。比较适用于在阿里云经典VM中运行多docker。

在Overlay网络中,每个容器会有两张网卡,其中一张网卡用于与内控 网络进行通信,向内控 网络传输的数据会经由eth1网卡,并通过docker_gwbridge发送出去。因此 是不同宿主机之间的容器愿意通信语录,数据因此 通过eth0发送出去。每个overlay网络有独立namespace和br0网桥,在节点组件集群进行通讯时,采用的使用gossip协议来管理节点成员关系、因此 通过广播L3Miss处置二层ARP的交互。而不同网桥上的VXLAN设备的作用就说 帮助不同宿主机的容器通过VXLAN隧道直接通信。

一、docker网络分析

主要介绍这个docker网络,Bridge网络、docker原生的Overlay网络以及Weave网络,在这里主要分享一下哪些地方地方网络的架构因此 说是形状。

主要内容提纲

一、docker网络分析

二、docker网络插件开发

三、蚂蚁金服的网络插件实践

三、蚂蚁金服网络插件

VLAN Driver VLAN Driver着实 是最接近于现有物理网络的驱动插件。在没有 的方案中,宿主机的管控流量和容器的流量被隔离在有另另另一个 不同的VLAN中,采用了Ovs bridge,因此 将容器接入到这个Ovs bridge中。为了处置ARP广播风暴因此 缓解交换机PPS的巨大压力,采用了ARP带回的策略和大二层的策略,也处置了容器MAC地址表象对于交换机的影响。目前在大次要的企业都选者了VLAN的最好的土办法,因此 它最适配现有物理网络,对业务影响最小。

docker Overlay网络

对于应用而言,因此 要部署在docker中,基本上都时要面对跨主机互联的问題报告 ,docker提供了原生的Overlay网络,对docker具有良好的支持性。

docker Bridge网络

Bridge网络因此 是亲戚亲戚朋友最熟悉的网络,如下图所示,HostA和HostB是有另另另一个 宿主机,docker运行起来就将在宿主机上创建docker0的网桥作为容器的开关。