我有一个应用程序在多个pod中运行。您可以将应用程序想象为连接到Postgres的web应用程序(因此每个容器都有app和Postgres进程)。我想在/var/lib/postgresql/data
将卷装入每个pod,这样每个应用程序都可以拥有相同的数据库状态。他们可以同时读/写。
我只是想知道我该怎么走。
我的问题是:我有什么需要注意的吗?或者这是完全错误的做法?
或者将Postgres从app容器中分离到一个pod中,让app容器连接到这个pod中会更好吗?
如果我的问题显示我缺乏知识,请提供我应该阅读的链接,谢谢!
最佳答案
这将完全失败,PostgreSQL将尽力阻止您针对同一数据目录启动多个postmaster。如果您仍然设法做到这一点,即时数据损坏将随之而来。
正确的方法是使用一个数据库服务器,并将所有“pod”连接到该服务器。如果您有许多这样的“pod”,那么您可能应该使用pgbouncer这样的连接池来解决由太多数据库连接引起的问题。
关于postgresql - 多个Postgres进程可以在同一数据目录下运行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53513120/