为什么我在不同节点但在pod中运行的容器中有不同的ip

时间:2015-11-19 06:34:36

标签: docker kubernetes

我在三台机器上运行我的kubernetes集群。我创建了一个redis服务和rc,它运行一个pod创建三个复制。因此,两台机器上运行着三个容器。但是在单个节点中运行的redis slave无法连接到在另一个节点中运行的master。

node1 - >主人和奴隶1 node2 - > slave2

奴隶2只是这样抱怨:

  

无法在192.168.0.4:6379连接到Redis:连接被拒绝了   连接到主站失败。等待...
  错误:由同行重置连接
  无法连接到Redis 192.168.0.4:6379:连接被拒绝了   连接到主站失败。等待...
  错误:由同行重置连接
  无法连接到Redis 192.168.0.4:6379:连接被拒绝了   连接到主站失败。等待...
  ......(很多人......)

而另一个slave(slave1)在运行主服务器的节点中运行良好。 所以我不知道是什么问题。
为什么slave2尝试连接到这个ip'192.168.0.4'而不是127.0.0.1(据说pod中的容器使用相同的ip。)。

顺便说一句,容器中是否有自己的ip,以便它们可以相互通信并彼此分开。

2 个答案:

答案 0 :(得分:0)

哦,我知道了。在pod中运行的容器不能分成不同的节点。

答案 1 :(得分:0)

您需要使用列出所有Redis节点(主服务器)的服务通过该服务连接到它们。您不能只使用IP,因为如果节点关闭并且pod在另一个节点上重新启动,则IP可能会发生变化。

此外,127.0.0.1是localhost,并且仅适用于同一pod中的容器。 (pod链接容器,并在节点上运行。在多个节点上部署/复制pod。)