postgresql - Kubernetes:数据库和数据库用户

标签 postgresql kubernetes containers microservices stolon

我们计划使用 Kube 进行 Postgres 部署。我们的应用程序将是具有分离模式(或逻辑数据库)的微服务。为了安全起见,我们希望每个模式/逻辑数据库都有单独的用户。

我认为数据库/架构和用户应该由 Kube 创建,因此应用程序本身不需要访问数据库管理员帐户。

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

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

最佳答案

当谈到创建用户时,正如您所说,大多数图表和容器都会有用于在启动时创建用户的环境变量。然而,他们中的大多数没有考虑在启动时创建多个用户的可能性。

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

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

这样,您将拥有一个包含两个容器的 Pod:一个用于您的应用程序,一个用于设置数据库的 init 容器。

关于postgresql - Kubernetes:数据库和数据库用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277437/

相关文章:

c++ - Typedef 映射作为函数的返回类型会引发编译器错误

linux - 为什么 docker 容器中的应用程序不重启?

c++ - 可变长度数组 C++ 包装器容器

postgresql - 在 DataGrip 中禁用小写命名转换

php - SQL 存在于 Laravel 5 查询生成器中

kubernetes - Kubernetes多容器Pod中的容器间通信

MySQL lower_case_table_names = 1 和 Kubernetes yml 文件,MySQL 服务器启动错误

kubernetes - Istio 允许所有出站流量

sql - 如何在 Postgresql 中向字符串添加任意数量的数字或从字符串中删除数字

sql - PostgreSQL 中的 NUMTODSINTERVAL