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


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

Контейнер Azure служба хранилища — это облачная служба управления томами, развертывания и оркестрации, созданная в собственном коде для контейнеров. В этой статье показано, как настроить контейнер Azure служба хранилища использовать Azure Elastic SAN в качестве внутреннего хранилища для рабочих нагрузок Kubernetes. В конце концов у вас будет модуль 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.

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

Примечание.

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

Ограничения

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

  • Моментальные снимки томов
  • расширение пула служба хранилища

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

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

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

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

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

Если вы включили служба хранилища контейнера Azure или az aks createaz 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.

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

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

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

Внимание

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

Создание заявки на доступ к постоянному тому

Утверждение постоянного тома (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.

Развертывание модуля 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>

См. также