¿Es esto una solicitud de ayuda? (En caso afirmativo, debe usar nuestra guía de solución de problemas y los canales de soporte de la comunidad, consulte http://kubernetes.io/docs/troubleshooting/).
No
¿Qué palabras clave buscó en los problemas de Kubernetes antes de presentar este? (Si ha encontrado duplicados, debe responder allí):
¿Es esto un INFORME DE ERROR o una SOLICITUD DE CARACTERÍSTICAS? (elige uno):
Informe de error
Versión de Kubernetes (use kubectl version
):
Cliente 1.4.4
Grupo 1.4.6
Medio ambiente :
uname -a
):que paso :
Aplique una actualización progresiva, vea cómo los nuevos pods se ejecutan y están listos, los pods antiguos terminan.
Da como resultado tiempos de espera cuando se golpea el balanceador de carga. Espere unos minutos y el tráfico se enrutará correctamente.
Lo que esperabas que sucediera :
El tráfico se enruta sin problemas a los nuevos pods.
Cómo reproducirlo (de la forma más mínima y precisa posible):
https://gist.github.com/1d668ba12b12f450e8feffb21383ba44
kubectl apply -f deployment.yaml
kubectl get svc
, espere a que aparezca la IP externa.
Observe que el tráfico se enruta correctamente.
Edite algo (como la variable de entorno)
kubectl apply -f deployment.yaml
Espere a que finalicen los pods antiguos. Observe los tiempos de espera hasta que el balanceador de carga se actualice.
Algo más que necesitamos saber :
Creo que la terminación de los pods dará lugar a solicitudes fallidas de forma predeterminada, ya que no hay un "drenaje de conexión" en Kubernetes --- tendrías que alternar manualmente la sonda de preparación de la aplicación "justo a tiempo": https://github.com/RisingStack/ kubernetes-graceful-shutdown-example
No estoy seguro de si este es su problema (no ve la fuente de su aplicación/imagen de Docker).
Código fuente de la aplicación:
https://gist.github.com/d68192f04e3ff50bf9bf7e90ee879077
Intentaré alterar el código fuente para drenar las solicitudes. Tiene sentido que este pueda ser el problema.
Confirmado. La combinación del drenaje y la verificación de disponibilidad resultó en cero tiempo de inactividad:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596
Perdón por el informe erróneo.
Comentario más útil
Confirmado. La combinación del drenaje y la verificación de disponibilidad resultó en cero tiempo de inactividad:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596
Perdón por el informe erróneo.