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


Использование драйверов интерфейса хранилища контейнеров (CSI) в службе Azure Kubernetes (AKS)

Интерфейс хранилища контейнеров (CSI) — это стандарт для предоставления систем хранения произвольных блоков и файлов для контейнерных рабочих нагрузок в Kubernetes. При использовании CSI служба Azure Kubernetes (AKS) может записывать, развертывать и итерировать подключаемые модули для предоставления новых или улучшения существующих систем хранения в Kubernetes без необходимости касаться основного кода Kubernetes и ждать циклов выпуска.

Поддержка драйвера хранилища CSI в AKS позволяет использовать диски Azure, файлы Azure или хранилище BLOB-объектов Azure в качестве постоянного хранилища для приложений, работающих в AKS.

Совет

Если вы хотите полностью управляемое решение для доступа на уровне блоков к данным, рассмотрите возможность использования хранилища контейнеров Azure вместо драйверов CSI. Хранилище контейнеров Azure интегрируется с Kubernetes, чтобы динамически подготавливать постоянные тома для приложений с состоянием в кластерах Kubernetes.

Это важно

Начиная с Kubernetes версии 1.26, типы постоянных томов kubernetes.io/azure-disk в дереве и kubernetes.io/azure-file устарели и больше не будут поддерживаться. Драйверы в дереве относятся к драйверам хранилища, которые являются частью основного кода Kubernetes, против драйверов CSI, которые являются подключаемыми модулями.

Удаление этих драйверов после их отмены не планируется, однако следует перенести их в соответствующие драйверы disk.csi.azure.com CSI и file.csi.azure.com. Чтобы просмотреть варианты миграции для классов хранилища и обновить кластер для использования драйверов CSI для дисков и файлов Azure, см. раздел "Миграция с in-tree драйверов на драйверы CSI".

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

Информация о драйвере CSI для дисков Azure

Драйвер CSI дисков Azure — это драйвер, соответствующий спецификации CSI, используемый AKS для управления жизненным циклом ресурсов дисков Azure. С помощью драйвера CSI дисков Azure можно создать ресурс DataDisk Kubernetes. Диски могут использовать службу хранилища Azure ценовой категории "Премиум" на основе высокопроизводительных твердотельных накопителей или службу хранилища Azure ценовой категории "Стандартный" на основе обычных жестких дисков или стандартных твердотельных накопителей. Для большинства рабочих нагрузок, связанных с производством и разработкой, следует использовать службу хранилища ценовой категории "Премиум". Диски Azure подключаются в режиме ReadWriteOnce и доступны только одному узлу в AKS. Для томов хранилища, к которым одновременно могут обращаться несколько узлов, следует использовать файлы Azure.

Функции драйвера CSI дисков Azure

В дополнение к функциям драйвера в дереве драйвер Azure Disk CSI поддерживает следующие функции:

  • Улучшения производительности во время параллельных операций подключения диска и отсоединения.
    • Драйверы в дереве присоединяют или отсоединяют диски в последовательном режиме, а драйверы CSI присоединяют или отсоединяют диски в пакетном режиме. Существует значительное улучшение при наличии нескольких дисков, присоединенных к одному узлу.
  • SSD уровня "Премиум" версии 1 и версии 2.
    • PremiumV2_LRS поддерживает только режим кэширования None.
  • Поддержка дисков с избыточным хранением между зонами (ZRS).
    • Premium_ZRSПоддерживаются StandardSSD_ZRS типы дисков. Диск ZRS может быть запланирован на узле зоны или незон, без ограничения, что том диска должен находиться в той же зоне, что и заданный узел. Дополнительные сведения, включая поддерживаемые регионы, см. в разделе "Хранение с избыточностью по зонам" для управляемых дисков.
  • Создавайте моментальные снимки постоянных томов.
  • Создайте клоны томов.
  • Измените размер постоянных томов без простоя.

Примечание.

В зависимости от используемого номера SKU виртуальной машины драйвер CSI диска Azure может иметь ограничение тома для каждого узла. Для некоторых мощных виртуальных машин (например, 16 ядер) ограничение составляет 64 тома на узел. Чтобы определить ограничение на номер SKU виртуальной машины, просмотрите столбец "Максимальное количество дисков данных" для каждого предлагаемого номера SKU виртуальной машины. Список предлагаемых номеров SKU виртуальных машин и их соответствующих подробных ограничений емкости см. в разделе "Размеры виртуальных машин общего назначения".

