Краткое руководство. Использование предварительной версии контейнеров Azure служба хранилища с Служба Azure Kubernetes

Контейнер Azure служба хранилища — это облачная служба управления томами, развертывания и оркестрации, созданная в собственном коде для контейнеров. В этом кратком руководстве показано, как создать кластер Служба Azure Kubernetes (AKS), установить контейнер Azure служба хранилища и создать пул носителей с помощью Azure CLI.

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

  • Если у вас нет подписки 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 Elastic SAN в качестве хранилища данных, вам потребуется роль владельца на основе ролей Azure (Azure RBAC) в подписке Azure. Доступ на уровне владельца предоставляет расширению контейнера Azure служба хранилища необходимые разрешения для взаимодействия с API Elastic SAN. Если вы планируете использовать диски Azure или временный диск в качестве хранилища данных, вам не нужны специальные разрешения на подписку.

  • Запустите Azure Cloud Shell или, если вы используете локальную установку, войдите в Azure с помощью команды az login .

  • Если вы используете Azure Cloud Shell, вам может потребоваться подключить хранилище. Выберите подписку Azure, в которой вы хотите создать учетную запись хранения и нажмите кнопку "Создать".

Установка требуемого расширения

Добавьте или обновите последнюю версию k8s-extension , выполнив следующую команду.

az extension add --upgrade --name k8s-extension

Настройка контекста подписки

Задайте контекст подписки Azure с помощью az account set команды. Идентификаторы подписок можно просмотреть для всех подписок, к которым у вас есть доступ, выполнив az account list --output table команду. Не забудьте заменить <subscription-id> идентификатор подписки.

az account set --subscription <subscription-id>

Создание или изменение группы ресурсов

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

При создании группы ресурсов вам будет предложено указать расположение. Это расположение определяет следующее:

  • место хранения метаданных группы ресурсов;
  • место выполнения ресурсов в Azure, если при их создании не указан другой регион.

Создайте группу ресурсов с помощью az group create команды. Замените <resource-group> именем группы ресурсов, которую вы хотите создать, и замените <location> регион Azure, например eastus, westus2, westus3 или westeurope. См. этот список регионов Azure, где доступна служба хранилища контейнеров Azure.

az group create --name <resource-group> --location <location>

Если группа ресурсов была создана успешно, вы увидите выходные данные, аналогичные следующему:

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Выбор варианта хранилища данных для пула носителей

Перед развертыванием служба хранилища контейнера Azure необходимо решить, какой серверный вариант хранилища вы хотите использовать для создания пула носителей и постоянных томов. В настоящее время доступны три варианта:

  • Azure Elastic SAN: Azure Elastic SAN подходит для баз данных общего назначения, служб потоковой передачи и обмена сообщениями, сред CI/CD и других рабочих нагрузок уровня 1/2. служба хранилища подготавливается по требованию для каждого созданного тома и моментального снимка тома. Несколько кластеров могут одновременно получить доступ к одной сети SAN, однако постоянные тома могут быть подключены только одним потребителем одновременно.

  • Диски Azure: диски Azure хорошо подходят для баз данных, таких как MySQL, MongoDB и PostgreSQL. служба хранилища подготавливается для каждого целевого пула носителей контейнеров и максимального размера тома.

  • Временный диск: этот параметр использует локальные диски NVMe или временный SSD на узлах кластера AKS. Это очень чувствительная задержка (низкая задержка в мс), поэтому лучше всего подходит для приложений без требования к устойчивости данных или встроенной поддержки реплика обработки данных, таких как Cassandra. AKS обнаруживает доступное эфемерное хранилище на узлах AKS и получает диски для развертывания томов.

Примечание.

Для azure Elastic SAN и дисков Azure контейнер Azure служба хранилища развернет резервное хранилище для вас в процессе установки. Вам не нужно создавать собственную эластичную san или диск Azure. Чтобы использовать Elastic SAN, вам потребуется роль владельца на основе ролей Azure (Azure RBAC) в подписке Azure.

Потребление ресурсов

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

тип пула служба хранилища Ядра ЦП ОЗУ
Azure Elastic SAN  нет нет
Диски Azure 1 1 ГиБ
Временный диск — временный SSD 1 1 ГиБ
Временный диск — локальный NVMe 25 % ядер (в зависимости от размера узла)* 2 ГиБ

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

*В типе эфемерного диска пула носителей — локальный NVMe, если вы используете несколько типов SKU виртуальной машины для узлов кластера, 25 % используемых ядер ЦП применяется к наименьшему используемому номеру SKU. Например, если вы используете сочетание типов виртуальных машин с 8 ядрами и 16 ядрами, потребление ресурсов составляет 2 ядра.

Выбор типа виртуальной машины для кластера

При создании кластера вы укажите тип виртуальной машины в следующем разделе. Следуйте этим рекомендациям при выборе типа виртуальной машины для узлов кластера. Необходимо выбрать тип виртуальной машины, поддерживающий хранилище Azure уровня "Премиум".

  • Если вы планируете использовать Azure Elastic SAN или диски Azure в качестве резервного хранилища, выберите тип виртуальной машины общего назначения, например standard_d4s_v5.
  • Если вы планируете использовать временный диск с локальным NVMe, выберите тип оптимизированной для хранения виртуальной машины , например standard_l8s_v3.
  • Если вы планируете использовать временный диск с временным SSD, выберите виртуальную машину с временным ssd-диском, таким как Ev3 и Esv3-series.

Создание кластера AKS и установка служба хранилища контейнера Azure

Если у вас уже развернут кластер AKS, пропустите этот раздел и перейдите к разделу "Установка контейнеров Azure служба хранилища в существующем кластере AKS".

