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


Параметры хранилища для кластера Kubernetes

В этой статье сравниваются возможности хранилища Amazon Elastic Kubernetes Service (Amazon EKS) и Служба Azure Kubernetes (AKS) и описываются параметры хранения данных рабочей нагрузки в AKS.

Примечание.

Эта статья является частью серии статей, которые помогают специалистам, знакомым с Amazon EKS, чтобы понять AKS.

Параметры хранения Amazon EKS

В Amazon EKS после Kubernetes версии 1.11 кластер имеет класс storageClass по умолчанию, вызываемый gp2 для утверждений сохраняемого тома. Администраторы могут добавлять драйверы для определения дополнительных классов хранилища, таких как:

  • Драйвер Amazon EBS CSI в качестве надстройки Amazon EKS
  • Самоуправляемая надстройка Amazon EBS CSI
  • Драйвер Amazon EFS CSI
  • Amazon FSx для драйвера Lustre CSI
  • Драйвер CSI Для NetApp ONTAP Для Amazon FSx

Добавив драйверы и классы хранилища, можно использовать такие службы хранилища, как:

  • Amazon Elastic Block Store (Amazon EBS) — решение хранилища на уровне блока, используемое с экземплярами Amazon Elastic Compute Cloud (EC2) для хранения постоянных данных. Эта служба аналогична хранилищу дисков Azure, которая имеет несколько номеров SKU, таких как SSD уровня "Стандартный", SSD уровня "Премиум" или "Ультра", в зависимости от необходимой производительности.

  • Amazon Elastic File System (Amazon EFS), который предоставляет сетевой файловый системе доступ к внешним файловых системам, которые могут быть общими для разных экземпляров. Эквивалентное решение Azure — Файлы Azure и Файлы Azure Premium с доступом к блоку сообщений сервера (SMB) 3.0 и NFS.

  • Lustre— файловая система с открытым исходным кодом, которая часто используется в высокопроизводительных вычислениях (HPC). В Azure можно использовать диски ценовой категории "Ультра" или Azure HPC Cache для рабочих нагрузок, в которых важна скорость, например машинное обучение и HPC.

  • NetApp ONTAP, полностью управляемое хранилище ONTAP в Amazon Web Services (AWS). Azure NetApp Files — это аналогичная служба хранения файлов в Azure, созданная на основе технологии NetApp.

Параметры хранения AKS

Каждый кластер AKS включает следующие предварительно созданные классы хранения по умолчанию:

  • Класс хранилища managed-csiпо умолчанию использует SSD уровня "Стандартный диск". Ssd уровня "Стандартный" — это экономичный вариант хранения, оптимизированный для рабочих нагрузок, которые требуют согласованной производительности при более низкой производительности операций ввода-вывода в секунду (операций ввода-вывода в секунду).
  • В managed-csi-premium классе используются управляемые диски SSD уровня "Премиум" хранилища дисков.
  • Класс azurefile-csi использует Файлы Azure для предоставления параллельного общего доступа к одному тому хранилища с помощью SMB или NFS.
  • Класс azurefile-csi-premium использует Файлы Azure Premium для общих папок с рабочими нагрузками с большим объемом операций ввода-вывода в секунду. Файлы Azure Premium обеспечивает низкую задержку и высокую пропускную способность, поддерживаемую хранилищем SSD.

Эти параметры можно расширить, добавив другие классы хранилища и интегрируя с другими доступными решениями для хранения, например:

  • Хранилище дисков (цен. категория "Ультра")
  • Azure NetApp Files
  • HPC Cache
  • Сервер NFS
  • Сторонние решения для хранения

Хранилище дисков Azure

По умолчанию кластер AKS поставляется с предварительно созданными managed-csi классами и managed-csi-premium классами хранилища, используюющими дисковое хранилище. Как и в Amazon EBS, эти классы создают управляемый диск или блокируемое устройство, подключенное к узлу для доступа к pod.

Классы хранилища дисков позволяют подготовить статический и динамический том. Политика восстановления гарантирует удаление диска с постоянным томом. Вы можете развернуть диск, изменив утверждение постоянного тома.

Эти классы хранения используют управляемые диски Azure с локальным избыточным хранилищем (LRS). LRS означает, что данные имеют три синхронных копии в одном физическом расположении в основном регионе Azure. LRS является наименее дорогостоящим вариантом репликации, но не обеспечивает защиту от сбоя центра обработки данных. Чтобы устранить этот риск, выполните регулярные резервные копии или моментальные снимки данных хранилища дисков с помощью таких решений, как Velero или Azure Backup , которые могут использовать встроенные технологии моментальных снимков.

