不同名称空间上的Pod之间的通信

时间:2020-04-14 13:57:17

标签: kubernetes minikube kubernetes-pod

我有一个在名为frontend的名称空间上运行的应用程序容器,以及在另一个名为backend的名称空间上运行的数据库容器。我需要在位于不同名称空间的两个Pod之间进行通信。数据库容器已启动并正在运行,但是在应用程序容器中出现crashloopbackoff错误。

当我看到应用程序pod的日志时,解析数据库主机名时出错,该主机名是通过环境变量PGHOST提供的,并且等于数据库容器的名称。但是似乎应用程序容器无法解析数据库主机。

因此,我应该如何连接它们。我想这个问题是由于不同的命名空间造成的。那么我如何连接它们并使它们交流。

错误:

> The Gemfile's dependencies are satisfied rake aborted!
> PG::ConnectionBad: could not translate host name "postgres" to
> address: Name or service not known

1 个答案:

答案 0 :(得分:2)

我假设您在postgres 命名空间中有一个名称为xyz的{​​{3}}类型的服务。然后,您可以通过指定postgres.xyz

从另一个名称空间访问它

Kubernetes具有一个DNS系统ClusterIP,它将主机名postgres.xyz解析为POD IP。