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

能否对AKS集群进行备份?求PV/PVC数据备份至Azure容器方案建议

AKS PV/PVC数据备份到Azure存储容器:可行方案与最佳实践

完全可行,针对AKS集群中通过PV/PVC管理的应用数据备份到Azure Blob存储容器,以下是几种成熟的实施方案,可根据你的业务场景选择:

方案1:自定义脚本+Azure Blob挂载(轻量场景)

适合需要灵活定制备份策略、数据量不大的场景。

  • 步骤:
    1. 在Azure上创建存储账户和Blob容器,获取存储账户密钥。
    2. 在AKS中创建Secret存储密钥,然后通过azurefile CSI驱动将Blob容器挂载到专门的备份Pod(或直接挂载到应用Pod的侧容器)。
    3. 编写Shell备份脚本,用rsync或tar同步PV/PVC中的数据到Blob容器,示例:
      # 打包并备份数据
      tar -czf /mnt/blob/backup-$(date +%Y%m%d%H%M).tar.gz /mnt/pvc/data
      # 或直接同步
      rsync -avz --delete /mnt/pvc/data /mnt/blob/latest-backup/
      
    4. 通过Kubernetes CronJob定时执行脚本,比如每天凌晨1点运行:
      apiVersion: batch/v1
      kind: CronJob
      metadata:
        name: pvc-backup-job
      spec:
        schedule: "0 1 * * *"
        jobTemplate:
          spec:
            template:
              spec:
                containers:
                - name: backup
                  image: alpine:latest
                  command: ["/bin/sh", "-c", "rsync -avz /mnt/pvc/data /mnt/blob/backup-$(date +%Y%m%d%H%M)"]
                  volumeMounts:
                  - name: pvc-data
                    mountPath: /mnt/pvc/data
                  - name: blob-storage
                    mountPath: /mnt/blob
                volumes:
                - name: pvc-data
                  persistentVolumeClaim:
                    claimName: your-pvc-name
                - name: blob-storage
                  persistentVolumeClaim:
                    claimName: azure-blob-pvc
                restartPolicy: OnFailure
      
  • 注意:确保备份Pod有足够权限访问PV/PVC和Azure存储,避免权限不足导致备份失败。

方案2:Velero集成Azure Blob(企业级场景)

适合需要完整Kubernetes资源备份、增量备份、一键恢复的企业级集群环境。

  • 步骤:
    1. 安装Velero及Azure插件:
      # 先创建包含Azure credentials的文件
      cat << EOF > ./credentials-velero
      AZURE_SUBSCRIPTION_ID=<你的订阅ID>
      AZURE_TENANT_ID=<你的租户ID>
      AZURE_CLIENT_ID=<服务主体ID>
      AZURE_CLIENT_SECRET=<服务主体密钥>
      AZURE_RESOURCE_GROUP=<AKS节点资源组>
      AZURE_STORAGE_ACCOUNT_ID=<存储账户ID>
      EOF
      
      # 安装Velero
      velero install \
        --provider azure \
        --plugins velero/velero-plugin-for-microsoft-azure:v1.10.0 \
        --bucket <你的Blob容器名> \
        --secret-file ./credentials-velero \
        --backup-location-config resourceGroup=<存储账户资源组>,storageAccount=<存储账户名> \
        --snapshot-location-config apiTimeout=5m
      
    2. 创建一次性备份:
      # 备份指定PVC
      velero backup create my-pvc-backup --include-resources persistentvolumeclaims --selector app=my-app
      # 备份所有PV/PVC
      velero backup create all-pvc-backup --include-resources persistentvolumeclaims,persistentvolumes
      
    3. 配置定时备份(每天凌晨2点):
      velero schedule create daily-pvc-backup --schedule "0 2 * * *" --include-resources persistentvolumeclaims,persistentvolumes
      
  • 优势:支持增量备份、跨集群恢复,同时备份PV/PVC的元数据,恢复时可直接重建对应的存储资源。

方案3:Azure磁盘快照+Blob归档(Azure Managed Disk场景)

如果你的PV是基于Azure Managed Disk创建的,可通过磁盘快照+Blob归档实现备份。

  • 步骤:
    1. 为PV对应的Managed Disk创建快照:
      # 获取PV对应的磁盘ID
      DISK_ID=$(az disk list --resource-group <AKS节点资源组> --query "[?name=='<磁盘名>'].id" -o tsv)
      # 创建快照
      az snapshot create --name pvc-snapshot-$(date +%Y%m%d) --resource-group <资源组> --source $DISK_ID
      
    2. 将快照导出为VHD到Blob容器:
      # 获取快照SAS链接
      SAS_URL=$(az snapshot grant-access --name <快照名> --resource-group <资源组> --duration-in-seconds 3600 --query accessSas -o tsv)
      # 用azcopy复制到Blob容器
      azcopy copy "$SAS_URL" "https://<存储账户>.blob.core.windows.net/<容器名>/pvc-backup-$(date +%Y%m%d).vhd"
      
    3. 通过Azure Automation或AKS CronJob定期执行上述命令。
  • 注意:导出的VHD为只读格式,恢复时需从VHD创建新的Managed Disk,再绑定到新的PV/PVC。

通用最佳实践

  • 数据一致性:对有状态应用(如数据库),备份前需暂停写入或执行数据flush操作(比如MySQL的FLUSH TABLES WITH READ LOCK),避免备份数据损坏。
  • 恢复测试:定期从备份中恢复数据到测试环境,验证备份的有效性。
  • 成本优化:在Azure Blob容器中配置生命周期规则,将超过30天的备份归档到冷存储或归档存储,降低存储成本。
  • 权限最小化:为备份使用的服务主体或Pod配置最小权限,仅赋予存储账户的读写权限和磁盘快照权限。

内容的提问来源于stack exchange,提问作者regarding the Zap security

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:27:37