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

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

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

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

Важно!

Предварительные версии функций AKS доступны на уровне самообслуживания. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии 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 с помощью команды.

    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 -t 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 -n 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 с включенной потоковой передачей артефактов, все новые развертывания pod в этом кластере с включением извлечения изображения из 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.