Вопрос проверяет знание стратегий обеспечения стабильной и непрерывной работы приложений в Kubernetes.
Отказоустойчивость достигается за счёт реплик подов, автоматического перезапуска, проб состояния (readiness/liveness), балансировщиков нагрузки и использования Persistent Volume. Также важны ограничения ресурсов и горизонтальное масштабирование.
1. Репликация подов (ReplicaSet):
Поддерживает заданное количество экземпляров приложения.
Если один под падает, создается новый.
2. Автоматический перезапуск (RestartPolicy):
Kubernetes сам перезапускает упавшие контейнеры.
3. Readiness и Liveness пробы:
Liveness — проверяет, работает ли приложение.
Readiness — говорит, готово ли оно принимать трафик.
4. Балансировка нагрузки:
Сервис Service распределяет запросы между подами.
Можно настроить Ingress для внешнего доступа.
5. Ограничения ресурсов:
Устанавливаются limits и requests, чтобы избежать перегрузки узлов.
6. Horizontal Pod Autoscaler:
Автоматическое масштабирование подов по нагрузке (CPU/Memory).
7. Anti-affinity и распределение по узлам:
Запуск подов на разных нодах для изоляции сбоев.
Когда использовать:
Обеспечение отказоустойчивости критично для продакшн-сервисов, особенно высоконагруженных или с высокой стоимостью простоя.