我在 GKE 集群中运行 Kubernetes,需要在每次部署时运行数据库迁移脚本。对于暂存来说,这很容易:我们有一个永久的、独立的 MySQL 服务,它有自己的卷。然而,对于生产,我们使用 GCE SQL,导致作业有两个容器 - 一个用于迁移,另一个用于云代理。
由于这个新容器,作业在运行 kubectl describe jobs/migration
时总是显示为 1 active我完全不知所措。我已经尝试重新排序容器以查看它是否默认检查一个容器,但这没有任何区别,而且我无法找到一种方法来 a) 终止容器或 b) 检查作业中仅一个容器的状态。
有任何想法吗?
最佳答案
我知道现在已经晚了一年,但最佳实践是为所有应用程序的目的运行单个 cloudsql 代理服务,然后在应用程序的镜像中配置数据库访问以将此服务用作数据库主机名。
这样您就不需要将 cloudsql 代理容器放入每个使用 DB 的 pod 中。
关于kubernetes - 具有多个容器的作业永远不会成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42121164/