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 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
- Necesita un clúster de AKS existente con la integración de ACR. Si no tiene ninguno, puede crearlo según la información descrita en Autenticación con ACR desde AKS.
- Habilitar el streaming de artefactos en ACR
- Esta característica requiere la versión 1.25 o posterior de Kubernetes. Para comprobar la versión del clúster de AKS, consulte Comprobación de actualizaciones de clúster de AKS disponibles.
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
Instale la extensión
aks-preview
de la CLI mediante el comandoaz extension add
.az extension add --name aks-preview
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 comandoaz 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.
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
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
Configure la instancia de ACR predeterminada para la suscripción mediante el comando
az configure
.az configure --defaults acr="mystreamingtest"
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 --repository jupyter/all-spark-notebook:latest
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
Compruebe el streaming de artefactos generado mediante el comando
az acr manifest list-referrers
.az acr manifest list-referrers --name 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 entrue
.
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.
Azure Kubernetes Service