Оба класса хранилища поддерживаются управляемыми дисками и используют диски ssd. Важно понимать различия между дисками уровня "Стандартный" и "Премиум":

  • Стандартные диски оцениваются по размеру и транзакциям хранилища.
  • Диски уровня "Премиум" взимается только по размеру, что может сделать их дешевле для рабочих нагрузок, требующих большого количества транзакций.
  • Диски SSD уровня "Премиум" обеспечивают более высокую максимальную пропускную способность и операции ввода-вывода в секунду, как показано в этом сравнении.
  • Хранилище класса Premium рекомендуется для большинства рабочих нагрузок и рабочих нагрузок разработки.

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

Диски SSD уровня "Премиум" для Azure уровня "Премиум" версии 2

Диски SSD уровня "Премиум" версии 2 предлагают рабочие нагрузки , интенсивные операции ввода-вывода в секунду, согласованную задержку на диске подмиллисекунда, а также высокую пропускную способность и пропускную способность. Производительность (емкость, пропускная способность и количество операций ввода-вывода в секунду) дисков SSD (цен. категории "Премиум") версии 2 можно настроить независимо в любое время, что упрощает выполнение большего количества сценариев с точки зрения экономической эффективности при соблюдении требований к производительности. Дополнительные сведения о настройке нового или существующего кластера AKS для использования дисков SSD azure premium версии 2 см. в разделе "Использование дисков SSD уровня "Премиум" azure уровня "Премиум" версии 2 на Служба Azure Kubernetes.

Хранилище дисков (цен. категория "Ультра")

Хранилище дисков ценовой категории "Ультра" — это управляемый диск Azure, который обеспечивает высокую пропускную способность, высокий объем операций ввода-вывода в секунду и согласованное хранилище дисков с низкой задержкой для виртуальных машин Azure. Хранилище дисков категории "Ультра" предназначено для рабочих нагрузок, которые являются большими данными и транзакциями. Как и другие номера SKU дискового хранилища и Amazon EBS, хранилище дисков категории "Ультра" подключает один модуль pod одновременно и не предоставляет одновременный доступ.

Используйте флаг --enable-ultra-ssd , чтобы включить хранилище дисков ultra в кластере AKS.

Если выбрать хранилище дисков категории "Ультра", помните об ограничениях и убедитесь, что размер совместимой виртуальной машины выбран. Хранилище дисков категории "Ультра" доступно с локально избыточной репликацией хранилища (LRS).

Принести собственные ключи (BYOK)

Azure шифрует все данные на неактивных дисках. По умолчанию данные шифруются с помощью ключей, управляемых Майкрософт. Для дополнительного контроля над ключами шифрования можно предоставить ключи, управляемые клиентом. С их помощью можно шифровать неактивные данные в операционной системе и дисках кластеров AKS. Дополнительные сведения см. в статье "Перенос собственных ключей( BYOK) с управляемыми дисками Azure в Служба Azure Kubernetes (AKS)".

Файлы Azure

Дисковое хранилище не может предоставить одновременный доступ к тому, но вы можете использовать Файлы Azure для подключения с помощью протокола SMB, а затем подключить общий том, поддерживаемый служба хранилища Azure. Этот процесс предоставляет подключенное к сети хранилище, аналогичное Amazon EFS. Как и в случае с хранилищем дисков, существует два варианта:

  • Файлы Azure хранилище уровня "Стандартный" поддерживается обычными жесткими дисками (HDD).
  • Файлы Azure хранилище класса Premium поддерживает общую папку с высокопроизводительными дисками SSD. Минимальный размер общей папки для Premium составляет 100 ГБ.

Файлы Azure имеет следующие параметры репликации учетной записи хранения для защиты данных в случае сбоя:

Чтобы оптимизировать затраты на Файлы Azure, приобретите резервирования Файлы Azure емкости.

Хранилище контейнеров Azure

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

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

  • Диски Azure: детальный контроль номеров SKU и конфигураций хранилища. Они подходят для баз данных уровня 1 и общего назначения.
  • Временные диски: использует локальные ресурсы хранилища на узлах AKS (NVMe или temp SSD). Лучше всего подходит для приложений без необходимости обеспечения устойчивости данных или встроенной поддержки репликации данных. AKS обнаруживает доступное эфемерное хранилище на узлах AKS и получает их для развертывания томов.
  • Azure Elastic SAN: подготовка полностью управляемого ресурса по запросу. Подходит для баз данных общего назначения, служб потоковой передачи и обмена сообщениями, сред CD/CI и других рабочих нагрузок уровня 1/2. Несколько кластеров могут одновременно получить доступ к одной сети SAN, однако постоянные тома могут быть подключены только одним потребителем одновременно.

