【问题标题】:Kubernetes: Databases & DB UsersKubernetes:数据库和数据库用户
【发布时间】:2018-06-24 22:28:57
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: postgresql kubernetes containers microservices stolon


    【解决方案1】:

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

    正如您所说,其他容器所做的是在 k8s 机密中拥有根凭据,以便它们访问数据库并创建正确的模式和用户。这不一定需要在应用程序逻辑中完成,例如,使用一个初始化容器来设置适当的数据库以供您的应用程序运行。

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

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

    【讨论】:

    • 每次运行微服务的 pod 时都会运行 init 容器。因此,如果用户和数据库尚不存在,是否需要逻辑来创建它们?预安装挂钩会是更好的解决方案吗?我不知道答案,但我把它扔给其他 cmets。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 2015-03-24
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多