Выполните следующую команду, чтобы создать новый кластер AKS, установить служба хранилища контейнера Azure и создать пул носителей. Замените <cluster-name> и <resource-group> наведите собственные значения и укажите тип виртуальной машины, который вы хотите использовать. Замените <storage-pool-type> на azureDisk, ephemeralDisk или elasticSan. При выборе ephemeralDiskможно также указать --storage-pool-optionи значения.NVMeTemp

При выполнении этой команды контейнер Azure служба хранилища в пуле системных узлов* с тремя виртуальными машинами Linux. По умолчанию пул системных узлов называется nodepool1. Если вы хотите включить служба хранилища контейнеров Azure в других пулах узлов, см. статью "Установка контейнеров Azure служба хранилища в определенных пулах узлов". Если вы хотите указать дополнительные параметры пула носителей с помощью этой команды, см . в этой таблице.

*Если есть существующие пулы узлов с acstor.azure.com/io-engine:acstor меткой, служба хранилища контейнера Azure будет установлен там по умолчанию. В противном случае он установлен в пуле системных узлов.

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_D4s_v3 --node-count 3 --enable-azure-container-storage <storage-pool-type>

Развертывание займет 10–15 минут. После завершения будет установлен кластер AKS с служба хранилища контейнера Azure, компоненты выбранного типа пула носителей и пул носителей по умолчанию. Если вы хотите включить дополнительные типы пулов носителей для создания дополнительных пулов носителей, см . дополнительные типы пулов носителей.

Внимание

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

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

Чтобы получить список доступных пулов носителей, выполните следующую команду:

kubectl get sp -n acstor

Чтобы проверка состояние пула носителей, выполните следующую команду:

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

Message Если вы не говоритеStoragePool is ready, пул носителей по-прежнему создает или столкнулась с проблемой. См. сведения об устранении неполадок с служба хранилища контейнера Azure.

Установка служба хранилища контейнера Azure в существующем кластере AKS

Если у вас уже есть кластер AKS, соответствующий требованиям виртуальной машины, выполните следующую команду, чтобы установить контейнер Azure служба хранилища в кластере и создать пул носителей. Замените <cluster-name> и <resource-group> собственными значениями. Замените <storage-pool-type> на azureDisk, ephemeraldisk или elasticSan.

При выполнении этой команды контейнер Azure служба хранилища в пуле системных узлов, который по умолчанию называется nodepool1*. Если вы хотите включить его в других пулах узлов, см. статью "Установка контейнеров Azure служба хранилища в определенных пулах узлов". Если вы хотите указать дополнительные параметры пула носителей, ознакомьтесь с этой таблицей.

*Если есть существующие пулы узлов с acstor.azure.com/io-engine:acstor меткой, служба хранилища контейнера Azure будет установлен там по умолчанию. В противном случае он установлен в пуле системных узлов.

Внимание

Если вы создали кластер AKS с помощью портал Azure: кластер, скорее всего, будет иметь пул узлов пользователя и пул узлов системы или агента. Однако если кластер состоит только из пула системных узлов, то это относится к кластерам test/dev, созданным с помощью портал Azure, необходимо сначала добавить новый пул узлов пользователя, а затем пометить его. Это связано с тем, что при создании кластера AKS с помощью портал Azure в пул узлов системы или агента добавляется фрагментCriticalAddOnsOnly, который блокирует установку контейнеров Azure служба хранилища в пуле системных узлов. Этот момент не добавляется при создании кластера AKS с помощью Azure CLI.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Развертывание займет 10–15 минут.

Установка служба хранилища контейнера Azure в определенных пулах узлов

Если вы хотите установить контейнер Azure служба хранилища в определенных пулах узлов, следуйте этим инструкциям. Пулы узлов должны содержать не менее трех виртуальных машин Linux.

  1. Выполните следующую команду, чтобы просмотреть список доступных пулов узлов. Замените <resource-group> и <cluster-name> собственными значениями.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. Выполните следующую команду, чтобы установить контейнер Azure служба хранилища в определенных пулах узлов. Замените <cluster-name> и <resource-group> собственными значениями. Замените <storage-pool-type> на azureDisk, ephemeraldisk или elasticSan. При выборе ephemeralDiskможно также указать параметр --storage-pool-, и значения могут быть NVMe или Temp.

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
    

Включение дополнительных типов пула носителей

Если вы хотите включить тип пула носителей, который изначально не был включен во время установки служба хранилища контейнера Azure, выполните следующую команду. Замените <cluster-name> и <resource-group> собственными значениями. Для <storage-pool-type>, укажите azureDisk, ephemeralDiskили elasticSan.

Если вы хотите указать дополнительные параметры пула носителей с помощью этой команды, см . в этой таблице.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Если новый тип пула носителей, который вы включили, занимает больше ресурсов, чем тип пула носителей, который уже включен, потребление ресурсов изменится на максимальный объем.

Совет

Если вы добавили новый пул узлов в кластер и хотите запустить контейнер Azure служба хранилища в этом пуле узлов, можно указать пул узлов при --azure-container-storage-nodepools <nodepool-name> выполнении az aks update команды.

Отключение типов пула носителей

Если вы больше не используете определенный тип пула носителей и хотите отключить его, чтобы освободить ресурсы в пуле узлов, выполните следующую команду. Замените <cluster-name> и <resource-group> собственными значениями. Для <storage-pool-type>, укажите azureDisk, ephemeralDiskили elasticSan.

az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>

Примечание.

Если у вас есть существующий пул носителей типа, который вы пытаетесь отключить, тип пула носителей не будет отключен.

Следующие шаги

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