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


Сократите время извлечения образов с помощью потоковой передачи артефактов в Azure Kubernetes Service (AKS) (предварительная версия)

Высокопроизводительные вычислительные рабочие нагрузки часто включают большие образы, что может привести к длительному времени извлечения изображений и замедлению развертывания рабочей нагрузки. Потоковая передача артефактов в AKS позволяет передавать образы контейнеров из Реестр контейнеров Azure (ACR) в AKS. AKS извлекает только необходимые слои для начального запуска pod, уменьшая время, необходимое для извлечения образов и развертывания рабочих нагрузок.

Потоковая передача артефактов может сократить время до готовности pod к более чем 15%, в зависимости от размера изображения, и лучше всего подходит для изображений <30 ГБ. На основе нашего тестирования мы видели сокращение времени их запуска от минут до секунд для изображений размером <10 ГБ. Если у вас есть модуль pod, которому требуется доступ к большому файлу (>30 ГБ), необходимо подключить его в виде тома, а не создавать его как слой. Это связано с тем, что если вашему pod требуется этот файл для запуска, он перегружает узел. Потоковая передача артефактов не идеально подходит для чтения тяжелых изображений из файловой системы, если это необходимо при запуске. При потоковой передаче артефактов запуск подов становится параллельным, тогда как без неё поды запускаются последовательно.

В этой статье описывается, как включить функцию потоковой передачи артефактов в пулах узлов AKS для потоковой передачи артефактов из ACR.

Внимание

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

Внимание

Начиная с 30 ноября 2025 г. служба Azure Kubernetes (AKS) больше не поддерживает или предоставляет обновления безопасности для Azure Linux 2.0. Образ узла Linux 2.0 Azure заморожен в выпуске 202512.06.0. Начиная с 31 марта 2026 г. образы узлов будут удалены, и вы не сможете масштабировать пулы узлов. Выполните миграцию в поддерживаемую версию Linux Azure, обновив пулы узлов до поддерживаемой версии Kubernetes или переключив ее на osSku AzureLinux3. Дополнительные сведения см. в вопросе о прекращении поддержки на GitHub и объявлении об устаревании обновлений Azure. Чтобы оставаться в курсе объявлений и обновлений, следуйте заметкам о выпуске AKS.

Внимание

Начиная с 15 июля 2025 г. служба Azure Kubernetes (AKS) больше не поддерживает телепорт (предварительная версия) в AKS. После этой даты пулы узлов AKS с включенным Teleport могут столкнуться с нарушениями и сбоями при подготовке узлов. Реестр контейнеров Azure удалил API Телепорт, что означает, что все узлы с включенным Телепорт будут извлекать образы из реестра контейнеров Azure так же, как и любой другой узел AKS без Телепорта. Переходите на стриминг артефактов (предварительная версия) или обновите пулы узлов, чтобы задать --aks-custom-headers EnableACRTeleport=false. Для получения дополнительной информации об этом снятии с поддержки, см. соответствующую проблему на GitHub. Чтобы оставаться в курсе объявлений и обновлений, следуйте заметкам о выпуске AKS.

Ограничения

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

Примечание.

Потоковая трансляция артефактов поддерживается только на Ubuntu 22.04, Ubuntu 20.04 и в пулах узлов Azure Linux. Пулы узлов Windows не поддерживаются.

aks-preview Установка расширения CLI

  1. aks-preview Установите расширение CLI с помощью az extension add команды.

    az extension add --name aks-preview
    
  2. Обновите расширение, чтобы убедиться, что установлена последняя версия с помощью az extension update команды.

    az extension update --name aks-preview
    

Зарегистрируйте флаг функции ArtifactStreamingPreview в вашей подписке

  • Зарегистрируйте флаг функции в вашей подписке с помощью команды ArtifactStreamingPreview.

    az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
    

Включение потоковой передачи артефактов в ACR

Настройка на ACR является обязательным условием для потоковой передачи артефактов в AKS. Дополнительные сведения см. в статье "Потоковая передача артефактов" в ACR.

  1. Создайте группу ресурсов Azure с помощью команды az group create, чтобы содержать экземпляр ACR.

    az group create --name myStreamingTest --location westus
    
  2. Создайте новый номер SKU уровня "Премиум" Реестр контейнеров Azure с помощью az acr create команды с флагом--sku Premium.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Настройте экземпляр ACR по умолчанию для подписки, используя команду az configure.

    az configure --defaults acr="mystreamingtest"
    
  4. Отправьте или импортируйте образ в реестр с помощью az acr import команды.

    az acr import --source docker.io/jupyter/all-spark-notebook:latest --repository jupyter/all-spark-notebook:latest
    
  5. Создайте артефакт потоковой передачи из образа с помощью команды az acr artifact-streaming create.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Проверьте созданную потоковую передачу артефактов с помощью az acr manifest list-referrers команды.

    az acr manifest list-referrers --name jupyter/all-spark-notebook:latest
    

Включение потоковой передачи артефактов в AKS

Включение потоковой передачи артефактов в новом пуле узлов

  • Создайте новый пул узлов с поддержкой потоковой передачи артефактов, используя команду az aks nodepool add с --enable-artifact-streaming.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

Включение потоковой передачи артефактов в существующем пуле узлов

  • Обновите существующий пул узлов, чтобы включить потоковую передачу артефактов с помощью команды az aks nodepool update и --enable-artifact-streaming.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

Проверьте, включена ли потоковая передача артефактов

Теперь, когда вы включили потоковую передачу артефактов в ACR уровня "Премиум" и подключили её к пулу узлов AKS с включённой потоковой передачей артефактов, все новые развертывания pods в этом кластере, использующие вытягивание изображения из ACR с включенной потоковой передачей артефактов, будут сокращать время извлечения изображения.

  • Проверьте, включена ли функция потоковой передачи артефактов в пуле узлов, с помощью команды az aks nodepool show.

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name myNodePool --query artifactStreamingProfile
    

    В выходных данных убедитесь, что поле Enabled установлено на true.

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

В этой статье описано, как включить потоковую передачу артефактов в пулах узлов AKS для потоковой передачи артефактов из ACR и уменьшения времени извлечения изображения. Дополнительные сведения о работе с образами контейнеров в AKS см. в рекомендациях по управлению образами контейнеров и безопасности в AKS.