Поделиться через


Использование службы хранилища контейнеров Azure с Azure Elastic SAN (предварительная версия)

Хранилище контейнеров Azure — это облачная служба управления томами, развертывания и оркестрации, созданная изначально для контейнеров. Azure Elastic SAN — это полностью интегрированное решение, которое упрощает развертывание, масштабирование, управление и настройку SAN, а также предлагает встроенные облачные возможности, такие как высокий уровень доступности.

В качестве предварительной версии можно настроить службу хранилища контейнеров Azure для использования Azure Elastic SAN. В этой статье описывается, как сделать эту конфигурацию. В конце этой статьи у вас будет модуль pod, использующий Elastic SAN в качестве хранилища.

Необходимые компоненты

  • Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

  • Для этой статьи требуется последняя версия (2.35.0 или более поздняя) Azure CLI. Узнайте , как установить Azure CLI. Если вы используете среду Bash в Azure Cloud Shell, то последняя версия уже установлена. Если вы планируете выполнять команды локально, а не в Azure Cloud Shell, обязательно запустите их с правами администратора. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".

  • Вам потребуется клиент командной строки Kubernetes. kubectl Он уже установлен, если вы используете Azure Cloud Shell или вы можете установить его локально, выполнив az aks install-cli команду.

  • Если вы еще не установили хранилище контейнеров Azure, следуйте инструкциям в статье "Использование хранилища контейнеров Azure с Служба Azure Kubernetes".

  • Проверьте, поддерживается ли целевой регион в регионах хранилища контейнеров Azure.

  • Убедитесь, что у вас есть роль владельца хранилища контейнеров Azure или роль участника службы хранилища контейнеров Azure в подписке. Любой из этих ролей предоставляет разрешения, позволяющие хранилищу контейнеров Azure взаимодействовать с ресурсом Elastic SAN. Чтобы внести это изменение, перейдите на страницу подписки на портал Azure. Выберите элемент управления доступом (IAM) Добавьте назначение ролей и найдите "Владелец хранилища контейнеров Azure" или "Участник службы хранилища контейнеров Azure" на вкладке ролей функции задания. Выберите "Просмотреть > назначения>" и добавьте свою учетную запись. >

  • Чтобы использовать хранилище контейнеров Azure с azure Elastic SAN (предварительная версия), кластер AKS должен иметь пул узлов не менее трех виртуальных машин общего назначения, таких как standard_d4s_v5 для узлов кластера, каждый из которых содержит не менее четырех виртуальных ЦП (виртуальных ЦП).

Ограничения

Следующие функции в настоящее время не поддерживаются при использовании хранилища контейнеров Azure для развертывания и оркестрации эластичной сети SAN.

  • Моментальные снимки томов
  • Расширение пула носителей

Доступность в регионах

Хранилище контейнеров Azure доступно только для подмножества регионов Azure:

  • Северная часть ЮАР (Африка)
  • "Восточная Австралия" (Азиатско-Тихоокеанский регион);
  • (Азиатско-Тихоокеанский регион) Восточная Азия
  • (Азиатско-Тихоокеанский регион) Восточная Япония
  • (Азиатско-Тихоокеанский регион) Республика Корея, центральный регион
  • Юго-Восточная Азия (Азиатско-Тихоокеанский регион)
  • "Центральная Индия" (Азиатско-Тихоокеанский регион);
  • (Европа) Центральная Франция
  • Центрально-Западная Германия (Европа)
  • "Северная Европа" (Европа);
  • "Западная Европа" (Европа).
  • (Европа) Южная часть Соединенного Королевства
  • (Европа) Центральная Швеция;
  • Северная Швейцария (Европа)
  • Северная часть ОАЭ (Ближний Восток)
  • (Северная Америка) Восточная часть США;
  • (Северная Америка) Восточная часть США 2;
  • (Северная Америка) Западная часть США
  • (Северная Америка) Западная часть США 2;
  • (Северная Америка) Западная часть США 3;
  • (Северная Америка) Центральная часть США;
  • (Северная Америка) Северная часть США
  • (Северная Америка) Центрально-южная часть США;
  • (Северная Америка) Западная часть США
  • (Северная Америка) Центральная Канада;
  • (Северная Америка) Восточная Канада
  • Южная Бразилия (Южная Америка)

Создание и присоединение постоянных томов

Выполните следующие действия, чтобы создать и подключить постоянный том.

1. Создание пула носителей

Сначала создайте пул носителей, который является логическим группированием хранилища для кластера Kubernetes, определив его в файле манифеста YAML.

Если вы включили хранилище контейнеров Azure с помощью az aks create или az aks update командами, возможно, у вас уже есть пул носителей. Используется kubectl get sp -n acstor для получения списка пулов носителей. Если у вас уже есть пул носителей, который вы хотите использовать, можно пропустить этот раздел и перейти к отображению доступных классов хранилища.

