Включение избыточности хранилища с несколькими зонами в хранилище контейнеров Azure
Вы можете улучшить доступность приложений с отслеживанием состояния с помощью пулов носителей с несколькими зонами и дисков, избыточных между зонами (ZRS), при использовании хранилища контейнеров Azure в кластере с несколькими зонами Служба Azure Kubernetes (AKS). Сведения о создании кластера AKS, использующего зоны доступности, см. в разделе "Использование зон доступности" в Служба Azure Kubernetes.
Необходимые компоненты
- Для этой статьи требуется последняя версия (2.35.0 или более поздняя) Azure CLI. Узнайте , как установить Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена. Если вы планируете выполнять команды локально, а не в Azure Cloud Shell, обязательно запустите их с правами администратора.
- Вам потребуется кластер AKS с пулом узлов не менее трех виртуальных машин (виртуальных машин) для узлов кластера, каждый из которых содержит не менее четырех виртуальных ЦП ( виртуальных ЦП).
- В этой статье предполагается, что вы уже установили хранилище контейнеров Azure в кластере AKS.
- Вам потребуется клиент командной строки Kubernetes.
kubectl
Он уже установлен, если вы используете Azure Cloud Shell или вы можете установить его локально, выполнивaz aks install-cli
команду.
Создание пула носителей с несколькими зонами
В определении пула носителей можно указать зоны, в которых должна быть распределена емкость хранилища. Общая емкость пула носителей распределяется равномерно по количеству указанных зон. Например, если указаны две зоны, каждая зона получает половину емкости пула носителей; Если заданы три зоны, каждая зона получает одну треть от общей емкости. Соответствующее хранилище будет подготовлено в каждой из зон. Это полезно при выполнении рабочих нагрузок, которые предлагают репликацию на уровне приложения, например Cassandra.
Если в указанной зоне нет узлов, емкость будет подготовлена после того, как узел будет доступен в этой зоне. Постоянные тома (PVs) можно создавать только из емкости пула носителей из одной зоны.
Допустимые значения:zones
- [""]
- ["1"]
- ["2"]
- ["3"]
- ["1", "2"]
- ["1", "3"]
- ["2", "3"]
- ["1", "2", "3"]
Выполните следующие действия, чтобы создать пул носителей с несколькими зонами, использующий диски Azure. Для zones
параметра выберите допустимое значение.
Используйте избранный текстовый редактор для создания файла манифеста YAML,
code acstor-multizone-storagepool.yaml
например.Вставьте следующий код и сохраните файл. Значение имени пула носителей может быть любым нужным. Для хранилища укажите объем емкости хранилища для пула в Gi или Ti.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: azuredisk namespace: acstor spec: zones: ["1", "2", "3"] poolType: azureDisk: {} resources: requests: storage: 1Ti
Примените файл манифеста YAML для создания пула носителей с несколькими зонами.
kubectl apply -f acstor-multizone-storagepool.yaml
Использование дисков, избыточных между зонами (ZRS)
Если для рабочей нагрузки требуется избыточность хранилища, можно использовать диски, использующие избыточное между зонами хранилище, которое копирует данные синхронно в трех зонах доступности Azure в основном регионе.
Диск можно указать skuName
как StandardSSD_ZRS
Premium_ZRS
или в определении пула носителей, как показано в следующем примере.
apiVersion: containerstorage.azure.com/v1
kind: StoragePool
metadata:
name: azuredisk
namespace: acstor
spec:
poolType:
azureDisk:
skuName: Premium_ZRS
resources:
requests:
storage: 1Ti