You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudNativePG Operator本地目录备份配置问题咨询

CloudNativePG Operator本地目录备份配置问题咨询

我完全理解你在本地集群测试CloudNativePG时遇到的这个困扰——官方文档几乎全是云存储方案的指引,本地目录备份的相关内容确实少得可怜,难怪你折腾半天没头绪。

首先得指出你当前配置的问题:你用的barmanObjectStore字段是专门为云对象存储(比如S3、GCS这类)设计的,它会默认使用对象存储的协议去访问指定路径,直接填本地/data自然行不通,这根本不是它的使用场景。

那本地目录备份该怎么配置呢?其实CloudNativePG支持通过本地存储卷来实现,核心是用backupVolumes定义本地存储,再在backup配置里绑定这个卷就行。给你一个可用的配置示例参考:

apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: local-test-cluster
spec:
  instances: 1
  storage:
    size: 10Gi
  # 定义备份用的本地存储卷,这里用hostPath映射节点本地目录
  backupVolumes:
    - name: local-backup-volume
      hostPath:
        path: /data/backups  # 替换成你本地节点上实际要存备份的目录
        type: DirectoryOrCreate  # 如果目录不存在会自动创建
  # 配置备份策略
  backup:
    retentionPolicy: "30d"
    # 指定使用上面定义的本地卷
    volume:
      name: local-backup-volume
      mountPath: /mnt/backup  # 备份在Pod内部的挂载路径
    # WAL和数据备份的参数可以保留你原来的配置
    wal:
      compression: gzip
      encryption: AES256
    data:
      compression: gzip
      encryption: AES256
      immediateCheckpoint: false
      jobs: 2

还有几个关键注意事项要提醒你:

  • 如果用hostPath,一定要确保Kubernetes节点上的目标目录(比如上面的/data/backups)对Pod的运行用户(默认是postgres)有读写权限,不然会出现权限拒绝的错误。
  • 如果你用的是kind、minikube这类本地集群,要注意hostPath对应的是集群节点的目录——比如minikube的话,你需要先通过minikube ssh进入节点,确认目录存在并设置好权限。
  • 别再混用barmanObjectStore和本地卷配置了,二者是完全独立的备份渠道,选一种配置即可。

按照这个思路调整配置后,应该就能实现本地目录的备份了,你可以试试看!

备注:内容来源于stack exchange,提问作者Vincent Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:20:28