Выполните следующие действия, чтобы создать пул носителей с помощью Azure Elastic SAN (предварительная версия).

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

  2. Вставьте приведенный ниже код. Значение имени пула носителей может быть любым нужным. Настройте хранилище , чтобы отразить емкость хранилища, которую вы хотите использовать в Gi или Ti, и сохраните файл. Azure Elastic SAN в настоящее время не поддерживает изменение размера пулов носителей.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: managed
      namespace: acstor
    spec:
      poolType:
        elasticSan: {}
      resources:
        requests: {"storage": 1Ti}
    
  3. Примените файл манифеста YAML для создания пула носителей.

    kubectl apply -f acstor-storagepool.yaml 
    

    После завершения создания пула носителей вы увидите следующее сообщение:

    storagepool.containerstorage.azure.com/managed created
    

    Эту команду можно также запустить, чтобы проверить состояние пула носителей. Замените <storage-pool-name> значением имени пула носителей. В этом примере будет управляться значение.

    kubectl describe sp <storage-pool-name> -n acstor
    

При создании пула носителей хранилище контейнеров Azure создаст класс хранилища от вашего имени с помощью соглашения acstor-<storage-pool-name>об именовании. Он также создаст ресурс Azure Elastic SAN.

2. Отображение доступных классов хранилища

Когда пул носителей готов к использованию, необходимо выбрать класс хранилища, чтобы определить, как хранилище динамически создается при создании утверждений постоянного тома и развертывании постоянных томов.

Запустите kubectl get sc , чтобы отобразить доступные классы хранилища. Вы увидите класс хранилища с именем acstor-<storage-pool-name>.

Внимание

Не используйте класс хранилища, помеченный внутренним. Это внутренний класс хранилища, необходимый для работы хранилища контейнеров Azure.

3. Создание утверждения постоянного тома

Утверждение постоянного тома (PVC) используется для автоматической подготовки хранилища на основе класса хранения. Выполните следующие действия, чтобы создать ПВХ с помощью нового класса хранения.

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

  2. Вставьте следующий код и сохраните файл. Значение ПВХ name может быть любым, что вы хотите.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: managedpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-managed # replace with the name of your storage class if different
      resources:
        requests:
          storage: 100Gi
    
  3. Примените файл манифеста YAML для создания ПВХ.

    kubectl apply -f acstor-pvc.yaml
    

    Должен отобразиться примерно такой результат:

    persistentvolumeclaim/managedpvc created
    

    Вы можете проверить состояние ПВХ, выполнив следующую команду:

    kubectl describe pvc managedpvc
    

После создания ПВХ он готов к использованию pod.

4. Развертывание модуля pod и подключение постоянного тома

Создайте модуль pod с помощью Fio (гибкий средство тестирования ввода-вывода) для тестирования и моделирования рабочих нагрузок и укажите путь подключения для постоянного тома. Для имени утверждения используйте значение имени , используемое при создании утверждения постоянного тома.

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

  2. Вставьте следующий код и сохраните файл.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: managedpv
          persistentVolumeClaim:
            claimName: managedpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: managedpv
    
  3. Примените файл манифеста YAML для развертывания модуля pod.

    kubectl apply -f acstor-pod.yaml
    

    Вы должны увидеть результат, аналогичный приведенному ниже:

    pod/fiopod created
    
  4. Убедитесь, что модуль pod запущен и что утверждение постоянного тома успешно привязано к pod:

    kubectl describe pod fiopod
    kubectl describe pvc managedpvc
    
  5. Проверьте тестирование fio, чтобы просмотреть текущее состояние:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

Теперь вы развернули модуль pod, использующий Elastic SAN в качестве хранилища, и его можно использовать для рабочих нагрузок Kubernetes.

Управление постоянными томами и пулами носителей

Теперь, когда вы создали постоянный том, вы можете отсоединить и повторно подключить его по мере необходимости. Вы также можете удалить пул носителей.

Отключение и повторное подключение постоянного тома

Чтобы отключить постоянный том, удалите модуль pod, к которому подключен постоянный том. Замените <pod-name> именем pod, например fiopod.

kubectl delete pods <pod-name>

Чтобы повторно подключить постоянный том, просто укажите имя утверждения постоянного тома в файле манифеста YAML, как описано в разделе "Развертывание модуля pod" и подключение постоянного тома.

Чтобы проверить, к каким постоянным томам привязано утверждение постоянного тома, выполните команду kubectl get pvc <persistent-volume-claim-name>.

Удаление пула носителей

Если вы хотите удалить пул носителей, выполните следующую команду. Замените <storage-pool-name> именем пула носителей.

kubectl delete sp -n acstor <storage-pool-name>

См. также