Docker l2 cni插件和l3插件有什么区别?

Docker l2 cni插件和l3插件有什么区别?,docker,kubernetes,flannel,calico,cni,Docker,Kubernetes,Flannel,Calico,Cni,l2 cni插件和l3 cni插件有什么区别 L2 CNI插件是否不提供POD的公共访问?L2和L3插件的示例是什么?通常,当提到L2和L3 CNI插件时,他们很少谈论POD的可达性(公共和私有),更多关于OSI网络模型层的信息,网络插件在该pod和其他Kubernetes pod之间提供连接 例如,如果所有POD都可以互相发送L2流量(例如ARP),那么CNI插件提供L2连接。大多数CNI插件为Kubernetes吊舱提供IP(L3)网络,因为这是由 提供跨主机L3网络的Kubernetes网

l2 cni插件和l3 cni插件有什么区别


L2 CNI插件是否不提供POD的公共访问?L2和L3插件的示例是什么?通常,当提到L2和L3 CNI插件时,他们很少谈论POD的可达性(公共和私有),更多关于OSI网络模型层的信息,网络插件在该pod和其他Kubernetes pod之间提供连接

例如,如果所有POD都可以互相发送L2流量(例如ARP),那么CNI插件提供L2连接。大多数CNI插件为Kubernetes吊舱提供IP(L3)网络,因为这是由

提供跨主机L3网络的Kubernetes网络实现的一些示例:印花布、法兰绒、运河、kube路由器等

我能想到的唯一一个可以跨主机提供L2网络的例子是Weave Net,但我想可能还有其他一些我忘记了

请注意,上面的许多方法都可以使用封装方法(如VXLAN)跨主机提供pod到pod的网络。这通常被误解为它们在POD之间提供二语网络。然而,它们通常仍然在pod和主机之间使用IP路由步骤,这意味着它提供L3 pod到pod的连接

还请注意,上面的许多连接吊舱都使用linux网桥连接到同一主机上,这意味着同一主机上的吊舱将获得L2连接,但其他主机上的吊舱将被路由(L3)。将L3网络扩展到大量端点要容易得多,因此这是有意义的。Calico在这里是一个轻微的例外,使用L3路由网络,即使对于同一主机上的POD也是如此