[我注意到,如果Veloke是磁盘而不是Azure文件共享,那么Velero只能备份AKS PVC。为了解决这个问题,我尝试使用Restic通过文件共享本身进行备份,但是我给了我一个奇怪的日志:
这是我实际的吊舱外观
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
backup.velero.io/backup-volumes: app-upload
deployment.kubernetes.io/revision: "17"
以及我的备份日志:
time="2020-05-20T02:01:09Z" level=info msg="Adding pvc upload to additionalItems" backup=velero/lbkomas-rocmondriaan-production-20200520020055 cmd=/velero logSource="pkg/backup/pod_action.go:67" pluginName=velero
time="2020-05-20T02:01:09Z" level=info msg="Backing up item" backup=velero/lbkomas-rocmondriaan-production-20200520020055 group=v1 logSource="pkg/backup/item_backupper.go:169" name=upload namespace=lbkompas-prod resource=persistentvolumeclaims
time="2020-05-20T02:01:09Z" level=info msg="Executing custom action" backup=velero/lbkomas-rocmondriaan-production-20200520020055 group=v1 logSource="pkg/backup/item_backupper.go:330" name=upload namespace=lbkompas-prod resource=persistentvolumeclaims
time="2020-05-20T02:01:20Z" level=info msg="Skipping item because it's already been backed up." backup=velero/lbkomas-rocmondriaan-production-20200520020055 group=v1 logSource="pkg/backup/item_backupper.go:163" name=upload namespace=lbkompas-prod resource=persistentvolumeclaims
如您所见,它没有备份upload
卷,因为它说它已经在备份中(实际上不是)。
编辑:我实际上试图更新storageclass本身,但这似乎不起作用:
➜ ~ kubectl get storageclass
NAME PROVISIONER AGE
azurefile kubernetes.io/azure-file 3d
azurefile-grafana kubernetes.io/azure-file 2d22h
azurefile-premium kubernetes.io/azure-file 3d
default (default) kubernetes.io/azure-disk 20h
managed-premium kubernetes.io/azure-disk 20h
# Not working
➜ ~ kubectl patch storageclass/azurefile \
--type json \
--patch '[{"op":"add","path":"/mountOptions/-","value":"nouser_xattr"}]'
The request is invalid
# Also not working
➜ ~ kubectl patch storageclass/azurefile \
--type merge \
--patch 'mountOptions:\n - nouser_xattr'
Error from server: Invalid JSON Patch
最好,Pim
您是否已将nouser_xattr
添加到StorageClass mountOptions列表中?
此要求记录在GitHub issue 1800中。
[在restic integration page上也提到过(请在Azure部分下检查),他们在其中提供此代码片段来修补StorageClass资源:
kubectl patch storageclass/<YOUR_AZURE_FILE_STORAGE_CLASS_NAME> \
--type json \
--patch '[{"op":"add","path":"/mountOptions/-","value":"nouser_xattr"}]'
如果没有现有的mountOptions
列表,则可以尝试:
kubectl patch storageclass/<YOUR_AZURE_FILE_STORAGE_CLASS_NAME> \
--type merge \
--patch 'mountOptions:\n - nouser_xattr'