如何在 k8s 部署 pod 时,让迁移只执行一次
动机
将执行迁移写到了镜像执行的脚本里,使用 k8s 部署一个三个副本的含有 laravel 容器的 pod 。
目前的问题
第一次部署的时候,由于数据库没有创建,pod 很快报错被重启了,之后创建了数据库,等待 pod 重启后执行一系列的脚本并启动容器进程。之后发现仍然报错重启,使用 kubectl logs 查看容器日志的时候发现在执行迁移的时候报错(SQL错误),说某表已经存在,我分析能导致这个问题的应该就是执行迁移过程中多个 pod 并发导致的,并且某个迁移文件执行出错了,导致没有将执行过的迁移数据写入到 migrations 表。请问如何解决这个问题?
关于 LearnKu
推荐文章: