我有一个 Docker 卷,它是 PostgreSQL 容器的快照。我想将此卷应用到 Kubernetes Pod 中的 PostgreSQL 容器。有什么方法可以做到这一点吗? 仅供参考,我使用 helm 进行 Kubernetes 安装,并且使用 Bitnami PostgreSQL helm 图表。
免责声明:我不确定我使用的术语是否正确,因此如有必要,请要求澄清。
除非 Kubernetes 集群和之前的 Docker 容器有一个共同的物理主机,否则您将无法“应用此卷”到 Kubernetes Pod,因为卷附加到创建它们的主机上。
我认为最简单的方法是制作和恢复数据库的转储。使用 pg_dump 和 pg_restore。
根据转储的大小(小于 1MiB),您可以将转储导出到
.sql
文件,然后使用 StatefulSet
将其 mount到您的
ConfigMap
中。最后,您可以在该文件上使用 pg_restore
。
如果它大于 1MiB,那么您需要将转储推送到在线存储,从 Pod 中下载它,然后恢复它。但是,Bitnami Docker 映像高度安全,因此不会让您安装任何额外的工具(如
wget
)来下载转储。因此,我建议您使用锁定较少的官方 Docker 镜像,这样您就可以使用 wget
安装 apt
。