Compruebe la conexión al registro de contenedor.
Este artículo forma parte de una serie. Comience con la información general.
Para implementar correctamente aplicaciones en contenedor en el clúster de Azure Kubernetes Service (AKS), es esencial comprobar la conectividad entre el clúster y el registro de contenedor. Este paso garantiza que los nodos de trabajo tienen los permisos necesarios para extraer las imágenes de contenedor necesarias del registro.
Identificación de síntomas
Cuando se ejecuta el kubelet en un nodo agente para crear los contenedores de un pod, uno o varios contenedores pueden acabar en estado de espera debido al errorImagePullBackOff
. ImagePullBackoff es un mensaje de error común en Kubernetes que indica un error al extraer la imagen de contenedor necesaria de un registro público o privado. Varios factores pueden provocar este error, incluidos los problemas de conectividad de red, un nombre o etiqueta de imagen incorrectos, permisos insuficientes o credenciales que faltan.
La parte BackOff
del estado indica que Kubernetes intenta extraer continuamente la imagen con un retraso creciente entre cada intento posterior. El retraso aumenta gradualmente hasta que alcanza un límite predeterminado, que normalmente se establece en 300 segundos (5 minutos) en Kubernetes.
Es importante comprobar el registro y el nombre de la imagen para obtener precisión. Además, asegúrese de que el clúster de AKS tiene los permisos necesarios para extraer imágenes del registro de contenedor adecuado.
Asignaciones de roles
Al adjuntar un registro de contenedor a un clúster de AKS existente, el Rol AcrPull se asigna automáticamente a través del registro a la identidad administrada de Microsoft Entra asociada a los grupos de agentes del clúster de AKS. Para obtener más información, consulte Autenticación con Container Registry desde AKS.
Ejecute el siguiente comando para recuperar la identidad administrada kubelet de un clúster Kubernetes y sus asignaciones de roles actuales:
# Get the kubelet managed identity.
ASSIGNEE=$(az aks show -g $RESOURCE_GROUP -n $NAME --query identityProfile.kubeletidentity.clientId -o tsv)
az role assignment list --assignee $ASSIGNEE --all -o table
Ejecute el siguiente comando para asignar el rol AcrPull
a la identidad administrada de kubelet:
AZURE_CONTAINER_REGISTRY_ID=$(az acr show --name <container-registry-name> --query id --output tsv)
az role assignment create --assignee $ASSIGNEE --scope $AZURE_CONTAINER_REGISTRY_ID --role acrpull
Solución de problemas de Container Registry
En las secciones siguientes se proporcionan guías a las que puede hacer referencia si encuentra problemas de red, inicio de sesión o rendimiento con un registro de contenedor de Azure.
Solución de problemas de red
Si tiene problemas relacionados con el acceso a un registro de contenedor de Azure en una red virtual o detrás de un firewall o servidor proxy, tenga en cuenta las siguientes soluciones:
- Configure el acceso al firewall de cliente.
- Configure el acceso público al registro.
- Configure el acceso a la red virtual.
- Configure el acceso para los servicios.
Solución de problemas con el inicio de sesión
Si encuentra problemas de autenticación y autorización al iniciar sesión en un registro de contenedor de Azure, tenga en cuenta las siguientes soluciones:
- Compruebe la configuración de Docker en su entorno.
- Especifique el nombre del registro correcto.
- Compruebe las credenciales para acceder al registro.
- Configure el acceso público para el registro.
- Solución de problemas de inicio de sesión del registro.
- Comprobar que las credenciales no hayan expirado
Solución de problemas de rendimiento
Si tiene problemas de rendimiento con un registro de contenedor de Azure, tenga en cuenta las siguientes soluciones:
- Habilite la caché de artefactos.
- Compruebe la velocidad de conexión de red.
- Inspeccione el hardware de cliente que pueda afectar a la compresión o la velocidad de extracción de la capa de imagen.
- Revise los límites configurados en el nivel de servicio del registro o en el entorno.
- Configure el registro con replicación geográfica para obtener un rendimiento óptimo con réplicas en regiones cercanas.
- Optimice la configuración de DNS para extraer de una réplica del registro geográficamente distante.
Estas guías pueden ayudarle a garantizar una recuperación de imágenes sin problemas para el clúster de AKS y garantizar un funcionamiento sin problemas de las cargas de trabajo.
Integración de un registro de contenedor de terceros
Al usar un registro de contenedor de terceros, debe crear las credenciales adecuadas ImagePullSecret
del registro para que el clúster de AKS pueda acceder de forma segura a las imágenes de contenedor. Para más información, consulte Creación de un secreto de extracción de imágenes. Asegúrese de configurar los permisos y las credenciales correctos para que pueda comprobar la conexión al registro de contenedor y permitir que el clúster de AKS extraiga correctamente las imágenes de contenedor necesarias durante las implementaciones. Este procedimiento recomendado ayuda a garantizar una ejecución fluida y confiable de las cargas de trabajo en contenedor en Kubernetes.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Creadores de entidad de seguridad:
- Paolo Salvatori | Ingeniero principal de clientes
- Francis Simy Nazareth | Especialista técnico sénior
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.