如何在 Kubernetes 上实施 Postgres 备份?

5

在Kubernetes上备份Postgres的最佳方法是什么?

我的第一个猜测是创建一个主从架构并启用复制。进行初始的pg_basebackup,然后获取WAL日志。每个月我会使用cron调度另一个pg_basebackup,但是容器化环境不喜欢cron守护程序(没有可用的systemd)。你如何安排基本备份?


Kubernetes确实拥有“CronJob”资源类型。 - zerkms
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ - amit23comp
如上评论所述,您可以使用cronjob,这里和这里有一个示例,另一个想法可能是使用operator,这里有一篇关于此的博客。 - Jakub
1个回答

10
最佳方案是使用 Kubernetes 的 Cronjob 资源:

您可以使用 CronJob 在基于时间的计划上运行 Jobs。这些自动化作业类似于 Linux 或 UNIX 系统上的 Cron 任务。

Cron 作业对于创建定期和重复的任务非常有用,例如运行备份或发送电子邮件。

您基本上需要创建一个自定义 Linux 映像以在容器作业中运行。此映像将需要一个 Postgres 客户端(因此您可以使用 psqlpg_dumppg_basebackup 连接到数据库);以及可以配置为 secret 的凭据。
您可能希望将备份上传到外部存储,因此您可以安装并使用 awscli 用于 AWS S3,gsutil 用于 Google Cloud Storage 等等...
这里是一些参考资料:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接