我正在使用Velero执行从GCP到Azure的群集备份和恢复
由于两个GCP提供商的区域/区域不同,k8s中的持久化卷具有NodeAffinity,其区域和区域选择器与Azure节点上的lables不匹配。
例如,节点GCP上的以下标签
failure-domain.beta.kubernetes.io/region=australia-southeast1
failure-domain.beta.kubernetes.io/zone=australia-southeast1-a在Azure上
failure-domain.beta.kubernetes.io/region=australiaeast
failure-domain.beta.kubernetes.io/zone=1因此,我尝试在Azure中创建一个storage-class,如下所示:
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: fast-azure
provisioner: kubernetes.io/azure-disk
allowVolumeExpansion: true
parameters:
cachingmode: ReadOnly
kind: Managed
storageaccounttype: Premium_LRS
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
- key: failure-domain.beta.kubernetes.io/zone
values:
- "1"
- key: failure-domain.beta.kubernetes.io/region
values:
- australiaeast但是,当我尝试使用这个存储类创建PVC时,我得到了以下错误:
arning ProvisioningFailed 1s (x6 over 29s) persistentvolume-controller Failed to provision volume with StorageClass "fast-azure": compute.DisksClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="InvalidAvailabilityZone" Message="The zone(s) '' for resource 'Microsoft.Compute/disks/kubernetes-dynamic-pvc-105101ea-2c58-4a5a-8eeb-386c7489b782' is not supported. The supported zones for location 'australiaeast' are '1,2,3'"看起来它正在读取一个空白的'‘区域名称。为Azure编写此storageclass的正确方法是什么?
发布于 2020-09-02 05:35:21
尝试以下操作。这对我很管用。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: azure-disk
parameters:
cachingmode: None
kind: Managed
zoned: "true"
storageaccounttype: Standard_LRS
provisioner: kubernetes.io/azure-disk
allowedTopologies:
- matchLabelExpressions:
- key: failure-domain.beta.kubernetes.io/zone
values:
- australiaeast-1https://stackoverflow.com/questions/60698650
复制相似问题