тайм-ауты, хотя terminationGracePeriodSeconds выставлен в 100сек
Как можно не обрывая соединения ожидать окончания текущих сессий и потом удалять под или выводить его из работы, средствами кубера ?
1.readinessProbe/livenessProbe 2. lifecycle: preStop: exec: command: ["/bin/sh","-c","sleep 10"] с этим пока проблем не замечал, до этого проскакивали 502/503
readinessProbe: exec: command: - test - '-e' - /tmp/health initialDelaySeconds: 5 timeoutSeconds: 3 periodSeconds: 3 successThreshold: 1 failureThreshold: 1 lifecycle: postStart: exec: command: - /bin/bash - '-c' - touch /tmp/health preStop: exec: command: - /bin/bash - '-c' - >- rm -rf /tmp/health && /var/www/vendor/bin/ppm stop terminationGracePeriodSeconds: 60
В итоге все равно, есть 0.1% примерно таймаутов
Может его еще протестирую )
проверено кровью.
под очень высокую нагрузку я писал еще такую штуку https://github.com/promzeus/wait_connection/tree/main
на хабре были статьи, гугли. Суть - добавление sleep на prestop
connection_wait который не дает стопнуть pod, в котором есть еще активные соедиенения. логика проста: preStop дропает тригер tmp/health, срабатывает readinessProbe все новые соединения направляются на новый под а старые еще висят пока их не прибьет ядро net.ipv4.tcp_fin_timeout по дефолту 60сек
лови первую звезду
Обсуждают сегодня