kubernetes奴才之间的网络

时间:2014-12-13 10:02:51

标签: docker kubernetes

我安装了一个8节点的kubernetes集群(1个主人+ 7个小兵),但我遇到了一个网络问题。

我根据this step-by-step Fedora manual安装了我的集群,因此我使用Fedora 20及其测试存储库来获取kubernetes二进制文件。

安装后,我想尝试guestbook example,但在我看来,容器间网络存在问题。

虽然容器/ POD处于运行状态,我可以通过浏览器和redis容器(通过natcat)到达我的3个前端容器,但是与redis不在同一主机上的前端无法到达雷迪斯大师。前端的PHP回馈网络异常。

有人可以帮我解释为什么容器无法在主机之间相互接触吗?

我希望我能够准确地描述我的设置并提前感谢。

1 个答案:

答案 0 :(得分:3)

您遵循的Fedora指南只会让您在一台计算机上运行。它避免了跨节点建立网络的问题。

要使kubernetes工作,必须满足以下网络设置:

  1. 每个容器都应该能够与每个其他容器通信,甚至跨节点。这也意味着这些容器的桥接IP范围不得重叠。
  2. 在不在容器中的任何节点上运行的代码应该能够到达每个容器(反之亦然),甚至跨越节点。
  3. 如果网络上不属于群集的计算机可以直接访问容器,则没有必要(但很有用)。
  4. 有很多方法可以实现这一点 - 例如,为vagrant设置会在每个节点之间设置GRE隧道。在GCE上,我们使用平台的功能来进行路由。如果你在交换机上的物理机器上,你可能只需要做一个大的第2层网络w / bridge。开始使用的防弹方法(但可能不是最高效的,取决于您的设置)是使用flannel之类的东西。

    我们正在努力让这些东西更容易启动(不使用大量的shell脚本)并且正在考虑构建类似法兰绒的东西,以便有合理的默认值。