kubernetes minions之间的网络

问题描述:

我安装了一个8节点的kubernetes集群(1个主+7个小兵),但我面临着小伙伴之间的网络问题。kubernetes minions之间的网络

我按照this step-by-step Fedora manual安装了我的集群,所以我使用Fedora 20和它的测试版本库来获取kubernetes二进制文件。

安装完成后,我想尝试guestbook example,但在我看来,集装箱间网络存在问题。

尽管容器/ POD处于运行状态,并且可以通过浏览器访问我的3个前端容器(通过natcat),但前端与Redis不在同一主机上,但不能到达redis主。前端的PHP返回网络异常。

任何人都可以帮助我为什么容器不能在主机之间互相访问吗?

我希望我可以准确地描述我的设置,并提前致谢。

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

对于kubernetes工作,下面的网络设置必须满足:

  1. 每个容器应该能够跟所有其他的容器,甚至是跨节点。这也意味着这些容器的网桥IP范围不能重叠。
  2. 在不在容器中的任何节点上运行的代码应该能够到达每个容器(反之亦然),即使在节点上也是如此。
  3. 如果网络中不属于群集的计算机可以直接访问容器,则不需要(但很有用)。

有很多方法可以做到这一点 - 例如为流浪者设置每个节点之间的GRE隧道。在GCE上,我们使用平台的功能来进行路由。如果你在交换机上的物理机器上,你可能只需要做一个大型的第二层网络。一个防弹的方式开始(但可能不是最高性能,取决于你的设置)是使用像flannel之类的东西。

我们正在努力使这个东西更容易启动(不使用大量的shell脚本),并且正在考虑构建像绒布一样的东西,以便有一个合理的默认值。

+0

谢谢,它现在工作正常。 – Halacs 2014-12-18 07:34:13

+0

是否有可能详细说明如何让外部网络从子弹3工作,或指导我如何做到这一点的参考? – jmreicha 2015-03-12 02:06:29