Probas de inicio de Kubernetes

Probas de inicio de Kubernetes

Este artículo se centra en las sondas de inicio. El papel de la sonda de inicio puede impedir otras sondas secuencialmente. Es esencial usar además las sondas de inicio junto con las sondas de livalidad y preparación. La carga de trabajo no puede ser modificada por la sonda de inicio por sí sola. En este artículo, revisará cómo Kubernetes evalúa el estado de salud de la aplicación a través de sondas de inicio y configurar las verificaciones de salud utilizando sondas de inicio.

¿Cuáles son las sondas de Kubernetes??

Las sondas también se llaman cheques de salud, que son la técnica para las aplicaciones Kubernetes para proporcionar el monitoreo del estado interno de la aplicación utilizando la información. Permiten que su clúster identifique las vainas (contenedores) que monitorean la salud de una aplicación y se aseguran de que solo las cápsulas sanas sirvan al tráfico.

Las aplicaciones pueden volverse poco confiables por una variedad de razones, como pérdida de conexión temporal, errores de configuración y errores de aplicación. Los desarrolladores monitorean la salud de su aplicación utilizando sondas. Las sondas ayudan a los desarrolladores a conocer el estado de la aplicación, la utilización de recursos y los errores. Es fácil solucionar los problemas de la aplicación, la gestión de recursos y la organización de los recursos de manera efectiva al monitorear la información de la aplicación.

Las sondas se utilizan para detectar lo siguiente:

    • Contenedores que aún no han progresado y no pueden servir el tráfico.
    • Contenedores que están sobrecargados y no pueden servir el tráfico suplementario.
    • Contenedores que están completamente muertos y que no sirven tráfico.

¿Cuáles son los tipos de sondas de Kubernetes??

Hay tres tipos de sondas de Kubernetes. Éstas incluyen:

Sondas de ventaja

Es responsable reiniciar el contenedor si detecta un punto muerto y no responde.

Sondas de preparación

Se considera un portero de puerta para el tráfico entrante. Esta sonda es responsable al decir que esta cápsula está lista para recibir el tráfico.

Sondas de inicio

Es responsable de la aplicación que se implementa dentro del contenedor. Indica si la aplicación comenzó con éxito.

¿Qué es una sonda de inicio??

Kubernetes puede determinar si su software, que se ejecuta dentro de un contenedor dentro de una cápsula, ha comenzado correctamente a usar sondas de inicio.

Como puede ver en la siguiente figura, la aplicación dentro de la cápsula

Puntos clave de las sondas de inicio

    • Para la aplicación, proteja el contenedor de inicio lento con la ayuda de una sonda de inicio que procede más tiempo para comenzar.
    • Deshabilite las sondas de vida y preparación a través de la sonda de inicio cuando el tiempo de inicio de la aplicación excede.
    • La sonda de inicio proporciona un mecanismo para cargar datos grandes, configura y migra los archivos.

Prerrequisitos de crear la sonda de inicio

Antes de trabajar con la sonda de inicio, los requisitos previos son un clúster de Kubernetes con dos nodos que no actúan como hosts y software de línea de comandos Kubectl que deben configurarse para comunicarse entre clústeres. Si no ha creado un clúster, puede usar el minikube para crear un clúster. Hay otras opciones de juegos de Kubernetes que están disponibles en línea que puede usar para crear un clúster.

Hay cuatro técnicas básicas de Kubernetes que son compatibles con las sondas de inicio:

Ejecutivo: Ejecuta un comando dentro del contenedor. El código cero indica el éxito y los otros códigos indican falla.

Http: Verifique la salud de la aplicación utilizando el comando get solicitud. La sonda HTTP se considera saludable si su respuesta está dentro del rango de [200-399]. Si su aplicación no es compatible con un servidor HTTP, cree su servidor HTTP dentro de su aplicación y responda a la sonda de Livity.

TCP: Kubernetes abre la conexión entre un puerto TCP específico y un contenedor. Si la conexión es exitosa, acepta el tráfico. De lo contrario, no puede crear una conexión. El puerto TCP funciona en nombre de las sondas HTTP cuando la sonda HTTP no puede funcionar.

GRPC: Determina si la sonda es exitosa enviando una solicitud de verificación de salud de GRPC a un puerto dentro del contenedor y utilizando la respuesta.

El criterio de éxito para la sonda y con qué frecuencia se verifica se controlan por algunas variables fundamentales:

InitialDelayseconds: Especifica la cantidad de tiempo que debe pasar entre el tiempo que comienza el contenedor y la primera vez que se usa la sonda (predeterminada: 0, mínimo: 0).

PERIODSECONDS: Define con qué frecuencia se verifica la sonda después del retraso inicial (predeterminado: 10, mínimo: 1).

tiempo de espera: Indica cuánto tiempo esperar a que la sonda se complete y se marque como se falló después de que se excede el tiempo (predeterminado: 1, mínimo: 1).

Failurethreshold: Kubernetes requiere la falla mínima que tiene éxito para que la sonda se considere poco saludable si ha tenido éxito. El contenedor solo se reinicia cuando las repeticiones no son saludables (predeterminados: 3, mínimo: 1).

Cómo crear una sonda de inicio

Las sondas de inicio se realizan agregando una disciplina de startupprobe dentro de la especificación.contenedores parte de una cápsula distinta. El enfoque EXEC se utiliza en el ejemplo de la sonda de inicio directo que se muestra en lo siguiente donde el comando se ejecuta dentro del contenedor:


Path:/Healthz es el punto final de salud de la probación de aplicas aplicadas. El Failurethreshold: 12 es el Kubernetes intenta en caso de que la sonda falle. El período de puntos: 12 es la frecuencia con la que se realiza la inspección.

Usando Kubectl, agregue la vaina a su clúster con el siguiente comando:

> kubectl aplicar -f startup-probe-examen.YML


El contenedor comienza y funciona normalmente. Puede validar esto por sus detalles que se muestran en Kubectl:

Cómo proteger los recipientes de arranque lento con sondas de inicio?

A través de la siguiente fórmula, puede encontrar el tiempo suficiente para cubrir el peor tiempo de inicio:

> Failurethreshold * PERIODSECONDS



El tiempo de inicio máximo para la aplicación es de 3 minutos (20 * 10 = 200). Una vez que la sonda de inicio tiene éxito por primera vez, la sonda de la vida continúa para ofrecer una respuesta rápida a los estlocks de contenedores. El contenedor termina después de 200 segundos y está sujeto a la potencia de reinicio de la cápsula si la sonda de inicio nunca tiene éxito.

Conclusión

La vida, la preparación y las sondas de inicio para sus contenedores que se implementan en los contenedores de Kubernetes deben configurarse adecuadamente si desea mantener un clúster de Kubernetes saludable. Esta publicación se concentró en la sonda de inicio, que es crucial ya que permite que sus contenedores notifiquen a los Kubernetes cuando se inician y están preparados para ser evaluados para la vida y la preparación. Es bueno agregar una sonda de inicio cuando usa sondas de Lucial y Preparación. De lo contrario, el contenedor puede reiniciarse antes de terminar de inicializar. Este artículo implementa la configuración de configuración básica de la sonda de inicio y describe los parámetros que pueden usar las sondas.