l2 cni插件与l3插件有什么区别?

时间:2019-02-25 18:19:41

标签: docker kubernetes flannel calico cni

l2 cni插件与l3 cni插件之间有什么区别?

L2 CNI插件不提供对Pod的公共访问吗?L2和L3插件的示例是什么

1 个答案:

答案 0 :(得分:2)

通常,当人们指的是L2 vs L3 CNI插件时,他们谈论的是Pod的可达性(公共vs私有),而更多地是关于网络插件在Pod和Pod之间提供的连接的OSI网络模型层。其他Kubernetes吊舱。

例如,如果所有Pod都可以相互发送L2流量(例如ARP),则CNI插件将提供L2连接。大多数CNI插件都向Kubernetes吊舱提供IP(L3)网络,因为这是Kubernetes networking model.

所定义的

提供跨主机L3网络的Kubernetes网络实现的一些示例:Calico,法兰绒,运河,kube-router等。

我能想到的唯一一个可以在主机之间提供L2网络的示例是Weave Net,但我希望还有其他一些我忘记的例子。

请注意,上面的许多方法都可以使用VXLAN之类的封装方法在主机之间提供Pod到Pod的联网。这通常被误解为表示它们在Pod之间提供L2网络。但是,他们仍然经常在Pod及其主机之间使用IP路由步骤,这意味着它提供了L3 Pod到Pod的连接。

还请注意,上述许多主机使用Linux网桥连接同一主机上的Pod,这意味着同一主机上的Pod将获得L2连接,但其他主机上的Pod将被路由(L3)。将L3网络扩展到大量端点要容易得多,因此这很有意义。印花棉布在这里是一个例外,即使对于同一主机上的Pod,也使用L3路由网络。