pod中的容器如何通过名称相互引用?

时间:2016-11-18 13:28:04

标签: kubernetes

简而言之,我在容器中有两个容器,分别名为ab,分别位于端口80和9000上。他们可以通过127.0.0.1:80127.0.0.1:9000相互联系。他们也可以通过名字相互联系吗?

我已经尝试了a.podname:90b.podname:9000podname:80以及其他没有运气的变体。

http://kubernetes.io/docs/admin/dns/#a-records但这些是基于POD分配的IP,事先并不知道。

还有http://kubernetes.io/docs/admin/dns/#srv-records但它们依赖于服务,因此也取决于准备标准。此外,SRV是DNS扩展,有时无法使用。

背景:为了使容器与Kubernetes和其他docker环境兼容,您必须避免依赖于localhost,但可能依赖于固定的端口号。例如,如果在Kubernetes中有一个名称解析为127.0.0.1或POD的IP,则该名称可用作docker-compose中的https://docs.docker.com/compose/compose-file/#/links别名。

特别是我正在尝试解决https://github.com/Reposoft/docker-svn/issues/8

1 个答案:

答案 0 :(得分:4)

如果你总是要在一个pod中运行这两个容器,那么<​​em>可以依赖localhost:xyz来访问,无论该pod在哪里安排。

如果要使用DNS名称,可以为SRV记录创建JWWalker's answer。您可以使用注释覆盖准备行为:a headless service。这应该会给你一个DNS名称来到你的pod。