多个Postgres进程可以在同一数据目录下运行吗?

时间:2018-11-28 06:06:18

标签: postgresql kubernetes

enter image description here

我有一个在多个吊舱中运行的应用程序。您可以将应用程序想象为连接到Postgres的Web应用程序(因此每个容器都具有app和Postgres进程)。我想将卷挂载到/var/lib/postgresql/data的每个pod中,以便每个应用程序都可以具有相同的数据库状态。他们可以同时读写。

这只是我将如何前进的一个想法。 我的问题是:我需要注意什么问题?还是这是完全错误的方法?

还是将Postgres从应用程序容器中分离到一个容器中,然后让应用程序容器连接到该容器中会更好?

如果我的问题表明我缺乏知识,请提供我应该阅读的链接,谢谢!

1 个答案:

答案 0 :(得分:3)

这绝对是行不通的,并且PostgreSQL会尝试阻止您针对同一数据目录尽可能好地启动多个postmaster。如果您仍然可以做到这一点,则会立即造成数据损坏。

执行此操作的正确方法是拥有一个数据库服务器,并将所有“ pod”连接到该服务器。如果您有许多这样的“ pod”,则可能应该使用pgbouncer之类的连接池来解决由于数据库连接过多而引起的问题。