Включение избыточности хранилища с несколькими зонами в хранилище контейнеров 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параметра выберите допустимое значение.

  1. Используйте избранный текстовый редактор для создания файла манифеста YAML, code acstor-multizone-storagepool.yamlнапример.

  2. Вставьте следующий код и сохраните файл. Значение имени пула носителей может быть любым нужным. Для хранилища укажите объем емкости хранилища для пула в 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
    
  3. Примените файл манифеста 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

См. также