Solución de problemas del contenedor de Windows en el servicio de aplicaciones de Azure

Solución de problemas del contenedor de Windows en el servicio de aplicaciones de Azure

He estado luchando durante más de una semana para ejecutar un contenedor de Windows con un servicio de aplicaciones de Azure. Mi preferencia inicial era usar simplemente una instancia de contenedor estándar, pero parece que solo tiene la opción de conexión en red pública o privada, en lugar de personalizada (a diferencia de los contenedores de Linux). Parece que si ejecuta su contenedor de Windows dentro de un servicio de aplicación, obtiene las mismas opciones de red que obtiene con otros sitios web. El soporte de Azure para contenedores de Windows en App Services escasi un año, pero relativamente pocos recursos lo abordan, aparte de escenarios muy básicos.

Mi propósito al usar un contenedor es ejecutar un servicio de Windows en segundo plano de terceros bajo demanda sin la sobrecarga de una máquina virtual. Dado que utiliza un servicio de aplicación, decidí agregar un punto final de descanso central de asp.net para obtener información de estado. Mi contenedor está basado en mcr.microsoft.com/windows/servercore:ltsc2019. Descargo e instalo .net y asp.net core (la imagen base solo tiene .net framework), instalo mis servicios, construyo y ejecuto el sitio web, luego mi punto de entrada es un script de Powershell que actualiza algunos valores de configuración y ejecuta el asp. punto final central neto que gestiona los servicios.

Si uso el portal, puedo seleccionar las opciones de contenedor versus código, Windows versus Linux, y comenzar con elimagen básica de inicio rápido, pero mi propia imagen en Azure Container Registry no se inicia correctamente. Estoy usando uno de losimágenes base soportadasy funciona bien en mi máquina local. En Azure, crea todo, pero nunca se inicia. La pequeña cantidad de registro indica que lo inicia, monta volúmenes de archivos compartidos y luego básicamente simplemente muere:

  • Crear contenedor para imagen
  • Intentando iniciar el contenedor
  • El contenedor se inició correctamente
  • El contenedor ha comenzado
  • Llame a la utilidad de configuración del contenedor
  • Configurar la utilidad del contenedor completada
  • El contenedor ha comenzado
  • Intentando detener el contenedor
  • Intentando terminar el contenedor
  • Intentando retirar el contenedor
  • Contenedor eliminado exitosamente

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

También es extraño, incluso con la imagen de inicio rápido, no veo una instancia de contenedor real. Presumiblemente, esto se debe a que se ejecuta directamente en el Plan de App Service, aunque nada de eso está muy claro. Desde la aplicación web, puedo ir al Plan de Servicio de Aplicaciones (plan de Contenedores de Windows) donde, en Aplicaciones, muestra una única aplicación con el tipo "aplicación, contenedor, ventanas", pero en ninguna parte puedo encontrar acceso para ver los registros de la consola o Ejecute un shell como puedo con recursos de tipo Container Image. En algunas capturas de pantalla que he encontrado, puedo ver un enlace "Configuración de contenedor" en "Configuración" que no tengo, pero tal vez sea solo para contenedores de Linux por alguna razón.

ingrese la descripción de la imagen aquí

Entonces, ¿cómo debería solucionar los problemas del contenedor cuando se ejecuta dentro de un servicio de aplicación? ¿Me estoy perdiendo algo en alguna parte?

Respuesta1

Diagnóstico

Puede encontrar información valiosa de depuración al hacer clic Diagnose & Solve Problems -> Container Initializationen Azure Web App for Containers.

kudú

App Service viene con una consola de depuración que puede usar para depurar, explorar y cargar archivos, así como puntos de conexión JSON para obtener información sobre su entorno. Esta consola se llama Consola Kudu o Panel SCM para su aplicación.

Puede acceder a este panel yendo al enlace https://[Nombre de tu aplicación].scm.azurewebsites.net/.

Algunas de las cosas que ofrece Kudu son:

  • configuración del entorno para la consola de depuración del volcado de diagnóstico del flujo de registros de su aplicación en la que puede ejecutar cmdlets de PowerShell y comandos básicos de DOS.

https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-rendimiento-degradación

información relacionada