我有一个在K8s中运行的应用程序,它使用Postgres作为后端DB。有一个PV被配置为在容器崩溃的情况下保留数据。当我模拟崩溃时,即删除pod...
然后Kubernetes提出了另一个pod,但这失败了。我怀疑这是因为在entrypoint.sh中- postgres运行initdb,并且因为目录不为空而失败。
所以我的问题是,我要么需要归档数据,要么需要在容器发生故障时导入数据。
如果归档,如何将数据复制到运行pod的节点?我还尝试在docker镜像的entrypoint.sh上注释initdb,但无济于事。
发布于 2019-07-30 19:47:33
postgresql是否作为statefulset运行?如果没有,请尝试将其更改为statefulset。
您是否可以更新启动脚本以检查挂载目录中的文件,如果文件存在,则忽略db创建,或者继续执行脚本。
在容器启动时创建一个名为run.initialized.txt的文件,然后继续执行脚本。确保将该文件持久化到装载点。这样,当pod被删除并启动新pod时,它将在挂载目录中找到run.initialized.txt并忽略该脚本
https://stackoverflow.com/questions/57270811
复制相似问题