¿Qué son las sondas de preparación??
Kubernetes utiliza sondas de preparación para determinar cuándo es seguro transmitir el tráfico a una cápsula o cuándo es el momento de mover la vaina al estado listo.
Una sonda de preparación evaluará si un POD específico aceptará el tráfico si se utiliza como un punto final de back -end para un servicio.
La investigación de preparación se extiende por el resto de la vida de la cápsula; Esto significa que se ejecuta incluso después de que la cápsula ha alcanzado el estado listo. Además, nuestra aplicación puede hacerse inaccesible para el mantenimiento o algún trabajo de fondo respondiendo a la sonda con varias respuestas.
Indica si el contenedor está listo o no para aceptar consultas. En caso de que la sonda de preparación destruya por cualquier motivo, el controlador de puntos finales elimina la dirección IP de las cápsulas de los puntos finales entre todos los servicios que satisfacen el POD. El fracaso es la condición predeterminada de preparación antes del retraso inicial.
¿Cuándo debe usar una sonda de preparación??
La sonda de preparación puede ser como la sonda de la vida (que determina cuándo se debe reiniciar un contenedor) en este escenario. Pero la presencia de la sonda de preparación en las especificaciones sugiere que la cápsula comenzará sin aceptar ningún tráfico y solo aceptará el tráfico una vez que la sonda comience a tener éxito.
Puede usar tanto la vida como una sonda de preparación si su aplicación depende en gran medida de los servicios de backend. La sonda de preparación asegura que cada servicio de backend esencial esté disponible, además de la sonda de la vida, que pasa cuando la aplicación es saludable. Esto evita que el tráfico se envíe a las cápsulas que solo pueden reaccionar con los mensajes de error.
Una sonda de inicio puede ayudar si su contenedor requiere cargar una gran cantidad de datos, archivos de configuración o migraciones durante el inicio. Una sonda de preparación es bastante útil si desea diferenciar entre una aplicación que ha fallado y la otra que aún está procesando sus primeros datos.
Requisito previo
Se deben cumplir algunos requisitos previos antes de usar sondas de preparación de Kubernetes en la práctica. Ubuntu 20.0 es un sistema operativo Linux que debe instalarse primero. Debido a que Kubernetes en Linux lo requiere, instale el clúster de Minikube también.
Antes de pasar a la terminal de la línea de comando, primero debemos iniciar Ubuntu 20.04, que ya se ha instalado. Escriba "terminal" en el Ubuntu 20.04 Buzón del sistema para iniciar rápidamente el terminal.
Después de eso, el minikube debería iniciarse. Para comenzar el minikube, use el comando terminal "Minikube Start."Este comando iniciará el clúster de Kubernetes y creará una máquina virtual capaz de ejecución del clúster. La salida del comando "Minikube Start" se representa a continuación:
Ejemplo de sondas de preparación de Kubernetes
Podemos configurar una aplicación de ejemplo. En este caso, un servidor web Nginx simple, para comprender cómo funcionan las sondas de preparación. Hemos desarrollado una configuración de implementación básica aquí. Cada aspecto del archivo de configuración se presenta en ambas capturas de pantalla adjuntas:
Esta configuración debe guardar en un archivo llamado preparación.yaml.
Después de eso, use Kubectl Aplicar -f Preparación.yaml para aplicarlo. La instrucción y su salida se pueden ver en la siguiente captura de pantalla:
Ahora hemos desarrollado un servicio para la comprensión completa del ejemplo.
Guarde esta configuración en el SVC.archivo yaml.
Después de eso, use Kubectl Aplicar -f SVC.yaml para aplicarlo. La instrucción y su salida se pueden ver en la siguiente captura de pantalla:
Aunque no hay un punto final particular para las sondas de preparación, podemos obtener información sobre su condición actual ejecutando el comando kubectl describir pods. Ejecute el comando kubectl get pods y verifique el estado de las cápsulas y otros detalles.
Se mostrarán vainas, junto con su estado y estados listos. Como puede ver, nuestra cápsula se está ejecutando según lo planeado. La instrucción y su salida se pueden ver en la captura de pantalla que se proporciona a continuación:
El resultado del "kubectl describe pod" se adjunta a continuación. La instrucción y su salida se pueden ver en la siguiente captura de pantalla:
La sección de eventos se mostrará en la parte inferior de la salida del siguiente comando:
Con el comando kubectl get findpoints, podemos examinar los puntos finales. El servicio nginx tiene un punto final, como se puede ver. La instrucción y su salida se pueden ver en la siguiente captura de pantalla:
Podemos usar el comando Kubectl Describa los puntos finales Nginx para ver más información. La instrucción y su salida se pueden ver en la siguiente captura de pantalla:
Supongamos que establecemos el parámetro del puerto para la sonda de preparación en 81 y guardamos la configuración. Primero, verifique el estado de la cápsula directamente. El estado está "ejecutando", como puede ver a continuación. La instrucción y su salida se pueden ver en la siguiente captura de pantalla:
Debido a que no hemos actualizado el puerto 81, devolvió un valor booleano de "verdadero", como se muestra en la captura de pantalla a continuación. Si cambia el puerto 81 y si se actualiza correctamente, devolverá "falso", lo que indica que el servicio NGINX no tiene puntos finales porque el contenedor no está listo para recibir el tráfico. La instrucción y su salida se pueden ver en la captura de pantalla a continuación.
Conclusión:
En este artículo, se han observado los efectos de la sonda de preparación y los parámetros que se pueden configurar. Aunque nos centramos en la verificación HTTP, las técnicas que aprendimos pueden aplicarse a cualquiera de las otras pruebas. Para configurar y operar sondas de preparación, primero debe comprender la arquitectura y las dependencias de su aplicación. Esperamos que hayas encontrado este artículo útil. Consulte los otros artículos de Sugerencia de Linux para obtener más consejos y artículos.