Я делаю кластерное резервное копирование и восстановление из GCP в Azure, используя Velero
Постоянные тома в k8 имеют NodeAffinity
, в котором есть селекторы зоны и региона, которые не не совпадают с метками на узле Azure из-за различий в зонах / регионах двух провайдеров GCP.
например, следующие метки на узлах 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
Итак, я попытался создать storage-class
в Azure, как показано ниже:
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
Но когда я пытаюсь создать PV C используя этот класс хранения, я получаю следующую ошибку:
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?