Necesito ayuda para entender cómo Kubernetes maneja las solicitudes al reiniciar un pod.
Si tengo dos pods ejecutándose en un clúster de Kubernetes y uno muere o se reinicia a la mitad, ¿la solicitud actual que maneja el primer pod se transfiere al segundo pod o falla la solicitud actual?
Kubernetes envía tráfico solo cuando el pod se ejecuta perfectamente; ahora, si mientras tanto el pod de solicitud muere, ese tráfico fallará.
En un escenario ideal, le gustaría que todas las solicitudes de los clientes se manejaran correctamente sin conexiones rotas. Por sí mismo, Kubernetes no le impide esto.
Cuando se inicia su pod, se agrega como punto final a todos los servicios cuyo selector de etiquetas coincide con las etiquetas que se colocan en el pod. Pod debe informar a Kubernetes que está listo para enviar. Hasta que se envíe esta señal, no se convertirá en el punto final del servicio y no recibirá ninguna solicitud de sus clientes.
Si no especifica la sonda de preparación para su pod, siempre se considera listo y comenzará a recibir solicitudes casi de inmediato (tan pronto como kube-proxy actualice las reglas de iptables). En este momento, si su aplicación no está lista para servir, recibirá errores de conexión rechazada. Por lo tanto, si la sonda regresa con éxito cuando la aplicación está lista, esos errores desaparecerán.
Con la eliminación del pod, ocurren dos cosas en paralelo, una es que kubelet elimina el pod y el controlador de punto final elimina el punto final del servicio. En la mayoría de las causas, la eliminación del pod se produce más rápido, ya que la cadena de eliminación de puntos finales es un poco más larga. Esto también significa que, al eliminarlo, su pod podría eliminarse más rápido que el extremo que se elimina. Retrasar esa eliminación hasta que se elimine el punto final también ayudará con las conexiones rechazadas.