В современных agile-окружениях приложения нужно часто обновлять. Kubernetes поддерживает несколько стратегий развёртывания, каждая с разными компромиссами между простоем, риском и влиянием на пользователей.
Самый простой, но самый рискованный подход. Существующая версия приложения полностью уничтожается перед развёртыванием новой. Эта стратегия приводит к значительному простою и редко рекомендуется для production-окружений.
Постепенный метод развёртывания, при котором старые инстансы последовательно заменяются новыми. Ты контролируешь, сколько инстансов обновляется одновременно, обеспечивая непрерывную доступность. Это стратегия по умолчанию в Kubernetes — она балансирует между надёжностью и операционной эффективностью.
Новая версия приложения получает дублированный трафик от существующей версии, что позволяет проверить производительность в production без влияния на пользователей. Такой паттерн удобно реализуется с помощью инструментов вроде Istio. Пользователи взаимодействуют только со стабильной версией, а новая работает параллельно.
Несколько вариантов приложения работают одновременно, трафик распределяется между ними. Оптимальная версия определяется по метрикам производительности. Эта стратегия позволяет принимать решения на основе данных, а не только технической экспертизы.
Два идентичных production-окружения работают одновременно:
Трафик мгновенно переключается с blue на green после проверки. Это даёт возможность быстро откатиться, если возникнут проблемы.
Контролируемый подход к риску: небольшой процент трафика постепенно переводится на новую версию. Доля трафика увеличивается пошагово только в том случае, если новая версия работает стабильно. В отличие от rolling updates, предыдущая версия изначально остаётся под полной нагрузкой — это позволяет тщательно мониторить ситуацию перед полной миграцией.
Выбирай стратегию исходя из критичности приложения, требуемого уровня доступности и допустимого риска. Rolling updates подходят для большинства приложений, а canary deployments обеспечивают дополнительную безопасность для критичных систем.
Стратегия recreate рекомендуется для production окружения, потому что она обеспечивает самое быстрое развертывание с минимальной сложностью.
Новый — ещё не проверен сообществом
Вы