Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo resolver un error de tiempo de espera de E/S que se produce al intentar acceder a Azure Container Registry para extraer una imagen de contenedor o un artefacto.
Síntomas
Aparece el siguiente mensaje de error:
error al extraer la configuración de la imagen: error de descarga después de los intentos=6: marcado tcp <storage-endpoint-ip-address>:443: tiempo de espera de e/s
Causa 1: El puerto 443 no está disponible en el punto de conexión de almacenamiento (datos)
Nota:
No suponga que la dirección IP del punto de conexión de almacenamiento que se muestra en el mensaje de error es la dirección IP que siempre se usa durante las operaciones de extracción. Otras direcciones IP también están implicadas y tiene que permitir el tráfico en consecuencia. Se recomienda no permitir el tráfico en función de direcciones IP específicas. Esto se debe a que las direcciones IP son dinámicas y cambia la lista de direcciones IP usadas. Se recomienda permitir el <storage-account-name>.blob.core.windows.net
dominio. Como alternativa, puede usar puntos de conexión de datos de Azure Container Registry y permitir esos puntos de conexión de datos en las reglas de red de cliente. Si (y solo si) no hay ninguna otra opción, se recomienda permitir el tráfico en función de las direcciones IP.
Azure asigna blob Storage en cuentas de Azure Storage en nombre de cada registro para administrar datos para imágenes de contenedor y otros artefactos. Cuando un cliente accede a las capas de imagen de un registro de contenedor, realiza solicitudes mediante un punto de conexión de cuenta de almacenamiento que proporciona el registro.
El nombre de dominio del punto de conexión de almacenamiento predeterminado (datos) depende de si usa puntos de conexión de datos dedicados, como se muestra en la tabla siguiente.
¿Puntos de conexión de datos dedicados en uso? | Formato de nombre de dominio del punto de conexión de almacenamiento predeterminado (datos) |
---|---|
Sí | <container-registry-name>.<region-name>.data.azurecr.io |
No | <storage-account-name>.blob.core.windows.net |
Para probar manualmente la conectividad entre el dispositivo y el punto de conexión de almacenamiento (datos) en el puerto 443, ejecute el comando telnet o NetCat. Si se usan puntos de conexión de datos dedicados, elija uno de los siguientes comandos:
Comando Telnet:
telnet <container-registry-name>.<region-name>.data.azurecr.io 443
Comando NetCat:
nc -vz <container-registry-name>.<region-name>.data.azurecr.io 443
Si no se usan puntos de conexión de datos dedicados, elija uno de los siguientes comandos:
Comando Telnet:
telnet <storage-account-name>.blob.core.windows.net 443
Comando NetCat:
nc -vz <storage-account-name>.blob.core.windows.net 443
Solución 1: Hacer que el puerto 443 esté disponible para la comunicación entre el dispositivo y el punto de conexión de almacenamiento (datos)
Asegúrese de que hay conectividad de red entre el dispositivo y el punto de conexión de almacenamiento (datos) a través del puerto 443.
Si el dispositivo forma parte de una arquitectura de red restringida, asegúrese de que tiene conectividad de red con el punto de conexión de almacenamiento (datos) a través del puerto 443. Puede considerar la posibilidad de comprobar posibles firewalls existentes, servidores proxy, listas de control de acceso, restricciones del proveedor de servicios de Internet (ISP), etc.
Nota:
El punto de conexión de almacenamiento (datos) incluye muchos intervalos de direcciones IP. Tienes que permitir a todos ellos, no solo unos pocos. Puede permitir todos los intervalos de direcciones IP o usar una etiqueta de servicio. Por ejemplo, la etiqueta Storage
de servicio representa Azure Storage para toda la nube, pero Storage.<region-name>
(por Storage.WestUS
ejemplo, ) limita el intervalo a solo los intervalos de direcciones IP de almacenamiento de la región con nombre.
Causa 2: Un grupo de seguridad de red que está asociado a la NIC o la subred de una máquina virtual bloquea la comunicación
Si usa una máquina virtual (VM) de Azure para extraer de Azure Container Registry, es posible que un grupo de seguridad de red (NSG) bloquee la comunicación entre el dispositivo y el servidor de inicio de sesión. El grupo de seguridad de red de bloqueo está asociado al adaptador de red o a la subred de la máquina virtual de Azure.
Ejecute el comando telnet o NetCat que se muestra en la causa 1. Si la salida del comando muestra que se ha producido un tiempo de espera, compruebe si la configuración del grupo de seguridad de red bloquea la dirección IP de la cuenta de almacenamiento. Para ello, siga estos pasos:
Vaya a Intervalos IP de Azure y etiquetas de servicio: nube pública y, a continuación, seleccione el botón Descargar para descargar la lista de etiquetas de servicio como un archivo JSON.
Abra el archivo JSON descargado en un editor de texto y
Storage.<region-name>
busque . (Reemplace el<region-name>
marcador de posición por el nombre de la región que contiene el registro de contenedor, comoBrazilSoutheast
).Elija una dirección IP que se pueda usar en esa región. (Usará esta dirección IP en el paso 6 como dirección IP del punto de conexión de almacenamiento asociado (datos).
En Azure Portal, busque y seleccione Network Watcher.
En el panel de menús de Network Watcher, seleccione Herramientas de diagnóstico de red>Diagnóstico de NSG.
En Network Watcher | En la página diagnósticos de NSG, complete el formulario siguiendo las instrucciones de la tabla siguiente.
Campo Action Tipo de recurso de destino Seleccione Máquina virtual en la lista. Máquina virtual Escriba o seleccione el nombre de la máquina virtual de Azure en la lista. Protocolo Seleccione TCP en la lista. Dirección Seleccione la opción Salida . Tipo de origen Seleccione dirección IPv4/CIDR en la lista. Dirección IPv4/CIDR Escriba la dirección IP de la máquina virtual de Azure. Dirección IP de destino Escriba la dirección IP del punto de conexión de almacenamiento (datos) asociada que eligió en el paso 3. Puerto de destino Escriba 443. Seleccione el botón Ejecutar diagnóstico de NSG.
En la casilla Resultados , active el valor del campo Estado del tráfico .
El campo Estado del tráfico puede tener un valor de Permitido o Denegado. El estado Denegado significa que el grupo de seguridad de red está bloqueando el tráfico entre la máquina virtual de Azure y la dirección IP del punto de conexión de almacenamiento (datos) asociada que eligió. En este caso, el nombre del grupo de seguridad de red de bloqueo también se muestra en el cuadro Resultados . En la tabla de resultados, busque la columna nombre de NSG de la fila en la que el valor de la columna de acción Aplicada correspondiente es Denegar.
Nota:
Este procedimiento puede proporcionarle una mejor evaluación, pero todavía incompleta, de lo que está causando el problema. Thsi se debe a que le indica que pruebe la conectividad mediante una única dirección IP de Azure Storage desde la región asociada. Sin embargo, dado que el punto de conexión de almacenamiento (datos) debe permitir el acceso a muchos intervalos de direcciones IP, una prueba correcta de una sola dirección IP no significa que la comunicación sea correcta para todos los intervalos de direcciones IP.
Solución 2: Modificación de la configuración del grupo de seguridad de red para permitir la conectividad entre la máquina virtual y el punto de conexión de almacenamiento (datos) asociado
Realice cambios en el nivel de NSG para que la conectividad se permita en el puerto 443 entre la máquina virtual de Azure y el punto de conexión de almacenamiento asociado (datos) (todos los intervalos de direcciones IP o la etiqueta de servicio asociada). En concreto, asegúrese de que se cumplen las condiciones siguientes.
Condición | Más información |
---|---|
La tabla de rutas no quita el tráfico hacia el punto de conexión de almacenamiento (datos). El tráfico se quita si el próximo salto se establece en Ninguno para una ruta asociada al punto de conexión de almacenamiento (datos). | Enrutamiento del tráfico de redes virtuales |
Si la tabla de rutas envía el tráfico hacia una aplicación virtual, como un firewall asociado a la subred de máquina virtual de Azure, asegúrese de que el firewall no bloquea el tráfico al punto de conexión de almacenamiento (datos) en el puerto 443. | Configuración de reglas para acceder a un registro de contenedor de Azure detrás de un firewall |
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.