App Service, Functions y Logic Apps en Azure Arc (versión preliminar)

Puede ejecutar App Service, Functions y Logic Apps en un clúster de Kubernetes habilitado para Azure Arc. El clúster de Kubernetes puede ser local o estar hospedado en una nube de terceros. Este enfoque permite a los desarrolladores de aplicaciones aprovechar las características de App Service. Al mismo tiempo, permite a los administradores de TI mantener el cumplimiento corporativo hospedando las aplicaciones de App Service en la infraestructura interna. También permite que otros operadores de TI protejan sus inversiones anteriores en otros proveedores de nube mediante la ejecución de App Service en clústeres de Kubernetes existentes.

Nota

Para obtener información sobre cómo configurar el clúster de Kubernetes para App Service, Functions y Logic Apps, consulte Creación de un entorno de Kubernetes de App Service (versión preliminar).

En la mayoría de los casos, los desarrolladores de aplicaciones no necesitan saber nada más que cómo implementar en la región correcta de Azure que representa el entorno de Kubernetes implementado. Para los operadores que proporcionan el entorno y mantienen la infraestructura subyacente de Kubernetes, debe tener en cuenta los siguientes recursos de Azure:

Limitaciones de la vista preliminar pública

Las siguientes limitaciones de la versión preliminar pública se aplican los entornos de Kubernetes de App Service. Se actualizarán a medida que haya cambios disponibles.

Limitación Detalles
Regiones de Azure compatibles Este de EE. UU., Oeste de Europa
Requisito de redes del clúster Debe admitir el tipo de servicio LoadBalancer y proporcionar una dirección IP estática direccionable públicamente
Característica: redes No disponible (se basa en las redes del clúster)
Característica: identidades administradas No disponible
Característica: referencias de Key Vault No disponible (depende de las identidades administradas)
Característica: extracción de imágenes de ACR con identidad administrada No disponible (depende de las identidades administradas)
Característica: edición en el portal para Functions y Logic Apps No disponible
Característica: publicación FTP No disponible
Registros Log Analytics se debe configurar con la extensión de clúster; no por cada sitio.

Pods creados por la extensión de App Service

Cuando la extensión de App Service se instala en el clúster de Kubernetes habilitado para Azure Arc, verá varios pods creados en el espacio de nombres de versión que se especificó. Estos pods permiten que el clúster de Kubernetes sea una extensión del proveedor de recursos Microsoft.Web en Azure y ayudan en la administración y el funcionamiento de las aplicaciones. Opcionalmente, puede optar por que la extensión instale KEDA para el escalado controlado por eventos.

En la tabla siguiente se describe el rol de cada pod que se crea de manera predeterminada:

Pod Descripción
<extensionName>-k8se-app-controller Pod de operador principal que crea recursos en el clúster y mantiene el estado de los componentes.
<extensionName>-k8se-envoy Una capa de proxy de front-end para todas las solicitudes del plano de datos. Enruta el tráfico entrante a las aplicaciones correctas.
<extensionName>-k8se-activator Un destino de enrutamiento alternativo para ayudar con las aplicaciones que se han escalado a cero mientras el sistema obtiene la primera instancia disponible.
<extensionName>-k8se-build-service Admite operaciones de implementación y ofrece la característica Herramientas avanzadas.
<extensionName>-k8se-http-scaler Supervisa el volumen de solicitudes entrantes para proporcionar información de escalado a KEDA.
<extensionName>-k8se-img-cacher Extrae imágenes de marcador de posición y de aplicación en una caché local en el nodo.
<extensionName>-k8se-log-processor Recopila registros de las aplicaciones y otros componentes y los envía a Log Analytics.
placeholder-azure-functions-* Se usa para acelerar los arranques en frío para Azure Functions.

Entorno de Kubernetes de App Service

El recurso de entorno de Kubernetes de App Service es necesario antes de que se puedan crear aplicaciones. Habilita la configuración común de las aplicaciones de la ubicación personalizada, como el sufijo DNS predeterminado.

