【问题标题】:Why have I got different ip in containers running in defferent nodes but within a pod为什么我在运行在不同节点但在 pod 中的容器中获得不同的 ip
【发布时间】:2015-11-19 06:34:35
【问题描述】:

我在三台机器上运行我的 kubernetes 集群。我创建了一个 redis 服务和 rc,它运行一个创建三个复制的 pod。所以三个容器在两台机器上运行。但是在单个节点上运行的 redis 从站无法连接到在另一个节点上运行的主站。

node1 -> master和slave1
节点2->从属2

slave2 只是这样抱怨:

无法在 192.168.0.4:6379 连接到 Redis:连接被拒绝
连接到主服务器失败。等待...
错误:对等方重置连接
无法在 192.168.0.4:6379 连接到 Redis:连接被拒绝
连接到主服务器失败。等待...
错误:对等方重置连接
无法在 192.168.0.4:6379 连接到 Redis:连接被拒绝
连接到主服务器失败。等待...
...(其中很多...)

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

顺便说一句,容器在一个 pod 中是否有自己的 ip,以便它们可以相互通信并相互隔离。

【问题讨论】:

    标签: docker kubernetes


    【解决方案1】:

    哦,我明白了。在一个 pod 中运行的容器不能分离到不同的节点中。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢。我懂了。 use a service listing all the Redis nodes (master) to connect to them 这是个好主意。
      猜你喜欢
      • 2013-11-02
      • 2018-08-20
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多