До сих пор предоставление облачного хранилища для контейнеров, необходимых для использования отдельных драйверов интерфейса хранилища контейнеров (CSI) для использования служб хранилища, предназначенных для рабочих нагрузок, ориентированных на IaaS, и сделать их работой для контейнеров. Это создает операционные издержки и повышает риск проблем с доступностью приложений, масштабируемостью, производительностью, удобством использования и затратами.

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

Хранилище контейнеров Azure подходит в следующих сценариях:

  • Ускорение инициатив между виртуальными машинами и контейнерами. Хранилище контейнеров Azure предоставляет полный спектр предложений хранилища блоков Azure, которые ранее были доступны только для виртуальных машин и делают их доступными для контейнеров. Это включает в себя временный диск, обеспечивающий очень низкую задержку для рабочих нагрузок, таких как Cassandra, а также Azure Elastic SAN, предоставляющий собственные целевые объекты iSCSI и общие подготовленные целевые объекты.

  • Упрощение управления томами с помощью Kubernetes: обеспечивая оркестрацию томов с помощью плоскости управления Kubernetes, хранилище контейнеров Azure упрощает развертывание томов в Kubernetes и управление ими без необходимости перемещаться между различными плоскостями управления.

  • Уменьшите общую стоимость владения (TCO): повысить эффективность затрат, увеличив масштаб постоянных томов, поддерживаемых для каждого модуля pod или узла. Уменьшите ресурсы хранилища, необходимые для подготовки, динамически предоставляя общий доступ к ресурсам хранилища. Обратите внимание, что поддержка масштабирования самого пула носителей не поддерживается.

Хранилище контейнеров Azure обеспечивает следующие ключевые преимущества:

  • Быстрое масштабирование модулей pod с отслеживанием состояния: хранилище контейнеров Azure подключает постоянные тома через протоколы хранилища сетевых блоков (NVMe-oF или iSCSI), предлагая быстрое подключение и отключение постоянных томов. При необходимости можно запускать небольшие и развертывать ресурсы, убедившись, что приложения не голодают или не нарушаются либо во время инициализации, либо в рабочей среде. Устойчивость приложений улучшается с помощью модулей pod respawns в кластере, требуя быстрого перемещения постоянных томов. Использование протоколов удаленной сети, хранилище контейнеров Azure тесно связывается со жизненным циклом pod для поддержки высоконадежных высокомасштабных приложений с отслеживанием состояния в AKS.

  • Улучшенная производительность рабочих нагрузок с отслеживанием состояния: хранилище контейнеров Azure обеспечивает более высокую производительность чтения и обеспечивает производительность записи почти на диске с помощью NVMe-oF по протоколу RDMA. Это позволяет клиентам эффективно соответствовать требованиям к производительности для различных рабочих нагрузок контейнеров, включая интенсивный ввод-вывод уровня 1, общую цель, учетную пропускную способность и тестирование. Ускорьте время подключения и отсоединения постоянных томов и свести к минимуму время отработки отказа pod.

  • Оркестрация томов в собственном коде Kubernetes: создание пулов носителей и постоянных томов, создание моментальных снимков и управление всем жизненным циклом томов с помощью kubectl команд без переключения между наборами инструментов для различных операций уровня управления.

Azure NetApp Files

Как и AWS NetApp ONTAP, Azure NetApp Files — это корпоративная, высокопроизводительная служба хранилища файлов с лимитным уровнем производительности. Azure NetApp Files полностью управляется в Azure с помощью решений NetApp. Как и Файлы Azure, Azure NetApp Files позволяет нескольким модулям pod подключать том. Вы можете использовать Astra Trident, оркестратор динамического хранилища с открытым кодом для Kubernetes, чтобы настроить кластер AKS для использования Azure NetApp Files.

Помните об ограничениях ресурсов для Azure NetApp Files. Минимальный размер пула емкости для Azure NetApp Files составляет 4 ТиБ. Плата за Azure NetApp Files взимается по подготовленному размеру, а не используемой емкости.

Azure HPC Cache

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

Сервер NFS

Лучший вариант для общего доступа к NFS — использовать Файлы Azure или Azure NetApp Files. Вы также можете создать сервер NFS на виртуальной машине Azure, которая экспортирует тома.

