Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранилище контейнеров Azure — это облачная служба управления томами, развертывания и оркестрации, созданная изначально для контейнеров. Используйте это руководство, чтобы установить последнюю рабочую версию хранилища контейнеров Azure в кластере Службы Azure Kubernetes (AKS), независимо от того, создаете ли вы новый кластер или включаете службу в существующем развертывании.
Если вы предпочитаете версию хранилища контейнеров Azure с открытым исходным кодом, перейдите в репозиторий local-csi-driver для альтернативных инструкций по установке.
К концу этого руководства вы получите следующее:
- Подготовка среды Azure CLI
- Создание или выбор группы ресурсов для кластера
- Убедитесь, что типы виртуальных машин пула узлов соответствуют критериям установки
- Установка хранилища контейнеров Azure путем создания кластера AKS или его включения в существующем кластере
Внимание
Эта статья относится к хранилищу контейнеров Azure (версия 2.x.x). Сведения о более ранних версиях см. в документации по хранилищу контейнеров Azure (версия 1.x.x). Если у вас уже есть хранилище контейнеров Azure (версия 1.x.x) в кластере AKS, удалите его, выполнив следующие действия.
Необходимые компоненты
Создайте подписку Azure, если у вас ее еще нет, зарегистрировавшись для бесплатной учетной записи.
Убедитесь, что целевой регион поддерживается, просмотрев региональную доступность хранилища контейнеров Azure.
Планирование конфигурации пула узлов:
- Используйте Linux в качестве типа ОС (Windows не поддерживается).
- Выберите номер SKU виртуальной машины, поддерживающий локальные диски данных NVMe, например оптимизированные для хранения или виртуальные машины с ускорением GPU .
- Для существующих кластеров убедитесь, что пулы узлов уже используют поддерживаемый номер SKU виртуальной машины, прежде чем включить хранилище контейнеров Azure.
Установите последнюю версию Azure CLI (2.77.0 или более поздней версии), а затем войдите с помощью
az login. Избегайте использования Azure Cloud Shell (так какaz upgradeнедоступен) и отключайте конфликтующие расширения, напримерaks-preview, если возникают проблемы.Установите клиент командной строки Kubernetes.
kubectlЕго можно установить локально, выполнив командуaz aks install-cli.
Установка требуемого расширения
Добавьте или обновите последнюю версию 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-name> именем группы ресурсов, которую вы хотите создать, и замените <location> регион Azure, например eastus, westus2, westus3 или westeurope. Если вы включаете хранилище контейнеров Azure в существующем кластере AKS, используйте группу ресурсов, которая уже размещает кластер.
az group create --name <resource-group-name> --location <location>
Если группа ресурсов создана успешно, вы увидите выходные данные, аналогичные этому примеру:
{
"id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
"location": "eastus",
"managedBy": null,
"name": "myContainerStorageRG",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Установка хранилища контейнеров Azure в кластере AKS
Выберите сценарий, соответствующий вашей среде.
Внимание
Хранилище контейнеров Azure устанавливает последнюю доступную версию и обновляется автоматически. Выбор версий вручную не поддерживается.
Вариант 1. Создание кластера AKS с включенным хранилищем контейнеров Azure
Выполните следующую команду, чтобы создать кластер AKS и установить хранилище контейнеров Azure. Замените <cluster-name> и <resource-group> наведите собственные значения и укажите тип виртуальной машины, который вы хотите использовать.
az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_L8s_v3 --enable-azure-container-storage --generate-ssh-keys
Развертывание занимает 5–10 минут. Когда процесс будет завершён, у вас будет развернут кластер AKS с хранилищем контейнеров Azure и развернутыми компонентами для локального типа хранилища NVMe.
Вариант 2. Включение хранилища контейнеров Azure в существующем кластере AKS
Выполните следующую команду, чтобы включить хранилище контейнеров Azure в существующем кластере AKS. Замените <cluster-name> и <resource-group> собственными значениями.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage
Развертывание занимает 5–10 минут. Когда процесс завершится, на кластере AKS будет установлено хранилище Azure Container Storage и развернуты компоненты для локального типа хранилища NVMe.
- Подготовка Terraform и проверка подлинности в Azure
- Определение группы ресурсов и конфигурации кластера AKS
- Убедитесь, что типы виртуальных машин пула узлов соответствуют критериям установки
- Применение Terraform для развертывания хранилища контейнеров Azure или его включения в существующем кластере
Внимание
Эта статья относится к хранилищу контейнеров Azure (версия 2.x.x). Сведения о более ранних версиях см. в документации по хранилищу контейнеров Azure (версия 1.x.x). Если у вас уже есть хранилище контейнеров Azure (версия 1.x.x) в кластере AKS, удалите его, выполнив следующие действия.
Необходимые компоненты
Создайте подписку Azure, если у вас ее еще нет, зарегистрировавшись для бесплатной учетной записи.
Убедитесь, что целевой регион поддерживается, проверив региональную доступность хранилища контейнеров Azure.
Планирование конфигурации пула узлов:
- Используйте Linux в качестве типа ОС (Windows не поддерживается).
- Выберите номер SKU виртуальной машины, поддерживающий локальные диски данных NVMe, например оптимизированные для хранения или виртуальные машины с ускорением GPU .
- Для существующих кластеров убедитесь, что пулы узлов уже используют поддерживаемый номер SKU виртуальной машины, прежде чем включить хранилище контейнеров Azure.
Установите Azure CLI версии 2.77.0 или более поздней версии, а затем войдите с помощью
az login.Установите Terraform версии 1.5 или более поздней и подтвердите установку.
terraform versionTerraform может повторно использовать проверку подлинности Azure CLI.Установите
kubectl, чтобы проверить кластер после развертывания. При необходимости запуститеaz aks install-cliдля установки его локально.
Настройка контекста подписки
Terraform может определить целевую подписку Azure с помощью различных средств:
-
subscription_idв блоке поставщика - Переменная среды
ARM_SUBSCRIPTION_ID. - Подписка Azure CLI по умолчанию
- Управляемое удостоверение (в среде Azure)
Для локального использования задайте контекст Azure CLI:
az account set --subscription <subscription-id>
Установка хранилища контейнеров Azure в кластере AKS
Выберите сценарий, соответствующий вашей среде.
Внимание
Хранилище контейнеров Azure устанавливает последнюю доступную версию и обновляется автоматически. Выбор версий вручную не поддерживается.
Вариант 1. Создание кластера AKS с включенным хранилищем контейнеров Azure
В пустом рабочем каталоге создайте
main.tfфайл со следующей минимальной конфигурацией кластера AKS. Обновите имена ресурсов, расположения и размеры виртуальных машин в соответствии с вашими требованиями.terraform { required_version = ">= 1.5.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.x" } } } provider "azurerm" { features {} } resource "azurerm_resource_group" "rg" { name = "demo-aks-rg" location = "eastus" } resource "azurerm_kubernetes_cluster" "aks" { name = "demo-aks-cluster" dns_prefix = "demo-aks" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name default_node_pool { name = "systempool" vm_size = "Standard_L8s_v3" node_count = 3 } identity { type = "SystemAssigned" } } resource "azurerm_kubernetes_cluster_extension" "container_storage" { # NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility name = "acstor" cluster_id = azurerm_kubernetes_cluster.aks.id extension_type = "microsoft.azurecontainerstoragev2" configuration_settings = { enable-azure-container-storage = "true" } }Инициализируйте рабочую директорию для загрузки поставщика AzureRM.
terraform initПросмотрите запланированные изменения.
terraform planПримените конфигурацию для создания группы ресурсов, кластера AKS и расширения хранилища контейнеров Azure. Развертывание обычно занимает 5–10 минут.
terraform apply
Вариант 2. Включение хранилища контейнеров Azure в существующем кластере AKS
Если кластер AKS уже существует, и вы управляете им за пределами Terraform, вы по-прежнему можете включить хранилище контейнеров Azure, создав только ресурс расширения. Используйте источник данных для поиска идентификатора кластера.
terraform {
required_version = ">= 1.5.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.x"
}
}
}
provider "azurerm" {
features {}
}
data "azurerm_kubernetes_cluster" "existing" {
name = "existing-aks"
resource_group_name = "existing-aks-rg"
}
resource "azurerm_kubernetes_cluster_extension" "container_storage" {
# NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility
name = "acstor"
cluster_id = data.azurerm_kubernetes_cluster.existing.id
extension_type = "microsoft.azurecontainerstoragev2"
configuration_settings = {
enable-azure-container-storage = "true"
}
}
Запустите terraform init (если это новый рабочий каталог), а затем terraform apply установите хранилище контейнеров Azure в целевом кластере.
Подключение к кластеру и проверка состояния
После установки настройте kubectl подключение к кластеру и убедитесь, что узлы готовы.
Скачайте учетные данные кластера и настройте интерфейс командной строки Kubernetes для их использования. По умолчанию учетные данные хранятся в
~/.kube/config. При необходимости укажите другой путь с помощью аргумента--file.az aks get-credentials --resource-group <resource-group> --name <cluster-name>Проверьте подключение, перечислив узлы кластера.
kubectl get nodesУбедитесь, что все узлы сообщают о состоянии
Ready, аналогичном следующим выходным данным:NAME STATUS ROLES AGE VERSION aks-nodepool1-34832848-vmss000000 Ready agent 80m v1.32.6 aks-nodepool1-34832848-vmss000001 Ready agent 80m v1.32.6 aks-nodepool1-34832848-vmss000002 Ready agent 80m v1.32.6