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


Драйверы Container Storage Interface (CSI) в Службе Azure Kubernetes (AKS)

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

Поддержка драйверов хранилища CSI в AKS позволяет свободно использовать:

  • Диски Azure можно использовать для создания ресурсов DataDisk в Kubernetes. Диски могут использовать службу хранилища Azure ценовой категории "Премиум" на основе высокопроизводительных твердотельных накопителей или службу хранилища Azure ценовой категории "Стандартный" на основе обычных жестких дисков или стандартных твердотельных накопителей. Для большинства рабочих нагрузок, связанных с производством и разработкой, следует использовать службу хранилища ценовой категории "Премиум". Диски Azure подключаются в режиме ReadWriteOnce и доступны только одному узлу в AKS. Для томов хранилища, к которым одновременно могут обращаться несколько узлов, следует использовать файлы Azure.
  • Файлы Azure можно использовать для подключения к элементам pod общей папки SMB 3.0/3.1, размещенной в учетной записи хранения Azure. Файлы Azure обеспечивают обмен данными между нескольким узлам и pod. Файлы Azure могут использовать службу хранилища Azure ценовой категории "Стандартный" на основе обычных жестких дисков или службу хранилища Azure ценовой категории "Премиум" на основе высокопроизводительных твердотельных накопителей.
  • Хранилище BLOB-объектов Azure можно использовать для подключения хранилища BLOB-объектов (или хранилища объектов) в качестве файловой системы в контейнер или pod. Использование хранилища BLOB-объектов позволяет кластеру поддерживать приложения, работающие с большими неструктурированными наборами данных, такими как данные файла журнала, изображения или документы, HPC и другие. Кроме того, при приеме данных в Хранилище Azure Data Lake можно напрямую подключить и использовать их в AKS, не настраивая другую промежуточную файловую систему.

Внимание

Начиная с Kubernetes версии 1.26, типы постоянных томов в дереве kubernetes.io/azure-disk и kubernetes.io/azure-file устарели и больше не будут поддерживаться. Удаление этих драйверов после их отмены не планируется, однако следует перенести соответствующие драйверы CSI disk.csi.azure.com и file.csi.azure.com. Чтобы просмотреть варианты миграции для классов хранилища и обновить кластер для использования дисков Azure и Файлы Azure драйверов CSI, см. статью "Миграция из дерева в драйверы CSI".

Драйверы в дереве относятся к драйверам хранилища, которые входят в основной код Kubernetes, в отличие от драйверов CSI, которые представляют собой подключаемые модули.

Примечание.

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

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

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

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

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

  • Зашифрованные управляемые диски с ключами , управляемыми клиентом, с помощью Azure Key Vault, хранящихся в другом клиенте Microsoft Entra.
  • Зашифруйте диски служба хранилища Azure, в которые размещаются данные ОС AKS и приложения с помощью ключей, управляемых клиентом.

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

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

az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

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

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

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

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

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller \
    --generate-ssh-keys

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

az aks update \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller 

Перенос пользовательских классов хранения в дереве в CSI

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

Чтобы просмотреть варианты миграции для классов хранилища и обновить кластер для использования дисков Azure и Файлы Azure драйверов CSI, см. статью "Миграция из дерева в драйверы CSI".

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