Помните, что этот параметр поддерживает только статическую подготовку. Необходимо вручную подготовить общие папки NFS на сервере и не удается сделать это из AKS автоматически.

Это решение основано на инфраструктуре как услуга (IaaS), а не на платформе как услуга (PaaS). Вы отвечаете за управление сервером NFS, включая обновления ОС, высокий уровень доступности, резервные копии, аварийное восстановление и масштабируемость.

Временный диск ОС

По умолчанию Azure автоматически реплицирует диск операционной системы для виртуальной машины, чтобы служба хранилища Azure, чтобы избежать потери данных при перемещении виртуальной машины на другой узел. Однако, так как контейнеры не предназначены для сохранения локального состояния, это поведение обеспечивает ограниченное значение, предоставляя некоторые недостатки. К этим недостаткам относятся, но они не ограничиваются, более медленной подготовкой узлов и более высокой задержкой чтения и записи.

Напротив, временные диски ОС хранятся только на предоставляющем удаленный доступ компьютере — фактически как на временном диске. Благодаря этой конфигурации вы получаете более низкую задержку чтения и записи вместе с более быстрым масштабированием узлов и обновлениями кластера.

Примечание.

Если вы явно не запрашиваете управляемые диски Azure для ОС, AKS по умолчанию использует эфемерную ОС, если это возможно для заданной конфигурации пула узлов.

Дополнительные сведения см. в разделе:

Сторонние решения

Как и Amazon EKS, AKS — это реализация Kubernetes, и вы можете интегрировать сторонние решения для хранения Kubernetes. Ниже приведены некоторые примеры сторонних решений хранения для Kubernetes:

  • Новичок превращает распределенные системы хранения в автономные службы хранения, автоматив задачи администратора хранилища. Новичок предоставляет свои службы через оператор Kubernetes для каждого поставщика хранилища.
  • GlusterFS — это бесплатная масштабируемая сетевая файловая система с открытым исходным кодом, которая использует общее аппаратное обеспечение вне полки для создания больших распределенных решений хранилища для задач с большим объемом данных и пропускной способности.
  • Ceph предоставляет надежную и масштабируемую унифицированную службу хранилища с объектами, блоками и файловыми интерфейсами из одного кластера, созданного из сырьевых аппаратных компонентов.
  • Хранилище объектов MinIO multicloud позволяет предприятиям создавать инфраструктуру данных, совместимую с AWS S3, в любом облаке, обеспечивая согласованный, переносимый интерфейс для данных и приложений.
  • Portworx — это комплексное решение для хранения и управления данными для проектов Kubernetes и инициатив на основе контейнеров. Portworx предлагает детальное хранилище контейнеров, аварийное восстановление, безопасность данных и многооблачные миграции.
  • Quobyte предоставляет высокопроизводительное хранилище файлов и объектов, которые можно развернуть на любом сервере или облаке для масштабирования производительности, управления большими объемами данных и упрощения администрирования.
  • Ondat обеспечивает согласованный уровень хранения на любой платформе. Базу данных или любую постоянную рабочую нагрузку можно запустить в среде Kubernetes без необходимости управлять уровнем хранения.

Рекомендации по хранилищу Kubernetes

При выборе решения для хранения для Amazon EKS или AKS следует учитывать следующие факторы.

Режимы доступа класса хранилища

В Kubernetes версии 1.21 и более поздних версиях классы хранилища AKS и Amazon EKS используют только драйверы интерфейса хранилища контейнеров (CSI) и по умолчанию.

Различные службы поддерживают классы хранилища с различными режимами доступа.

Service ReadWriteOnce ReadOnlyMany ReadWriteMany
Диски Azure X
Файлы Azure X X X
Azure NetApp Files X X X
Сервер NFS X X X
Azure HPC Cache X X X

Динамическая и статическая подготовка

Динамически подготавливать тома для уменьшения затрат на управление статическим созданием постоянных томов. Задайте правильную политику восстановления, чтобы избежать неиспользуемых дисков при удалении модулей pod.

Резервное копирование

Выберите средство для резервного копирования постоянных данных. Средство должно соответствовать типу хранилища, таким как моментальные снимки, Azure Backup, Velero или Kasten.

Оптимизация затрат

Чтобы оптимизировать затраты служба хранилища Azure, используйте резервирования Azure. Обязательно проверьте , какие службы поддерживают резервирования Azure. См. также раздел "Управление затратами" для кластера Kubernetes.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Основные авторы:

Другие участники:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

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