Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранилище контейнеров Azure — это облачная служба управления томами, развертывания и оркестрации, созданная для контейнеров. Используйте это руководство, чтобы установить последнюю рабочую версию хранилища контейнеров Azure в кластере Службы Azure Kubernetes (AKS), независимо от того, создаете ли вы новый кластер или включите службу в существующем кластере.
В этой статье объясняется, как установить хранилище контейнеров Azure с помощью двух поддерживаемых потоков (только установщика или установщика и типа хранилища), активации установки драйвера и способа проверки и устранения неполадок развертывания. Хранилище контейнеров Azure устанавливает драйверы, реализующие интерфейс хранилища контейнеров (CSI).
Если вы предпочитаете версию хранилища контейнеров Azure с открытым исходным кодом, ознакомьтесь с репозиторием local-csi-driver для альтернативных инструкций по установке.
В конце этого руководства вы можете:
- Подготовка среды Azure CLI
- Создание или выбор группы ресурсов для кластера
- Убедитесь, что типы виртуальных машин пула узлов соответствуют критериям установки
- Установка хранилища контейнеров Azure путем создания кластера AKS или его включения в существующем кластере
Внимание
Эта статья относится к хранилищу контейнеров Azure (версия 2.x.x). Сведения о более ранних версиях см. в документации по хранилищу контейнеров Azure (версия 1.x.x). Если у вас уже есть хранилище контейнеров Azure (версия 1.x.x) в кластере AKS, удалите его, выполнив следующие действия.
Предварительные условия
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Для этой статьи требуется Azure CLI версии 2.83.0 или более поздней. Дополнительные сведения см. в статье "Установка Azure CLI". Отключите такие расширения, как
aks-previewесли возникают проблемы. Установите или обновите расширения по мере необходимости:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(только Elastic SAN)
Вам нужен клиент командной строки Kubernetes.
kubectlОн уже установлен, если вы используете Azure Cloud Shell. Его можно установить локально, выполнивaz aks install-cliкоманду.Проверьте, поддерживается ли целевой регион в регионах хранилища контейнеров Azure.
Планирование конфигурации пула узлов:
- Используйте Linux в качестве типа ОС (Windows не поддерживается).
- Выберите номер SKU виртуальной машины, поддерживающий локальные диски данных NVMe, если планируется использовать локальный тип хранилища NVMe, например оптимизированные для хранения или виртуальные машины с ускорением GPU .
- Для существующих кластеров убедитесь, что пулы узлов уже используют поддерживаемый номер SKU виртуальной машины, прежде чем включить хранилище контейнеров Azure.
Если вы используете Elastic SAN впервые в подписке, выполните следующую команду однократной регистрации:
az provider register --namespace Microsoft.ElasticSan
Настройка контекста подписки
Задайте контекст подписки Azure с помощью az account set команды. Идентификаторы подписок можно просмотреть, выполнив команду az account list --output table. Замените <subscription-id> идентификатором своей подписки.
az account set --subscription <subscription-id>
Создание группы ресурсов
Группа ресурсов 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 устанавливает последнюю основную версию по умолчанию. Можно закрепить основную версию с помощью --container-storage-version. Нельзя закрепить минорные версии или патчевые версии.
Установка в режиме "только установщик"
Выполните следующую команду, чтобы создать кластер 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 минут. Установка драйвера CSI откладывается до создания класса хранилища или включения типа хранилища позже.
Следуйте инструкциям по созданию локального класса хранилища NVMe или класса хранилища Elastic SAN .
Установка установщика и типа хранилища
Выполните следующую команду, чтобы создать кластер 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 ephemeralDisk --generate-ssh-keys
Эта команда устанавливает установщик, развертывает локальный драйвер NVMe CSI и создает класс local-csiхранилища по умолчанию. Вы можете установить и использовать локальные NVMe и Elastic SAN, предоставив список, например ephemeralDisk elasticSan.
Установка хранилища контейнеров Azure в существующем кластере AKS
Установка в режиме "только установщик"
Выполните следующую команду, чтобы включить хранилище контейнеров Azure в существующем кластере AKS. Замените <cluster-name> и <resource-group> собственными значениями.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage
Развертывание может занять до 5 минут. Когда завершится процесс, на кластер будет установлен компонент установки Azure Container Storage. Установка драйвера CSI откладывается до создания класса хранилища или включения типа хранилища позже. Следуйте инструкциям по созданию локального класса хранилища NVMe или класса хранилища Elastic SAN .
Установка установщика и типа хранилища
Выполните следующую команду, чтобы включить хранилище контейнеров Azure в существующем кластере AKS. Замените <cluster-name> и <resource-group> наведите собственные значения и укажите тип хранилища, который вы хотите использовать.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage elasticSan
Эта команда устанавливает установщик, развертывает драйвер Elastic SAN CSI и создает класс azuresan-csiхранилища по умолчанию. Вы можете установить и использовать локальные NVMe и Elastic SAN, предоставив список, например ephemeralDisk elasticSan.
- Подготовка Terraform и проверка подлинности в Azure
- Определение группы ресурсов и конфигурации кластера AKS
- Убедитесь, что типы виртуальных машин пула узлов соответствуют критериям установки
- Применение Terraform для развертывания хранилища контейнеров Azure или его включения в существующем кластере
Внимание
Эта статья относится к хранилищу контейнеров Azure (версия 2.x.x). Сведения о более ранних версиях см. в документации по хранилищу контейнеров Azure (версия 1.x.x). Если у вас уже есть хранилище контейнеров Azure (версия 1.x.x) в кластере AKS, удалите его, выполнив следующие действия.
Предварительные условия
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Для этой статьи требуется Azure CLI версии 2.83.0 или более поздней. Дополнительные сведения см. в статье "Установка Azure CLI". Отключите такие расширения, как
aks-previewесли возникают проблемы. Установите или обновите расширения по мере необходимости:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(только Elastic SAN)
Вам нужен клиент командной строки Kubernetes.
kubectlОн уже установлен, если вы используете Azure Cloud Shell. Его можно установить локально, выполнивaz aks install-cliкоманду.Проверьте, поддерживается ли целевой регион в регионах хранилища контейнеров Azure.
Планирование конфигурации пула узлов:
- Используйте Linux в качестве типа ОС (Windows не поддерживается).
- Выберите номер SKU виртуальной машины, поддерживающий локальные диски данных NVMe, такие как оптимизированные для хранения виртуальные машины или виртуальные машины с ускорением GPU .
- Для существующих кластеров убедитесь, что пулы узлов уже используют поддерживаемый номер SKU виртуальной машины, прежде чем включить хранилище контейнеров Azure.
Установите Terraform версии 1.5 или более поздней и подтвердите установку.
terraform versionTerraform может повторно использовать проверку подлинности Azure CLI.Если вы используете Elastic SAN впервые в подписке, выполните следующую команду однократной регистрации:
az provider register --namespace Microsoft.ElasticSan
Настройка контекста подписки
Terraform может определить целевую подписку Azure с помощью нескольких методов:
-
subscription_idв блоке поставщика - Переменная среды
ARM_SUBSCRIPTION_ID. - Подписка Azure CLI по умолчанию
- Управляемое удостоверение (в среде Azure)
Для локального использования задайте контекст Azure CLI:
az account set --subscription <subscription-id>
Установка хранилища контейнеров Azure в новом кластере AKS
Внимание
Хранилище контейнеров Azure устанавливает последнюю доступную версию и обновляется автоматически. Выбор версий вручную не поддерживается.
В пустом рабочем каталоге создайте
main.tfфайл со следующей минимальной конфигурацией кластера AKS. Обновите имена ресурсов, расположения и размеры виртуальных машин в соответствии с вашими требованиями.terraform { required_version = ">= 1.5.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } 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" }Инициализируйте рабочую директорию для загрузки поставщика AzureRM.
terraform initПросмотрите запланированные изменения.
terraform planПримените конфигурацию для создания группы ресурсов, кластера AKS и расширения хранилища контейнеров Azure. Развертывание обычно занимает 5 минут.
terraform apply
Когда завершится процесс, на кластер будет установлен компонент установки Azure Container Storage. Установка драйвера CSI откладывается до создания класса хранилища. Следуйте инструкциям по созданию локального класса хранилища NVMe или класса хранилища Elastic SAN .
Установка хранилища контейнеров Azure в существующем кластере AKS
Если кластер AKS уже существует и управляете им за пределами Terraform, вы по-прежнему можете включить хранилище контейнеров Azure, создав только ресурс расширения. Используйте источник данных для поиска идентификатора кластера.
terraform {
required_version = ">= 1.5.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
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"
}
Запустите terraform init (если это новый рабочий каталог), а затем terraform apply установите хранилище контейнеров Azure в целевом кластере. Развертывание обычно занимает 5 минут.
Когда завершится процесс, на кластер будет установлен компонент установки Azure Container Storage. Установка драйвера CSI откладывается до создания класса хранилища. Следуйте инструкциям по созданию локального класса хранилища NVMe или класса хранилища Elastic SAN .
Проверка установки
Подключение к кластеру AKS
Перед выполнением команд проверки убедитесь, что для локального kubeconfig задан целевой кластер:
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Если вы управляете несколькими кластерами, добавьте --overwrite-existing для замены существующего контекста или задайте --context уникальное имя контекста.
Проверка установщика (режим только установщика)
После включения только установщика убедитесь, что установщик присутствует:
kubectl get deploy -n kube-system | grep acstor
Ожидаемые выходные данные:
acstor-cluster-manager 2/2 2 2 4d9h
acstor-geneva 2/2 2 2 4d9h
Проверка присутствия класса хранилища
После создания класса хранилища или включения типа хранилища проверьте класс хранилища:
kubectl get sc
Пример выходных данных:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
azuresan-csi san.csi.azure.com Delete Immediate false 4d7h
local-csi localdisk.csi.acstor.io Delete WaitForFirstConsumer true 4d5h
Проверка установки драйверов
Проверьте компоненты, ожидаемые после создания класса хранилища или установки типа хранилища:
kubectl get pod -n kube-system | grep acstor
Пример выходных данных:
pod/acstor-azuresan-csi-driver-jrqd2 7/7 Running 0 142m
pod/acstor-azuresan-csi-driver-tcdp8 7/7 Running 0 142m
pod/acstor-cluster-manager-76c67496f9-8ln5d 2/2 Running 0 3h54m
pod/acstor-cluster-manager-76c67496f9-b4c8q 2/2 Running 0 3h54m
pod/acstor-geneva-588bcbcc67-4tr5d 3/3 Running 0 3h54m
pod/acstor-geneva-588bcbcc67-k7j7k 3/3 Running 0 3h54m
pod/acstor-node-agent-46v47 1/1 Running 0 142m
pod/acstor-node-agent-6c99m 1/1 Running 0 142m
pod/acstor-otel-collector-4lfgz 1/1 Running 0 142m
pod/acstor-otel-collector-hw9nd 1/1 Running 0 142m
Отладка
Для отладки наблюдайте за системой по мере того как компоненты разворачиваются.
kubectl get events -n kube-system --watch
kubectl get pod -n kube-system --watch
Проверьте настраиваемые ресурсы HelmRelease и OCIRepository, используемые установщиком:
kubectl describe helmreleases.helm.installer.acstor.io -n kube-system
kubectl describe ocirepositories.source.installer.acstor.io -n kube-system