如何在 kubernetes pod 创建时启动 sql 文件?

如何在 kubernetes pod 创建时启动 sql 文件?

我们的数据库位于 aws rds 或 azure postgres 中,甚至根据客户的不同位于不同的在线服务器上。

但是我们的产品将作为一个 pod 和服务在 azure kubernetes 中运行,并且在 configmap 中包含数据库详细信息。

在我们启动应用程序之前,必须在数据库中运行一个 SQL 文件作为预配置。

我们可以设置什么最佳方法来实现自动化?

答案1

对此问题有很多可能的解决方案,这取决于您部署的方式以及您使用的工具。

首先要意识到,启动 pod 并执行 SQL(初始化或迁移脚本)是一种反模式。容器应该只做一件事,你不应该假设容器将如何执行。例如,如果你同时启动多个容器会发生什么?如果它们都在启动时运行迁移,它们会相互绊倒。所以,初始化容器也应该作为解决方案被丢弃。

最简单的解决方案是作为单独的工作作为 CI/CD 管道的一部分。执行初始化/迁移。应用后,即可部署代码。

如果你正在使用, 您可以使用预安装或预更新挂钩

正如我试图解释的那样,有很多方法可以实现你想要的效果。最重要的是你需要控制“何时”应用数据库更改,因为你无法控制它们将“如何”运行。

相关内容