Reducción del tiempo de extracción de imágenes con el streaming de artefactos en Azure Kubernetes Service (AKS) (versión preliminar)

Las cargas de trabajo de informática de alto rendimiento suelen implicar imágenes grandes, lo que puede provocar tiempos de extracción de imágenes largos y ralentizar las implementaciones de las cargas de trabajo. El streaming de artefactos en AKS permite transmitir imágenes de contenedor desde Azure Container Registry (ACR) a AKS. AKS solo extrae las capas necesarias para el inicio del pod original, lo que reduce el tiempo necesario para extraer imágenes e implementar las cargas de trabajo.

El streaming de artefactos puede reducir el tiempo de preparación del pod en más del 15 %, dependiendo del tamaño de la imagen, y funciona mejor para las imágenes de <30 GB. Tras realizar nuestras pruebas, observamos una reducción del tiempo de inicio del pod para las imágenes de <10 GB de minutos a segundos. Si tiene un pod que necesita acceso a un archivo grande (>30 GB), debe montarlo como un volumen en lugar de compilarlo como una capa. Esto se debe a que si el pod requiere ese archivo para iniciarse, congestiona el nodo. El streaming de artefactos no es ideal para leer imágenes pesadas del sistema de archivos si lo necesita durante el inicio. Con el streaming de artefactos, el inicio del pod se realiza de forma simultánea, mientras que sin él, los pods se inician en serie.

En este artículo se describe cómo habilitar la característica de streaming de artefactos en los grupos de nodos de AKS para transmitir artefactos desde ACR.

Importante

Las características en versión preliminar de AKS están disponibles como opción de participación y autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de AKS reciben cobertura parcial del soporte al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:

Requisitos previos

Nota:

El streaming de artefactos solo es compatible con los grupos de nodos de Ubuntu 22.04, Ubuntu 20.04 y Azure Linux. No se admiten los grupos de nodos de Windows.

Instalación de la extensión aks-preview de la CLI

  1. Instale la extensión aks-preview de la CLI mediante el comando az extension add.

    az extension add --name aks-preview
    
  2. Actualice la extensión para asegurarse de que tiene instalada la última versión mediante el comando az extension update.

    az extension update --name aks-preview
    

Registro de la marca de características ArtifactStreamingPreview en su suscripción

  • Registre la marca de características ArtifactStreamingPreview en su suscripción con el comando az feature register.

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

Habilitar el streaming de artefactos en ACR

La habilitación en ACR es un requisito previo para el streaming de artefactos en AKS. Para más información, consulte Streaming de artefactos en ACR.

  1. Cree un grupo de recursos de Azure para que aloje su instancia de ACR mediante el comando az group create.

    az group create --name myStreamingTest --location westus
    
  2. Cree una SKU Premium de Azure Container Registry mediante el comando az acr create con la marca --sku Premium.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Configure la instancia de ACR predeterminada para la suscripción mediante el comando az configure.

    az configure --defaults acr="mystreamingtest"
    
  4. Inserte o importe una imagen en el Registro mediante el comando az acr import.

    az acr import --source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest
    
  5. Cree un artefacto de streaming a partir de la imagen mediante el comando az acr artifact-streaming create.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Compruebe el streaming de artefactos generado mediante el comando az acr manifest list-referrers.

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

Habilitar el streaming de artefactos en AKS

Habilitar el streaming de artefactos en un grupo de nodos nuevo

  • Cree un grupo de nodos con el streaming de artefactos habilitado mediante el comando az aks nodepool add con la marca --enable-artifact-streaming.

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

Habilitación del streaming de artefactos en un grupo de nodos existente

  • Actualice un grupo de nodos existente para habilitar el streaming de artefactos mediante el comando az aks nodepool update con --enable-artifact-streaming.

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

Comprobar si el streaming está habilitado

Ahora que ha habilitado el streaming de artefactos en un ACR prémium y lo ha conectado a un grupo de nodos de AKS con el streaming de artefactos habilitado, las nuevas implementaciones de pods de este clúster con una extracción de imágenes de ACR con el streaming de artefactos habilitado experimentarán reducciones en los tiempos de extracción de imágenes.

  • Compruebe si el grupo de nodos tiene el streaming de artefactos habilitado mediante el comando az aks nodepool show.

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

    En la salida, compruebe que el campo Enabled está establecido en true.

Pasos siguientes

En este artículo se describe cómo habilitar el streaming de artefactos en los grupos de nodos de AKS para transmitir artefactos desde ACR y reducir el tiempo de extracción de imágenes. Para más información sobre cómo trabajar con imágenes de contenedor en AKS, consulte Procedimientos recomendados para la administración y la protección de las imágenes de contenedor en AKS.