Después de desplegar una aplicación en SAE, utilice la función de comprobación de estado para verificar que la aplicación se ejecute correctamente e identificar problemas cuando ocurran excepciones.SAE admite configurar las comprobaciones de estado durante la creación y el despliegue de aplicaciones. En este tema se describe cómo configurar las comprobaciones de estado en la consola de SAE.
Contexto
Funcionamiento de las comprobaciones de estado
Una comprobación de estado utiliza un sondeo de actividad (liveness), de disponibilidad (readiness) o de inicio (startup) para revisar periódicamente una instancia de aplicación y reportar los resultados a la consola de SAE. Esto le permite conocer el estado general del servicio en un entorno de clúster y localizar problemas.
SAE está construido sobre Kubernetes y ofrece los siguientes tipos de comprobaciones de estado:
-
Liveness probe: determina si una instancia de aplicación se está ejecutando.
Si el sondeo es exitoso: la instancia de aplicación está en buen estado y SAE no realiza ninguna acción.
Si el sondeo falla: la instancia de aplicación presenta problemas y SAE reinicia la instancia.
-
Readiness probe: determina si una instancia de aplicación está lista para procesar el tráfico entrante.
Si el sondeo es exitoso: la instancia de aplicación está lista y SAE le asigna tráfico.
Si el sondeo falla: la instancia de aplicación no está lista. SAE reporta una excepción para la instancia y no le asigna tráfico.
-
Startup probe: determina si una instancia de aplicación inició correctamente.
Si el sondeo es exitoso: la instancia de aplicación inició correctamente. Los sondeos de actividad y disponibilidad, si están configurados, comienzan únicamente después de que el sondeo de inicio sea exitoso.
Si el sondeo falla: la instancia de aplicación no logró iniciar. SAE reporta una excepción y reinicia automáticamente la instancia.
Criterios de éxito y error
Éxito: un sondeo se considera exitoso cuando la cantidad de comprobaciones consecutivas exitosas alcanza el healthy threshold especificado.
Error: si una sola comprobación de estado falla, SAE continúa con las comprobaciones en el intervalo configurado. Cuando la cantidad de errores consecutivos alcanza el unhealthy threshold especificado, SAE toma medidas. Ante un error en el sondeo de actividad, SAE reinicia la instancia de aplicación. Si falla el sondeo de disponibilidad, SAE elimina la instancia del endpoint del servicio para que deje de recibir tráfico.
Parámetros de comprobación de estado
SAE utiliza los siguientes parámetros para comprobar el estado de las aplicaciones y sus instancias.
-
Initial delay
Retraso en segundos desde que inicia la aplicación hasta que comienza el primer sondeo. Este valor debe ser mayor que el tiempo de inicio de la aplicación para evitar errores en el sondeo y reinicios posteriores durante el despliegue.
-
Timeout
Tiempo de espera de un sondeo individual, en segundos. El valor predeterminado es 1. Por ejemplo, si establece este valor en 10, el sondeo falla si no recibe respuesta en 10 segundos. Si configura este parámetro en 0 o lo deja vacío, se aplica el tiempo de espera predeterminado de 1 segundo.
-
Period
Intervalo entre comprobaciones de estado, en segundos. El valor predeterminado es 30. Por ejemplo, si establece este valor en 5, se ejecuta una comprobación cada 5 segundos. Para acelerar el inicio, SAE puede ejecutar el sondeo de disponibilidad con mayor frecuencia que el periodo configurado inmediatamente después de que inicie la instancia, lo que le permite recibir tráfico más rápido.
Procedimiento
-
Crear una aplicación
En la lista de aplicaciones de SAE, seleccione la región y el namespace de destino en la parte superior y luego haga clic en Create Application. Después de establecer los ajustes en la página basic information, haga clic en Next: advanced settings.
Modificar una aplicación en ejecución
AvisoVolver a desplegar una aplicación la reinicia. Para evitar interrupciones del servicio u otros errores inesperados, ejecute las operaciones de despliegue fuera del horario de mayor demanda.
En la lista de aplicaciones de SAE, seleccione la región y el namespace de destino en la parte superior y luego haga clic en el Application ID de su aplicación para ir a su página de detalles. En el panel de navegación izquierdo, haga clic en basic information y luego haga clic en deploy application en la esquina superior derecha.
Modificar una aplicación detenida
En la lista de aplicaciones de SAE, seleccione la región y el namespace de destino en la parte superior y luego haga clic en el Application ID de su aplicación para ir a su página de detalles. Haga clic en basic information y luego haga clic en Modify Application Configuration.
Expanda la sección Application health check settings y configure los parámetros según sus necesidades.
Configuración
-
Según sus necesidades, habilite Enable application instance liveness check (Liveness configuration), Enable application readiness probe (Readiness configuration) o Enable startup probe configuration. Los parámetros de configuración son los mismos para los tres tipos de sondeo.
NotaConfigure los sondeos de actividad, disponibilidad e inicio de forma individual o en cualquier combinación. Se recomienda configurar los tres.
Cuando se configuran las tres comprobaciones de estado, el sondeo de inicio se ejecuta primero. Los sondeos de actividad y disponibilidad comienzan únicamente después de que el sondeo de inicio sea exitoso, y cada uno respeta su retraso inicial configurado.
-
Seleccione un Check method y configure sus parámetros.
HTTP request check: comprueba el estado de la instancia mediante el envío de una solicitud HTTP. La instancia está en buen estado si el código de estado se encuentra entre 200 y 399; de lo contrario, presenta problemas.
TCP port check: comprueba el estado de la instancia al establecer una conexión de socket TCP. La instancia está en buen estado si la conexión es exitosa; de lo contrario, presenta problemas.
Executable command check: comprueba el estado de la instancia al ejecutar un comando dentro de ella. La instancia está en buen estado si el comando devuelve un código de salida de 0; de lo contrario, presenta problemas.
Solicitud HTTP
Parámetro
Descripción
Path
Ruta a la que se accede en el servidor HTTP.
Port
Puerto al que se accede en el servidor HTTP.
Advanced settings
Expanda advanced settings para configurar una comprobación opcional que verifica si el cuerpo de la respuesta contiene una palabra clave específica.
Protocol
Seleccione HTTP o HTTPS.
initial delay (seconds)
Retraso en segundos desde que inicia la aplicación hasta que comienza el primer sondeo. Este valor debe ser mayor que el tiempo de inicio de la aplicación para evitar errores en el sondeo y reinicios posteriores durante el despliegue.
timeout (seconds)
Tiempo de espera de un sondeo individual, en segundos. El valor predeterminado es 1. Por ejemplo, si establece este valor en 10, el sondeo falla si no recibe respuesta en 10 segundos. Si configura este parámetro en 0 o lo deja vacío, se aplica el tiempo de espera predeterminado de 1 segundo.
period (seconds)
Intervalo entre comprobaciones de estado, en segundos. El valor predeterminado es 30. Por ejemplo, si establece este valor en 5, se ejecuta una comprobación cada 5 segundos. Para acelerar el inicio, SAE puede ejecutar el sondeo de disponibilidad con mayor frecuencia que el periodo configurado inmediatamente después de que inicie la instancia, lo que le permite recibir tráfico más rápido.
healthy threshold (times)
Cantidad mínima de éxitos consecutivos necesarios para considerar exitoso un sondeo después de haber fallado. Para un sondeo de actividad, este valor debe ser 1.
unhealthy threshold (times)
Cantidad de errores consecutivos tras los cuales se considera que un sondeo falló.
Puerto TCP
Parámetro
Descripción
TCP port
Puerto TCP al que se accede para la comprobación de estado.
initial delay (seconds)
Retraso en segundos desde que inicia la aplicación hasta que comienza el primer sondeo. Este valor debe ser mayor que el tiempo de inicio de la aplicación para evitar errores en el sondeo y reinicios posteriores durante el despliegue.
timeout (seconds)
Tiempo de espera de un sondeo individual, en segundos. El valor predeterminado es 1. Por ejemplo, si establece este valor en 10, el sondeo falla si no recibe respuesta en 10 segundos. Si configura este parámetro en 0 o lo deja vacío, se aplica el tiempo de espera predeterminado de 1 segundo.
period (seconds)
Intervalo entre comprobaciones de estado, en segundos. El valor predeterminado es 30. Por ejemplo, si establece este valor en 5, se ejecuta una comprobación cada 5 segundos. Para acelerar el inicio, SAE puede ejecutar el sondeo de disponibilidad con mayor frecuencia que el periodo configurado inmediatamente después de que inicie la instancia, lo que le permite recibir tráfico más rápido.
healthy threshold (times)
Cantidad mínima de éxitos consecutivos necesarios para considerar exitoso un sondeo después de haber fallado. Para un sondeo de actividad, este valor debe ser 1.
unhealthy threshold (times)
Cantidad de errores consecutivos tras los cuales se considera que un sondeo falló.
Comando ejecutable
Parámetro
Descripción
initial delay (seconds)
Retraso en segundos desde que inicia la aplicación hasta que comienza el primer sondeo. Este valor debe ser mayor que el tiempo de inicio de la aplicación para evitar errores en el sondeo y reinicios posteriores durante el despliegue.
timeout (seconds)
Tiempo de espera de un sondeo individual, en segundos. El valor predeterminado es 1. Por ejemplo, si establece este valor en 10, el sondeo falla si no recibe respuesta en 10 segundos. Si configura este parámetro en 0 o lo deja vacío, se aplica el tiempo de espera predeterminado de 1 segundo.
period (seconds)
Intervalo entre comprobaciones de estado, en segundos. El valor predeterminado es 30. Por ejemplo, si establece este valor en 5, se ejecuta una comprobación cada 5 segundos. Para acelerar el inicio, SAE puede ejecutar el sondeo de disponibilidad con mayor frecuencia que el periodo configurado inmediatamente después de que inicie la instancia, lo que le permite recibir tráfico más rápido.
healthy threshold (times)
Cantidad mínima de éxitos consecutivos necesarios para considerar exitoso un sondeo después de haber fallado. Para un sondeo de actividad, este valor debe ser 1.
unhealthy threshold (times)
Cantidad de errores consecutivos tras los cuales se considera que un sondeo falló.
Command
Comando que se ejecuta dentro de la instancia. Para obtener más información sobre los comandos de sondeo, consulte Configure Probes en la documentación de Kubernetes.
NotaSAE proporciona dos intérpretes de shell:
-
>_ /bin/sh
-
>_ /bin/bash
Ejemplo: el comando
cat /tmp/healthycomprueba periódicamente la existencia del archivo/tmp/healthy. La comprobación es exitosa (devuelve 0) si el archivo existe.
Comprobar los resultados
Después de configurar las comprobaciones de estado, vaya a la página basic information de la aplicación y haga clic en la pestaña Instances. En el área Default Group, consulte el estado de ejecución de cada instancia. Pase el cursor sobre el ícono de estado para ver los detalles de la configuración de la comprobación de estado.
|
Estado de ejecución |
Descripción |
|
Indica que no se configuró ninguna comprobación de estado para la instancia. Nota
|
|
Las comprobaciones de estado de actividad y disponibilidad fallaron El estado de la instancia es Running, pero se muestra un mensaje rojo de Health check failed. |
Indica que la comprobación de estado falló y la instancia presenta problemas. Nota
Pase el cursor sobre el estado de la instancia para ver el motivo del error. Para consultar los pasos de resolución, haga clic en Troubleshooting Guide. |
|
La comprobación de estado fue exitosa El estado de la instancia aparece en verde como Running y sin mensajes de advertencia. |
Indica que la comprobación de estado fue exitosa y la instancia está en buen estado. |
Causas comunes de errores en las comprobaciones de estado
El retraso inicial es demasiado corto, por lo que la comprobación de estado comienza antes de que la aplicación se inicialice por completo. Aumente el retraso e inténtelo de nuevo.
La configuración de la comprobación de estado es incorrecta. Compruebe el puerto y la ruta.
El servicio tiene una carga excesiva. Revise los datos de monitoreo de la aplicación para confirmarlo. Si esta es la causa, aumente la cantidad de instancias, utilice un tipo de instancia más grande o reduzca el tamaño del heap de la JVM.
La aplicación no logra iniciar. Intente deshabilitar las comprobaciones de estado para diagnosticar el problema. Si la aplicación sigue sin iniciar, es posible que deba optimizar su código.