为什么kubernetes不提供Pod到Pod的通信?

时间:2019-05-30 11:25:49

标签: networking kubernetes

在尝试理解 Kubernetes网络时,有一点使我感到困惑。为什么 Kubernetes不自行处理内置的Pod到Pod通讯?

根据文档-https://kubernetes.io/docs/concepts/cluster-administration/networking/

4个不同的联网问题要解决:

  1. 容器到容器的高度耦合的通信:已解决 通过pod和localhost通信。
  2. 点对点通信:这是此操作的主要重点 文档。
  3. Pod到Service通讯:服务涵盖了这一点。
  4. 外部到服务的通信:服务涵盖了这一点。

当Kubernetes可以处理所有其他网络问题(如上所述)时,为什么Pod到Pod的通信需要由其他plugins 处理例如ACI,Cilium,Flannel,Jaguar等。

是否想知道这种架构有什么具体原因

2 个答案:

答案 0 :(得分:1)

简短的答案是网络非常复杂且高度定制。提供可在任何地方使用的高效内置组件并不容易。所有云提供商网络都与裸机网络不同。与其选择糟糕的默认设置,不如要求最终用户(实际上是唯一可能理解其网络的人)做出决定。

可能会执行内置VXLAN或其他操作,但对于许多用户而言却并非理想之选,并且默认设置可能会持续...

答案 1 :(得分:1)

同意上述Tim。一般来说,Kubernetes大部分是开发人员的计算,存储和网络的抽象和编排层,因此他们不必知道实现。实现本身将与底层基础架构绑定在一起,而kubernetes仅为它们定义了接口(用于容器的CRI-计算,用于存储的CSI和用于网络的CNI)。

只需定义接口,实现就可以独立发展而不会违反合同。例如,将来有可能将Pod到Pod的网络卸载到NIC卡上,并且期望kubernetes演变为这种技术变化可能是一个大问题。通过不与实现紧密联系,它可以加快每一层技术的开发。

相关问题