如何访问 Kubernetes 中的复制数据库?

How to access replicated databases in Kubernetes?

我正在按照教程设置复制的有状态应用程序 here,但我遇到了一个问题,因为教程提到制作无头服务来访问 pods是您将如何连接到主数据库进行写入。这是一个问题,因为该服务是无头的,它不能对外公开(至少据我所知)。

所以我的问题是: 我是否应该在我的集群中创建一个专门的服务来处理数据库连接,就像 API 一样,它可以充当我的应用程序和数据库之间的中间件?或者是否有其他方法可以在集群中托管复制的数据库?我是 Kubernetes 的新手,所以我的问题可能看起来微不足道,尽管我试图在网上找到关于这个主题的资源但没有帮助。

无头服务是集群内的 DNS 解析器,它解析服务指向的 pods 的所有内部 IP 地址。所以你永远不能公开它,因为 IP 地址只能在你的集群内部工作。

最简单的方法是构建一个 Api 层来访问数据库并公开此 API。