Kubernetes:数据库&数据库用户

时间:2018-01-16 09:00:58

标签: postgresql kubernetes containers microservices stolon

我们计划使用Kube进行Postgres部署。我们的应用程序将是具有独立模式(或逻辑数据库)的微服务。出于安全考虑,我们希望为每个schema / logical_db分别拥有用户。

我认为db / schema& user应该由Kube创建,因此应用程序本身不需要访问DB管理员帐户。

Stolon中,似乎只有创建单个用户和单个数据库的可能性,其他HA Postgres图表似乎也是如此。

问题:Kube中微服务创建数据库用户的首选方式是什么?

1 个答案:

答案 0 :(得分:2)

在创建用户时,正如您所说,大多数图表和容器都有用于在启动时创建用户的环境变量。但是,大多数人都没有考虑在启动时创建多个用户的可能性。

正如您所说,其他容器所做的是在k8s机密中拥有root凭据,因此它们可以访问数据库并创建正确的模式和用户。这不一定需要在应用程序逻辑中完成,但是,例如,使用init容器为您的应用程序设置正确的数据库以运行。

https://kubernetes.io/docs/concepts/workloads/pods/init-containers

通过这种方式,您将拥有一个包含两个容器的容器:一个用于您的应用程序,另一个容器用于设置数据库。