Проверка базы в liveness-пробе и циклические перезапуски подов
У сервиса в Kubernetes liveness-проба обращается к эндпоинту, который проверяет доступность PostgreSQL и Kafka. Readiness-проба настроена на тот же эндпоинт.
База ушла на переключение на резерв и была недоступна около 10 минут. За это время все поды сервиса многократно перезапустились, а после восстановления базы сервис ещё долго возвращался в строй. Что настроено неверно?
- Ничего: перезапуск при недоступности зависимости — правильное поведение, надо просто увеличить число реплик
- Проверку базы надо перенести в startup-пробу — она выполняется только один раз при запуске пода
- Достаточно убрать обе пробы: без них Kubernetes не будет вмешиваться в работу подов и рестартов не будет
- Проверки внешних зависимостей место в readiness, а не в liveness: тогда под выводится из балансировки, но не перезапускается
