使用 AzureFile 创建的 pvc 的备份和还原

Posted

技术标签:

【中文标题】使用 AzureFile 创建的 pvc 的备份和还原【英文标题】:Backup and Restore of a pvc created using AzureFile 【发布时间】:2021-12-13 08:41:50 【问题描述】:

我使用 AzureFileShare 为我部署了 NodeJS 应用程序的 pod 创建了一个动态 PVC。

下面是我用来创建pvc的storageclass的yaml,

apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: kubernetes.io/azure-file
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
  - actimeo=30
parameters:
  skuName: Standard_LRS

我用来创建pvc的yaml文件,

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: dynamic-pvc
  namespace: test
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: my-azurefile

我使用 velero 备份了部署 pod 的命名空间。当我在不同的集群中恢复备份时,我看到 pod 中没有数据。但是当我使用动态 azuredisk pvc 时,我能够使用数据恢复 pod。

注意:在恢复 velero 备份之前,我在执行恢复的新集群中创建了 my-azurefile 存储类。

任何人都可以解释为什么当我使用动态 azurefile pvc 时数据无法正常进行恢复?提前致谢!

【问题讨论】:

【参考方案1】:

kubectl 补丁存储类/ --type json --patch '["op":"add","path":"/mountOptions/-","value":"nouser_xattr"]'

按照上面的补丁方法,我可以从 azurefile pv 中恢复数据。

【讨论】:

以上是关于使用 AzureFile 创建的 pvc 的备份和还原的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 如何使用 PV 和 PVC?- 每天5分钟玩转 Docker 容器技术(154)

k8s实践17:kubernetes对接nfs存储实现pvc动态按需创建分配绑定pv

Kubernetes实战(二十三)数据存储 PV 和 PVC

实战:k8s持久化存储pv和pvc-2021.11.16

kubernetes 使用 PV 和 PVC 管理数据存储

k8s持久化状态存储原理