Информация о драйвере CSI файлов Azure

Драйвер CSI файлов Azure — это драйвер, соответствующий спецификации CSI, используемый AKS для управления жизненным циклом общих папок Azure. С помощью драйвера CSI файлов Azure можно подключить общую папку SMB 3.0/3.1, поддерживаемую учетной записью хранения Azure, к модулям pod. Файлы Azure обеспечивают обмен данными между несколькими узлами и подами. Файлы Azure могут использовать стандартное хранилище Azure на основе обычных жестких дисков или премиум-хранилище Azure на основе высокопроизводительных твердотельных накопителей.

Сведения о драйвере интерфейса CSI объектного хранилища Azure Blob

Драйвер CSI хранилища BLOB-объектов Azure — это драйвер, соответствующий спецификации CSI, используемый AKS для управления жизненным циклом хранилища BLOB-объектов Azure. С помощью драйвера CSI для BLOB-хранилища Azure можно монтировать BLOB-хранилище (или объектное хранилище) в виде файловой системы в контейнер или pod. Использование хранилища BLOB-объектов позволяет кластеру поддерживать приложения, которые работают с большими неструктурированными наборами данных, такими как данные файла журнала, изображения или документы, HPC и другие. Кроме того, при приеме данных в Хранилище Azure Data Lake можно напрямую подключить и использовать их в AKS, не настраивая другую промежуточную файловую систему.

При подключении хранилища BLOB-объектов Azure в качестве файловой системы в контейнер или pod он позволяет использовать хранилище BLOB-объектов с несколькими приложениями, которые работают с большим объемом неструктурированных данных, например:

  • Данные файла журнала
  • Изображения, документы и потоковое видео или аудио
  • Данные аварийного восстановления

Приложения могут получить доступ к данным в хранилище объектов с помощью протокола BLOBFuse или сетевой файловой системы (NFS) 3.0. Перед введением драйвера CSI хранилища BLOB-объектов Azure единственным вариантом было вручную установить неподдерживаемый драйвер для доступа к хранилищу BLOB-объектов из приложения, работающего в AKS.

Особенности драйвера CSI для объектного хранилища Blob Azure

  • Два встроенных класса хранилища: azureblob-fuse-Premium_ и azureblob-nfs-premium.
  • Протокол BlobFuse и сетевой файловой системы (NFS) версии 3.0.

Предварительные условия

  • Вам потребуется Azure CLI версии 2.42 или более поздней. Найдите версию с помощью az --version команды. Чтобы выполнить установку или обновление, см. сведения в статье Установка Azure CLI.
  • Если драйвер хранилища CSI с открытым кодом установлен в кластере, удалите его перед включением драйвера CSI службы хранилища Azure.
  • Чтобы применять политику Azure для AKS, где определение политики касается того, что StorageClass, необходимо включить надстройку политики Azure в вашем кластере. Чтобы включить на существующем кластере, см. Learn Azure Policy for Kubernetes.

Поддерживаемые сценарии шифрования дисков

Драйверы хранилища CSI поддерживают следующие сценарии:

Включение драйвера хранилища CSI дисков Azure в существующем кластере AKS

  • Включите драйвер CSI для дисков Azure в существующем кластере с помощью команды [az aks update][az-aks-update] с параметром --enable-disk-driver. Следующий пример включает драйвер CSI дисков Azure в существующем кластере с именем myAKSCluster в группе ресурсов myResourceGroup:

    Примечание.

    Контроллер моментальных снимков можно включить одновременно с драйвером CSI для дисков Azure, что позволит вам создавать моментальные снимки постоянных томов. Чтобы включить контроллер моментальных снимков, включите --enable-snapshot-controller параметр в команду.

    az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver
    

    Для включения драйвера CSI дисков Azure требуется несколько минут. После завершения команды вы можете убедиться, что драйвер включен, проверив, что в выходных данных установлено значение blobCsiDriver для true. Рассмотрим пример.

    "storageProfile": {
        "blobCsiDriver": {
          "enabled": true
        },
    

Включение драйвера хранилища CSI файлов Azure в существующем кластере AKS

  • Включите драйвер CSI файлов Azure в существующем кластере с помощью команды [az aks update][az-aks-update] с параметром --enable-file-driver. В следующем примере активируется драйвер CSI Files Azure в существующем кластере с именем myAKSCluster в группе ресурсов myResourceGroup:

    Примечание.

    Вы можете включить контроллер моментальных снимков одновременно с драйвером CSI файлов Azure, что позволит вам создавать моментальные снимки ваших постоянных томов. Чтобы включить контроллер моментальных снимков, включите --enable-snapshot-controller параметр в команду.

    az aks update --name myAKSCluster --resource-group myResourceGroup --enable-file-driver
    

    Для того чтобы включить драйвер CSI для Azure Files, потребуется несколько минут. После завершения команды вы можете убедиться, что драйвер включен, проверив, что в выходных данных установлено значение fileCsiDriver для true. Рассмотрим пример.

    "storageProfile": {
        "fileCsiDriver": {
          "enabled": true
        },
    

Включение драйвера хранилища CSI хранилища BLOB-объектов Azure в существующем кластере AKS

  • Включите драйвер CSI хранилища Azure Blob в существующем кластере с помощью команды [az-aks-update][az aks update] с параметром --enable-blob-driver. В следующем примере показывается, как включить драйвер CSI хранилища Blob Azure в существующем кластере myAKSCluster в группе ресурсов myResourceGroup:

    Примечание.

    Контроллер моментальных снимков можно включить одновременно с драйвером CSI для хранилища Blob Azure, что позволяет создавать моментальные снимки персистентных томов. Чтобы включить контроллер моментальных снимков, включите --enable-snapshot-controller параметр в команду.

    az aks update --name myAKSCluster --resource-group myResourceGroup --enable-blob-driver
    

    Для включения драйвера CSI хранилища BLOB-объектов Azure требуется несколько минут. После завершения команды вы можете убедиться, что драйвер включен, проверив, что в выходных данных установлено значение blobCsiDriver для true. Рассмотрим пример.

    "storageProfile": {
        "blobCsiDriver": {
          "enabled": true
        },
    

Отключение драйвера хранилища CSI дисков Azure в существующем кластере AKS

  • Отключите драйвер CSI дисков Azure в существующем кластере с помощью команды [][az aks updateaz-aks-update] с параметром --disable-disk-driver . Следующий пример отключает драйвер CSI дисков Azure в существующем кластере с именем myAKSCluster в группе ресурсов myResourceGroup:

    Примечание.

    Контроллер моментальных снимков можно отключить, включив --disable-snapshot-controller параметр в команду.

    az aks update --name myAKSCluster --resource-group myResourceGroup --disable-disk-driver
    

Отключение драйвера хранилища CSI файлов Azure в существующем кластере AKS

  • Отключите драйвер CSI файлов Azure в существующем кластере, используя команду [az-aks-update][az aks update] с параметром --disable-file-driver. В следующем примере драйвер CSI файлов Azure отключается в существующем кластере с именем myAKSCluster в группе ресурсов myResourceGroup:

    Примечание.

    Контроллер моментальных снимков можно отключить, включив --disable-snapshot-controller параметр в команду.

    az aks update --name myAKSCluster --resource-group myResourceGroup --disable-file-driver
    

Отключение драйвера CSI хранилища BLOB-объектов Azure в существующем кластере AKS

  • Отключите драйвер CSI хранилища Azure Blob в существующем кластере, используя команду [az-aks-updateaz aks update] с параметром --disable-blob-driver. В следующем примере драйвер CSI хранилища BLOB-объектов Azure отключен в существующем кластере myAKSCluster в группе ресурсов myResourceGroup:

    Примечание.

    Контроллер моментальных снимков можно отключить, включив --disable-snapshot-controller параметр в команду.

    az aks update --name myAKSCluster --resource-group myResourceGroup --disable-blob-driver
    

Примечание.

Рекомендуется удалить соответствующий объект PersistentVolumeClaim вместо объекта PersistentVolume при удалении тома CSI. Внешний провиженер в драйвере CSI реагирует на удаление PersistentVolumeClaim. На основе политики рекламации PVC, поставщик инициирует вызов DeleteVolume к командам драйвера тома CSI для удаления тома. Затем удаляется объект PersistentVolume.

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