- Se descapó
- 4 de septiembre de 2026 a las 19:50 UTC
- Autor
- Kamo
- Compromit
- d712ce9
Los despliegues sustituyeron a la única cápsula de cada servicio sin nada para captar las solicitudes en el vuelo. Tres ajustes, aplicados en toda la flota: - preStop sleep 10s antes de que el proceso vea SIGTERM. Kubernetes elimina la cápsula de su EndpointSlice y lo señala al mismo momento, y Traefik sólo se entera de la eliminación por reloj, por lo que por un momento sigue enviando nuevas solicitudes en una cápsula que ya ha comenzado - negándose a ellos. Esa brecha es de donde vinieron los 502 en un despliegue por lo demás limpio. - terminación GracePeriodSeconds elevada por encima del sueño pre-parada, por lo que el gancho no es en sí mismo SIGKILLed, y en vuelo el trabajo tiene espacio para terminar. Es un techo, no una espera: una vaina ociosa todavía sale en aproximadamente un segundo. - minReadySeconds 15, por lo tanto una vaina que pasa de la preparación una vez y luego cae sobre no puede retirarse el vaina saludable que sustituyó después de que CI ya haya llamado al despliegue bueno. topologíaSpreadConstraints se agregan listos para una segunda réplica; son inertes en uno. Auditoría del grupo en vivo: 63 de los 65 despliegues en el kamo se ejecutaban una sola réplica, 1 de 65 un gancho preStop, y ninguno tenía minReadySeconds. ************* ha establecido "server.shutdown": elegante" desde el principio, y nunca se ha leído en la producción: k8s/despliegue.yaml monta k8s/config.yaml sobre él como **************** que reemplaza el archivo en lugar de fusionarse con él, y que ConfigMap no tenía un ajuste de cierre. Así que APIService - uno de los servicios más concurridos en el plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Añade .shutdown: elegante y una fase de cierre de 30 años a la fase de ConfigMap que realmente se ejecuta.