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


Использование драйвера 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.

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

Планирование развертывания 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-адресных пространств.

На диаграмме показаны две виртуальные сети, одна для Azure Управляемый Lustre и одна для AKS, со стрелкой, указывающей на пиринг и соединяющей их.

Установка AKS в подсети в виртуальной сети Azure Managed Lustre

Возможность установки кластера AKS в виртуальной сети Azure Managed Lustre с функцией Подключение собственной виртуальной сети Azure в AKS может оказаться выгодной в сценариях, где сеть управляется централизованно. Вам потребуется создать дополнительную подсеть, размер которой соответствует требованиям к сети AKS, в виртуальной сети Azure Managed Lustre.

При подготовке AKS в виртуальной сети Azure Managed Lustre не существует разделения привилегий для управления сетями. Субъект-служба AKS нуждается в привилегиях в виртуальной сети Azure Managed Lustre.

Диаграмма, показывающая виртуальную сеть Azure Managed Lustre с двумя подсетями: одной для файловой системы Lustre и одной для AKS.

Настройка драйвера

Чтобы включить драйвер CSI Azure Lustre для Kubernetes, выполните следующие действия:

  1. Создайте кластер управляемой файловой системы Lustre Azure.

  2. Создать кластер AKS.

  3. Создание пиринга виртуальной сети.

  4. установите драйвер.

  5. Создание и настройка постоянного тома.

  6. Проверьте установку, при необходимости используя эхо-модуль 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

  1. Откройте сеанс терминала с доступом к средствам Azure CLI и войдите в свою учетную запись Azure:

    az login
    
  2. Войдите на портал Azure.

  3. Найдите кластер AKS. На панели Обзор нажмите кнопку Подключиться, а затем скопируйте команду для загрузки учетных данных кластера.

  4. В сеансе терминала вставьте команду, чтобы скачать учетные данные. Команда похожа на следующую:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Установите kubectl, если он отсутствует в вашей среде:

    az aks install-cli
    
  6. Убедитесь, что текущий контекст является кластером 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:

  1. Скопируйте следующие файлы конфигурации из папки /docs/examples/ в репозитории azurelustre-csi-driver . Если вы клонировали репозиторий при установке драйвера, у вас уже есть локальные копии.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

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

  2. В файле storageclass_existing_lustre.yaml обновите внутреннее имя кластера Lustre и IP-адрес службы управления Lustre (MGS).

    Снимок экрана файла storageclass_existing_lustre.yaml, в котором выделены значения для замены.

    Оба параметра отображаются на портале Azure на панели подключения клиента для управляемой файловой системы Azure Lustre.

    снимок экрана панели подключения клиента на портале Azure. Выделены IP-адрес MGS и имя lustrefs в команде подключения.

    Сделайте следующее:

    • Замените EXISTING_LUSTRE_FS_NAME назначаемое системой внутреннее имя кластера Lustre в файловой системе Azure Managed Lustre. Обычно внутреннее имя .lustrefs Внутреннее имя не является именем, которое вы предоставили файловой системе при его создании.

      Предлагаемая mount команда содержит имя, выделенное в следующей строке адреса.

      снимок экрана: пример строки адреса на панели подключения клиента. Выделено внутреннее имя кластера Lustre.

    • Замените EXISTING_LUSTRE_IP_ADDRESS IP-адресом MGS.

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

    kubectl create -f storageclass_existing_lustre.yaml
    kubectl create -f pvc_storageclass.yaml
    

Проверка установки

Если вы хотите проверить установку, можно использовать echo pod, чтобы убедиться, что драйвер работает.

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

  1. Добавьте следующий код в модуль pod echo:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Чтобы просмотреть метки времени в консоли во время записи, выполните следующую команду kubectl:

    `kubectl logs -f lustre-echo-date`