Solo se puede crear un recurso de entorno de Kubernetes en una ubicación personalizada. En la mayoría de los casos, un desarrollador que crea e implementa aplicaciones no necesita conocer directamente el recurso. Se puede deducir directamente del identificador de ubicación personalizada proporcionado. Sin embargo, al definir plantillas de Azure Resource Manager, cualquier recurso de plan debe hacer referencia directamente al identificador de recurso del entorno. Los valores de ubicación personalizada del plan y el entorno especificado deben coincidir.

Preguntas frecuentes sobre App Service, Functions y Logic Apps en Azure Arc (versión preliminar)

¿Cuánto cuesta?

App Service en Azure Arc es gratis durante la versión preliminar pública.

¿Se admiten aplicaciones windows y Linux?

Solo se admiten aplicaciones basadas en Linux, tanto de código como de contenedores personalizados. No se admiten aplicaciones de Windows.

¿Qué pilas de aplicaciones integradas se admiten?

Se admiten todas las pilas de Linux integradas.

¿Se admiten todos los tipos de implementación de aplicaciones?

No se admite la implementación mediante FTP. Actualmente tampoco se admite az webapp up. Se admiten otros métodos de implementación, como Git, ZIP, CI/CD, Visual Studio y Visual Studio Code.

¿Qué características de App Service se admiten?

Durante el período de versión preliminar, se están validando determinadas características de App Service. Cuando se admitan, se activarán sus opciones en la barra de navegación izquierda de Azure Portal. Las características que aún no se admiten permanecen atenuadas.

¿Se admiten las características de redes?

No. No se admiten características de redes, como las conexiones híbridas, la integración de red virtual o las restricciones de dirección IP. Las redes se deben controlar directamente en las reglas de red del propio clúster de Kubernetes.

¿Se admiten identidades administradas?

No. No se pueden asignar identidades administradas a las aplicaciones cuando se ejecutan en Azure Arc. Si la aplicación necesita una identidad para trabajar con otro recurso de Azure, considere la posibilidad de usar una entidad de servicio de aplicación en su lugar.

¿Existen límites de escalado?

Todas las aplicaciones implementadas con Azure App Service en Kubernetes con Azure Arc se pueden escalar dentro de los límites del clúster de Kubernetes subyacente. Si el clúster de Kubernetes subyacente se queda sin recursos de proceso disponibles (CPU y memoria principalmente), las aplicaciones solo podrán escalarse al número de instancias de la aplicación que Kubernetes pueda programar con el recurso disponible.

¿Qué registros se recopilan?

Los registros de los componentes del sistema y las aplicaciones se escriben en la salida estándar. Ambos tipos de registro se pueden recopilar para su análisis mediante las herramientas estándar de Kubernetes. También puede configurar la extensión de clúster de App Service con un área de trabajo de Log Analytics y se enviarán todos los registros a esa área de trabajo.

De manera predeterminada, los registros de los componentes del sistema se envían al equipo de Azure. Los registros de aplicación no se envían. Para evitar que estos registros se transfieran, establezca logProcessor.enabled=false como un valor de configuración de extensión. Esto también deshabilitará el reenvío de la aplicación al área de trabajo de Log Analytics. Deshabilitar el procesador de registro puede afectar al tiempo necesario para cualquier caso de soporte técnico y se le pedirá que recopile registros de la salida estándar mediante otros medios.

¿Qué debo hacer si veo un error de registro del proveedor?

Al crear un recurso de entorno de Kubernetes, es posible que se muestre el error "No registered resource provider found" (No se encontró ningún proveedor de recursos registrado) para algunas suscripciones. Los detalles del error pueden incluir un conjunto de ubicaciones y de versiones de API que se consideran válidas. Si esto ocurre, puede ser que deba volver a registrarse la suscripción en el proveedor Microsoft.Web, una operación que no afecta a las aplicaciones o a las API existentes. Para volver a registrarse, use la CLI de Azure para ejecutar az provider register --namespace Microsoft.Web --wait. A continuación, vuelva a intentar ejecutar el comando del entorno de Kubernetes.

¿Puedo implementar la extensión de servicios de aplicación en un clúster basado en ARM64?

Los clústeres basados en ARM64 no se admiten en este momento.

Pasos siguientes

Creación de un entorno de Kubernetes de App Service (versión preliminar)