1

我的应用程序由两个容器组成:应用程序本身和数据库。我打算将应用程序包装到图表中​​,从而为轻松的可重复部署铺平道路。

除了设置/读取环境 envs(helm+kubernetes 似乎处理得很好)之外,应用程序的部分配置是:

确保数据库预先填充了特殊的辅助数据(例如存在管理员用户,存在创建新用户所需的一些用户角色名称等)。

我喜欢让可读的 yaml 文件以人类可读的格式保存整个配置的想法。然而,乍一看,这似乎对这种(数据库记录)类型的配置没有helm任何帮助。

话虽如此,放置代码/配置以确保数据库包含某些辅助记录的最佳位置是什么?配置 yaml 文件?用 bash 编写的容器初始化脚本?

4

1 回答 1

1

您是对的,Kubernetes 或 Helm 无法帮助您准备预填充的数据库记录/模式。

您可能应该让您的应用程序初始化那些预填充的数据。如果您不想将此逻辑放入您的应用程序中,您可以发布一个初始化脚本并使用 Kubernetes配置一个init 容器。

Kubernetes 确保每次重新启动应用程序容器时,init 容器首先运行。在 init 容器中,您可以执行一个 bash/python/... 脚本,以确保您想要的记录在那里。

于 2017-06-02T20:34:49.057 回答