Использование драйвера Lustre CSI в Azure с Служба Azure Kubernetes
В этой статье вы узнаете, как планировать, устанавливать и использовать Azure Managed Lustre в службе Azure Kubernetes (AKS) с драйвером Azure Lustre CSI для Kubernetes. Этот драйвер основан на спецификации интерфейса поддержки контейнеров (CSI).
Драйвер CSI Azure Lustre для Kubernetes можно использовать для доступа к управляемому хранилищу Lustre Azure в качестве постоянных томов хранилища из контейнеров Kubernetes, развернутых в AKS.
Совместимые версии Kubernetes
Драйвер Azure Lustre CSI для Kubernetes совместим с AKS. Другие установки Kubernetes в настоящее время не поддерживаются.
Поддерживаются akS Kubernetes версии 1.21 и более поздних версий. Эта поддержка включает все версии, доступные в настоящее время при создании нового кластера AKS.
Внимание
Драйвер CSI Azure Lustre для Kubernetes в настоящее время работает только с SKU ОС Ubuntu Linux для пулов узлов AKS.
Совместимые версии Lustre
Драйвер Azure Lustre CSI для Kubernetes совместим с Управляемый Lustre Azure. Другие установки Lustre в настоящее время не поддерживаются.
Драйвер Azure Lustre CSI для Kubernetes версии 0.1.10 и более поздних версий поддерживаются с текущей версией службы Azure Managed Lustre.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Среда терминала с установленными средствами Azure CLI. См. Начало работы с Azure CLI.
- kubectl, средство управления Kubernetes, установленное в среде терминала. См. Быстрый старт: развертывание кластера Службы Azure Kubernetes (AKS) с помощью Azure CLI.
- Развертывание Azure Managed Lustre. См. документацию по Управляемому Lustre Azure.
Планирование развертывания AKS
При развертывании службы Azure Kubernetes несколько вариантов влияют на операцию между AKS и Azure Managed Lustre.
Определение типа сети для использования с AKS
Два типа сетей совместимы с SKU ОС Ubuntu Linux: kubenet и драйвер Azure Container Network Interface (CNI). Оба варианта работают с драйвером Azure Lustre CSI для Kubernetes, но у них есть разные требования, которые необходимо понимать при настройке виртуальных сетей и AKS. Дополнительные сведения об определении правильного выбора см. в статье Концепции сети для приложений в службе Azure Kubernetes (AKS).
Определить сетевую архитектуру для взаимосвязанности AKS и Azure Managed Lustre
Управляемый Lustre Azure работает в частной виртуальной сети. Экземпляр AKS должен иметь сетевое подключение к виртуальной сети Azure Managed Lustre. Существует два распространенных способа настройки сети между Azure Managed Lustre и Azure AKS:
- Установите AKS в собственной виртуальной сети и создайте пиринг виртуальной сети с виртуальной сетью Azure Managed Lustre.
- Используйте параметр Создание собственной виртуальной сети Azure в AKS для установки AKS в новой подсети в Azure Managed Lustre виртуальной сети.
Примечание.
Мы не рекомендуем устанавливать AKS в той же подсети, что и Azure Управляемый Lustre.
Пиринг AKS и управляемые виртуальные сети Lustre Azure
Возможность пиринга двух виртуальных сетей имеет преимущество разделения управления сетями на разные привилегированные роли. Пиринг также может обеспечить дополнительную гибкость, так как его можно реализовать в подписках или регионах Azure. Пиринг между виртуальными сетями требует координации между двумя сетями, чтобы избежать выбора конфликтующих IP-адресных пространств.
Установка AKS в подсети в виртуальной сети Azure Managed Lustre
Возможность установки кластера AKS в виртуальной сети Azure Managed Lustre с функцией Подключение собственной виртуальной сети Azure в AKS может оказаться выгодной в сценариях, где сеть управляется централизованно. Вам потребуется создать дополнительную подсеть, размер которой соответствует требованиям к сети AKS, в виртуальной сети Azure Managed Lustre.
При подготовке AKS в виртуальной сети Azure Managed Lustre не существует разделения привилегий для управления сетями. Субъект-служба AKS нуждается в привилегиях в виртуальной сети Azure Managed Lustre.
Настройка драйвера
Чтобы включить драйвер CSI Azure Lustre для Kubernetes, выполните следующие действия:
Проверьте установку, при необходимости используя эхо-модуль pod, чтобы убедиться, что драйвер работает.
В следующих разделах подробно описана каждая задача.
Создание кластера управляемой файловой системы Lustre в Azure
Если вы еще не создали кластер файловой системы Azure Managed Lustre, создайте кластер. Инструкции см. в статье Создание управляемой файловой системы Lustre Azure с помощью портала Azure. В настоящее время драйвер можно использовать только с существующей файловой системой Azure Managed Lustre.
Создание кластера AKS
Если вы еще не создали кластер AKS, создайте развертывание кластера. См. раздел Развертывание кластера Службы Azure Kubernetes (AKS) с помощью портала Azure.
Создайте пиринг виртуальной сети
Примечание.
Пропустите этот шаг пиринга сети, если вы установили AKS в подсети в виртуальной сети Azure Managed Lustre.
Виртуальная сеть AKS создается в отдельной группе ресурсов из группы ресурсов кластера AKS. Вы можете найти имя этой группы ресурсов, перейдя в кластер AKS на портале Azure, перейдя к Свойстваи найдя группу ресурсов инфраструктуры. Эта группа ресурсов содержит виртуальную сеть, которая должна быть связана с виртуальной сетью Azure Managed Lustre. Он соответствует шаблону >.
Чтобы выполнить пиринг виртуальной сети AKS с виртуальной сетью Azure Managed Lustre, обратитесь к ресурсу виртуальный пиринг сетей.
Совет
Из-за именования групп ресурсов и виртуальных сетей MC_ имена сетей могут быть похожими или одинаковыми в нескольких развертываниях AKS. При настройке пиринга будьте внимательны, выбирайте именно те сети AKS, которые вы намерены использовать.
Подключение к кластеру AKS
Откройте сеанс терминала с доступом к средствам Azure CLI и войдите в свою учетную запись Azure:
az login
Войдите на портал Azure.
Найдите кластер AKS. На панели Обзор нажмите кнопку Подключиться, а затем скопируйте команду для загрузки учетных данных кластера.
В сеансе терминала вставьте команду, чтобы скачать учетные данные. Команда похожа на следующую:
az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
Установите kubectl, если он отсутствует в вашей среде:
az aks install-cli
Убедитесь, что текущий контекст является кластером AKS, где вы только что установили учетные данные и можете подключиться к нему:
kubectl config current-context kubectl get deployments --all-namespaces=true
Установка драйвера
Чтобы установить драйвер CSI Azure Lustre для Kubernetes, выполните следующую команду:
curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash
Чтобы получить примеры команд для локальной установки, см. установка драйвера Azure Lustre CSI в кластере Kubernetes.
Создание и настройка постоянного тома
Чтобы создать постоянный том для существующей управляемой файловой системы Lustre Azure:
Скопируйте следующие файлы конфигурации из папки /docs/examples/ в репозитории azurelustre-csi-driver . Если вы клонировали репозиторий при установке драйвера, у вас уже есть локальные копии.
- storageclass_existing_lustre.yaml
- pvc_storageclass.yaml
Если вы не хотите клонировать весь репозиторий, вы можете скачать каждый файл по отдельности. Откройте каждую из следующих ссылок, скопируйте содержимое файла и вставьте его содержимое в локальный файл с тем же именем файла.
В файле storageclass_existing_lustre.yaml обновите внутреннее имя кластера Lustre и IP-адрес службы управления Lustre (MGS).
Оба параметра отображаются на портале Azure на панели подключения клиента для управляемой файловой системы Azure Lustre.
Сделайте следующее:
Замените
EXISTING_LUSTRE_FS_NAME
назначаемое системой внутреннее имя кластера Lustre в файловой системе Azure Managed Lustre. Обычно внутреннее имя .lustrefs
Внутреннее имя не является именем, которое вы предоставили файловой системе при его создании.Предлагаемая
mount
команда содержит имя, выделенное в следующей строке адреса.Замените
EXISTING_LUSTRE_IP_ADDRESS
IP-адресом MGS.
Чтобы создать класс хранилища и утверждение постоянного тома, выполните следующую
kubectl
команду:kubectl create -f storageclass_existing_lustre.yaml kubectl create -f pvc_storageclass.yaml
Проверка установки
Если вы хотите проверить установку, можно использовать echo pod, чтобы убедиться, что драйвер работает.
Чтобы просмотреть метки времени в консоли во время записи, выполните следующие команды:
Добавьте следующий код в модуль pod echo:
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
Чтобы просмотреть метки времени в консоли во время записи, выполните следующую команду
kubectl
:`kubectl logs -f lustre-echo-date`