Chicos, aquí hay un breve resumen de cómo usar la vida y el color rojo en nuestros queridos kubernetes

Live & Ready deben ser funciones independientes.

Para cada producto implementado en un contexto de Kubernetes, se deben implementar 2 controladores que respondan en llamadas HTTP a “live” y “ready”. La primera práctica recomendada con respecto a estas pruebas es que cada controlador debe tener implementada su propia función. ¡No desconecte la lógica de “live” and “ready” de su aplicación! Para Kubernetes, es importante saber si la aplicación de procesamiento está en ejecución o no. Si la lógica de live / ready se ha desacoplado en un nuevo proceso, el resultado no es concluyente.

Image for post
Image for post

No implemente ninguna lógica en el controlador “ready”. Necesita devolver el estado 200 si el hilo principal se está ejecutando y 5xx si no lo está. Esta investigación le permite a Kubernetes saber si la aplicación está activa o muerta. La decisión se toma al verificar el código de estado de /.well-known/live y, si la aplicación se declara muerta, Kubernetes reiniciará el pod.

Image for post
Image for post

Readiness

Imaginemos que su aplicación tarda un minuto en calentarse y comenzar. Su servicio no funcionará hasta que esté en funcionamiento, incluso si el proceso ha comenzado. También tendrá problemas si desea expandir esta implementación para tener varias copias. Una nueva copia no debería recibir tráfico hasta que esté completamente lista, pero de forma predeterminada, Kubernetes comienza a enviar tráfico tan pronto como se inicia el proceso dentro del contenedor. Con una sonda de preparación, Kubernetes espera hasta que la aplicación se inicia por completo antes de permitir que el servicio envíe tráfico a la nueva copia.

Para estar completamente automatizadas, las aplicaciones nativas en la nube deben ser altamente observables, proporcionando un medio para que la plataforma de administración lea e interprete el estado de la aplicación y, si es necesario, tome medidas correctivas. Los controles de integridad juegan un papel fundamental en la automatización de actividades, como implementación, autocorrección, dimensionamiento y otros. Sin embargo, también existen otras formas en las que su aplicación puede proporcionar más visibilidad de su estado. La importancia de tener liveness y readness en los kubernetes correctamente configurados está totalmente ligada a la disponibilidad de la aplicación así como al autoescalado que es una de las principales características de los kubertenes que pueden salvar tu aplicación en un pico de uso.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store