Обзор потоковой передачи артефактов в Azure Kubernetes Service (AKS)

В этой статье представлен обзор потоковой передачи артефактов на Azure Kubernetes Service (AKS) с Реестр контейнеров Azure (ACR). Artifact Streaming обеспечивает потоковую передачу образов контейнеров из ACR в AKS, поэтому при первоначальном запуске пода загружаются только необходимые слои. Эта функция сокращает время, необходимое для развертывания рабочих нагрузок.

Как работает потоковая передача артефактов?

В стандартном запуске контейнера Kubernetes загружает все слои образов до запуска рабочей нагрузки. Этот процесс может занять время для больших образов или при запуске нескольких модулей pod.

Потоковая передача артефактов в AKS меняет этот механизм, загружая только слои, необходимые для первоначального запуска модуля. Среда выполнения позже получает оставшиеся данные по мере необходимости. Эта возможность использует OverlayBD, который преобразует слои образов контейнера в виртуальное блочное устройство. Во время выполнения возможен доступ к данным на уровне блоков без скачивания полного образа. При использовании этого подхода вы получаете только те блоки, к которым обращаются при запуске и во время выполнения. Если приложение использует только часть изображения, извлекается только эта часть.

Note

Потоковая передача артефактов в AKS поддерживает только загрузку образов по тегу.

Artifact Streaming работает следующим образом: запросы на получение образов по тегу преобразуются в потоковый вариант образа. Если вы используете дайджест для загрузки образов, вы не можете использовать Artifact Streaming.

Преимущества и варианты использования

С помощью потоковой передачи артефактов в AKS можно:

  • Развертывание контейнерных приложений в нескольких регионах: потоковая передача образов контейнеров из одного реестра контейнеров Azure в кластеры AKS в разных регионах. Этот подход сокращает время и ресурсы, необходимые для репликации изображений.
  • Сократите время до готовности подов: запускайте поды до полной загрузки образа, что может сократить время до готовности подов (особенно для больших образов).
  • Повышение эффективности масштабирования. Поддержка крупномасштабных развертываний путем уменьшения задержек запуска при создании или масштабировании нескольких модулей pod.
  • Оптимизация запуска при использовании больших образов: сокращение времени инициализации для рабочих нагрузок, которым при запуске не нужны все слои образа, таких как контейнеризованные приложения с состоянием (например, приложения на Java или C#) или рабочие нагрузки с зависимостями, встроенными в образ, которые не требуются сразу при запуске пода.

Considerations

При использовании потоковой передачи артефактов в AKS следует учитывать следующие рекомендации.

  • Образы, требующие интенсивного чтения и которым при запуске нужно считывать файл, не выигрывают от Artifact Streaming. Если у вас есть pod, которому нужен доступ к большому файлу (>30 ГБ), смонтируйте его как том вместо того, чтобы включать его в слой. Если вашему поду для запуска требуется этот файл, он перегружает узел.
  • Вы можете включить Artifact Streaming для определённых репозиториев или тегов в новых или существующих реестрах контейнеров.
  • Вы можете хранить в ACR как исходный артефакт, так и потоковый артефакт, запустив Artifact Streaming.
  • Вы можете получить доступ к исходному артефакту и его потоковой версии даже после отключения потоковой передачи артефактов для репозиториев или артефактов.
  • Если вы включите Artifact Streaming и Soft Delete и удалите репозиторий или артефакт, то будут удалены как исходная версия, так и версия Artifact Streaming. Однако на портале мягкого удаления доступна только исходная версия.

Чтобы приступить к работе с потоковой передачей артефактов в AKS, см. раздел "Включить потоковую передачу артефактов" на Azure Kubernetes Service (AKS) с помощью Реестр контейнеров Azure (ACR).