pods 在不同命名空间上的通信

Communication between pods on different namespaces

我在名为 frontend 的命名空间上有一个应用程序 pod 运行,在另一个名为 backend 的命名空间上有一个数据库 pod 运行。我需要在驻留在不同名称空间中的 pods 之间进行通信。数据库容器已启动且 运行 但应用程序容器出现 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

我假设您在 xyz 命名空间中有一个名为 postgres ClusterIP 类型服务。然后您可以通过指定 postgres.xyz

从另一个名称空间访问它

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