【发布时间】:2020-11-19 08:31:15
【问题描述】:
我正在构建一个要部署在云环境中的应用程序。 我正在使用 Kubernetes 和 Docker。
我的映像包含两个容器:一个用于应用程序,另一个用于 Postgres DBMS(包括它自己的数据库,通过持久卷声明存储)。
我这样做是因为这样我可以线性扩展我的应用程序,因为我的主要要求是能够像那样扩展它。
所以当我扩展我的部署时,它看起来或多或少像下面的图(我的应用程序有 N 个 pod):
我已经对该架构进行了性能测试,它非常适合我的需求,并且可以根据我的需要进行扩展。
但是,我担心数据复制及其可靠性。
所以这是我的问题:
-
如何使用这种类型的架构进行复制? Kubernetes 有没有办法通过特定的存储类来处理它?最好的方法是什么?
-
一般而言,在研究此架构时,DBA 的期望是什么?是否可以接受,因为我最终可能会使用太多数据库?
【问题讨论】:
-
为什么将 DB 部署在同一个 pod 中,而不是将 DB pod 与应用程序 pod 分开?
-
因为他们有自己的数据库以使其更好地扩展。如果我只扩展应用程序,那么我的数据库就会成为瓶颈。
-
如果您通过引入服务的新实例来扩大规模或通过减少实例数量来缩小规模,它是如何工作的。您已经保存的数据会怎样?实例消失后谁为他们服务?
标签: docker kubernetes cloud microservices database-administration