【发布时间】:2018-04-06 15:49:47
【问题描述】:
我已经建立了一个由多个相互关联的微服务组成的多容器 pod。在 docker-compose 上,如果我想访问 compose 中的另一个容器,我只需使用服务的名称。
我正在尝试对 Kube 做同样的事情,而不必为每个微服务创建一个 pod。
我尝试了容器的名称或带有.local 的后缀,但都没有成功,我得到了一个 UnknownHostException。
我的偏好也是让所有微服务在端口 80 上运行,但如果这在单个 pod 中不起作用,我还尝试让每个微服务在其自己的端口上运行并使用localhost,但这并没有工作要么它只是说连接被拒绝(而不是未知主机)
【问题讨论】:
-
pod 内的容器共享一个 IP 地址和端口空间,并且可以通过 localhost 找到彼此。它们还可以使用标准的进程间通信(如 SystemV 信号量或 POSIX 共享内存)相互通信。不同 pod 中的容器具有不同的 IP 地址,无法通过 IPC 进行通信。 kubernetes.io/docs/concepts/workloads/pods/pod
-
这听起来不对,因为我所有的容器都在端口 80 上运行,它们应该被隔离对吧?
-
当然,在这种情况下,您需要为您的服务创建不同的 pod 或更改任何容器上的端口
-
因此,如果一切都在一个端口上,则每个容器需要一个 pod。好的,我只是尝试将每个容器都作为自己的端口。仍然无法正常工作,但至少 localhost 可以解决
-
如果您在一个 POD 中拥有所有容器。您应该可以使用
localhost:port访问
标签: kubernetes