Сокращение времени извлечения изображения с помощью потоковой передачи артефактов на Служба Azure Kubernetes (AKS) (предварительная версия)
Высокопроизводительные вычислительные рабочие нагрузки часто включают большие образы, что может привести к длительному времени извлечения изображений и замедлению развертывания рабочей нагрузки. Потоковая передача артефактов в AKS позволяет передавать образы контейнеров из Реестр контейнеров Azure (ACR) в AKS. AKS извлекает только необходимые слои для начального запуска pod, уменьшая время, необходимое для извлечения образов и развертывания рабочих нагрузок.
Потоковая передача артефактов может сократить время до готовности pod к более чем 15%, в зависимости от размера изображения, и лучше всего подходит для изображений <30 ГБ. На основе нашего тестирования мы видели сокращение времени запуска pod для изображений <10 ГБ от минут до секунд. Если у вас есть модуль pod, которому требуется доступ к большому файлу (>30 ГБ), необходимо подключить его в виде тома, а не создавать его как слой. Это связано с тем, что если в модуле pod требуется запустить этот файл, он замечает узел. Потоковая передача артефактов не идеально подходит для чтения тяжелых изображений из файловой системы, если это необходимо при запуске. При потоковой передаче артефактов запуск pod становится параллельным, тогда как без него модули pod начинаются в последовательном режиме.
В этой статье описывается, как включить функцию потоковой передачи артефактов в пулах узлов AKS для потоковой передачи артефактов из ACR.
Внимание
Предварительные версии функций AKS доступны на уровне самообслуживания. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS предоставляются с частичной клиентской поддержкой по мере возможности. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.
Необходимые компоненты
- Вам нужен существующий кластер AKS с интеграцией ACR. Если у вас его нет, его можно создать с помощью проверки подлинности с помощью ACR из AKS.
- Включите потоковую передачу артефактов в ACR.
- Для этой функции требуется Kubernetes версии 1.25 или более поздней. Сведения о проверке версии кластера AKS см. в разделе "Проверка доступных обновлений кластера AKS".
Примечание.
Потоковая передача артефактов поддерживается только в пулах узлов Ubuntu 22.04, Ubuntu 20.04 и Azure Linux. Пулы узлов Windows не поддерживаются.
aks-preview
Установка расширения CLI
aks-preview
Установите расширение CLI с помощьюaz extension add
команды.az extension add --name aks-preview
Обновите расширение, чтобы убедиться, что установлена последняя версия с помощью
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.
Создайте группу ресурсов Azure для хранения экземпляра
az group create
ACR с помощью команды.az group create --name myStreamingTest --location westus
Создайте новый номер SKU уровня "Премиум" Реестр контейнеров Azure с помощью
az acr create
команды с флагом--sku Premium
.az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
Настройте экземпляр ACR по умолчанию для подписки с помощью
az configure
команды.az configure --defaults acr="mystreamingtest"
Отправьте или импортируйте образ в реестр с помощью
az acr import
команды.az acr import --source docker.io/jupyter/all-spark-notebook:latest --repository jupyter/all-spark-notebook:latest
Создайте артефакт потоковой передачи из образа с помощью
az acr artifact-streaming create
команды.az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
Проверьте созданную потоковую передачу артефактов с помощью
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 с включенной потоковой передачей артефактов, все новые развертывания 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.
Azure Kubernetes Service