Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью Azure Container Storage можно улучшить доступность состоящих приложений, используя межзональное избыточное хранилище (ZRS) или локально избыточное хранилище (LRS). Выберите LRS с явным зональным размещением или ZRS для синхронной репликации в трех зонах доступности в зависимости от требований к устойчивости и производительности.
Выбор модели избыточности
Локально избыточное хранилище (LRS):с помощью LRS Azure хранит три копии каждой эластичной сети SAN в одном центре обработки данных. Эта избыточность защищает от сбоев оборудования, таких как сбой диска. В случае аварии в этом центре обработки данных все реплики могут быть потеряны или недоступны.
Хранилище с избыточностью между зонами (ZRS): с помощью ZRS Azure хранит три копии каждой эластичной SAN в трех различных зонах доступности в одном регионе. Запись данных осуществляется синхронно. Запись завершается только после обновления всех трех реплик.
Prerequisites
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Для этой статьи требуется Azure CLI версии 2.83.0 или более поздней. Дополнительные сведения см. в статье "Установка Azure CLI". Отключите такие расширения, как
aks-previewесли возникают проблемы. Установите или обновите расширения по мере необходимости:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(только Elastic SAN)
Вам нужен клиент командной строки Kubernetes.
kubectlОн уже установлен, если вы используете Azure Cloud Shell. Его можно установить локально, выполнивaz aks install-cliкоманду.Проверьте, поддерживается ли целевой регион в регионах хранилища контейнеров Azure.
Если вы используете Elastic SAN впервые в подписке, выполните следующую команду однократной регистрации:
az provider register --namespace Microsoft.ElasticSanПри включении ZRS в регионе может потребоваться зарегистрировать флаг функции на уровне подписки, чтобы хранилище контейнеров Azure могло развертывать целевые узлы SAN.
az feature register \ --namespace Microsoft.ElasticSan \ --name EnableElasticSANTargetDeploymentУбедитесь, что регион поддерживает выбранный вариант избыточности. См. текущую доступность региона Elastic SAN.
Создание класса StorageClass с локальным избыточным хранилищем
Использование SKU LRS без указания зоны
Если регион поддерживает зоны, и вы не указываете зону в StorageClass, хранилище контейнеров Azure по умолчанию использует зону 1.
Создайте файл манифеста YAML, например storageclass.yaml, используйте следующую спецификацию.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: esan-lrs-default
provisioner: san.csi.azure.com
parameters:
skuName: Premium_LRS
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
Использование SKU LRS и указание зоны
Используйте одну зону при создании эластичной СЕТИ LRS в регионах, поддерживающих зоны доступности. В регионах без зон опустить zones параметр, чтобы избежать сбоев проверки.
Для LRS с закреплением за зоной планировщик размещает pod на узле в указанной зоне, и постоянный том (PV) привязывается к SAN соответствующей зоны. Тома LRS доступны из любой зоны, поэтому хранилище контейнеров Azure не ограничивает подключение между зонами. В allowedTopologies этом разделе обеспечивается привязка PV к узлу в той же зоне, что и SAN LRS.
Создайте файл манифеста YAML, например storageclass.yaml, используйте следующую спецификацию.
# LRS with a zone (2)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: esan-lrs-zone2
provisioner: san.csi.azure.com
parameters:
skuName: Premium_LRS
zones: "2"
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
# Optional:
allowedTopologies:
- matchLabelExpressions:
- key: topology.kubernetes.io/zone
values:
- canadacentral-2
Создайте StorageClass с хранилищем, избыточным между зонами
Вам не нужно указывать зоны, так как хранилище контейнеров Azure по умолчанию используется для всех трех зон. Если вы задали zones поле, перечислите все три зоны как "1,2,3".
Создайте файл манифеста YAML, например storageclass.yaml, используйте следующую спецификацию.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: esan-zrs-zones
provisioner: san.csi.azure.com
parameters:
skuName: Premium_ZRS
zones: "1,2,3" # optional
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
Создание класса StorageClass
kubectl apply -f storageclass.yaml
Убедитесь, что класс storageClass создан:
kubectl get storageclass <storage-class-name>
Выходные данные должны выглядеть примерно так:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
esan-zrs-zones san.csi.azure.com Delete WaitForFirstConsumer true 10s
Создать запрос на постоянное хранилище
Создайте файл манифеста YAML, например acstor-pvc.yaml. Значение ПВХ name может быть любым значением. Используйте имя StorageClass, созданное на предыдущих шагах.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: managedpvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: esan-zrs-zones # or esan-lrs-zone2, esan-lrs-default
Примените манифест для создания PVC.
kubectl apply -f acstor-pvc.yaml
Выходные данные должны выглядеть примерно так:
persistentvolumeclaim/managedpvc created
Развертывание модуля pod и подключение постоянного тома
Создайте файл манифеста YAML, например acstor-pod.yaml.
apiVersion: v1
kind: Pod
metadata:
name: esan-app
spec:
containers:
- name: app
image: mcr.microsoft.com/oss/nginx/nginx:1.25.2
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: managedpvc
Примените манифест для создания модуля pod.
kubectl apply -f acstor-pod.yaml
Выходные данные должны выглядеть примерно так:
pod/esan-app created
Проверьте PV и StorageClass:
kubectl get pv
kubectl describe sc esan-zrs-zones
kubectl describe sc esan-lrs-zone2
Подтвердите наличие региональной поддержки и модели избыточности для томов с использованием списка регионов Elastic SAN.