【发布时间】:2019-07-19 05:21:59
【问题描述】:
l2 cni 插件与 l3 cni 插件有什么区别?
L2 CNI 插件是否不提供对 pod 的公共访问?L2 和 L3 插件的示例有哪些
【问题讨论】:
标签: docker kubernetes flannel calico cni
l2 cni 插件与 l3 cni 插件有什么区别?
L2 CNI 插件是否不提供对 pod 的公共访问?L2 和 L3 插件的示例有哪些
【问题讨论】:
标签: docker kubernetes flannel calico cni
通常当提到 L2 与 L3 CNI 插件时,他们谈论的较少是其 pod 的可达性(公共与私有),而更多的是关于网络插件在该 pod 和其他 Kubernetes pod。
例如,如果所有 pod 都可以相互发送 L2 流量(例如 ARP),则 CNI 插件提供 L2 连接。大多数 CNI 插件为 Kubernetes pod 提供 IP (L3) 网络,因为这是由 Kubernetes networking model. 定义的
提供跨主机 L3 网络的 Kubernetes 网络实现示例:Calico、flannel、Canal、kube-router 等。
我能想到的可以跨主机提供 L2 网络的唯一示例是 Weave Net,但我预计可能还有其他我忘记了。
请注意,上述许多方法都可以使用 VXLAN 等封装方法来提供跨主机的 pod 到 pod 网络。这通常被误解为它们在 Pod 之间提供 L2 网络。但是,他们通常仍然在 pod 和它的主机之间使用 IP 路由步骤,这意味着它提供 L3 pod 到 pod 的连接。
另请注意,上述许多连接同一主机上的 pod 使用 linux 网桥,这意味着同一主机上的 pod 将获得 L2 连接,但其他主机上的 pod 将被路由 (L3)。将 L3 网络扩展到大量端点要容易得多,所以这是有道理的。 Calico 在这里是一个小例外,即使是同一主机上的 Pod 也使用 L3 路由网络。
【讨论】: