我有一个在名为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
答案 0 :(得分:2)
我假设您在postgres
命名空间中有一个名称为xyz
的{{3}}类型的服务。然后,您可以通过指定postgres.xyz
Kubernetes具有一个DNS系统ClusterIP,它将主机名postgres.xyz
解析为POD IP。