Стратегии развертывания Kubernetes: теория и практика #devops #k8s #deployment
Rohan Rustagi
0:00 / 0:00
Стратегии развертывания Kubernetes: теория и практика #devops #k8s #deployment
570 просмотров · 2 года назад
Rohan Rustagi
1,24 тыс. подписчиков
570 просмотров · 2 года назад
Стратегии развертывания Kubernetes: теория и практическая демонстрация #devops #k8s #deployment
Используемый репозиторий Github: https://github.com/RohanRusta21/k8s-d...
Временные метки:
Теория: 00:00
Практика: 16:25
Видео по автоматизированному развертыванию Argo:
1. Канареечное развертывание: • Deploy Applications using Canary Deploymen...
2. Сине-зеленое развертывание: • Deploy Applications using BlueGreen Deploy...
Kubernetes (K8s) предлагает несколько стратегий развертывания для управления процессом обновления и развертывания приложений в кластере. Каждая стратегия отвечает различным потребностям, обеспечивая баланс между нулевым временем простоя, эффективностью использования ресурсов и снижением рисков.
1. Стратегия пересоздания развертывания
Как это работает: В стратегии пересоздания все существующие Pod-ы развертывания завершаются до запуска новых Pod-ов. Это означает, что происходит короткий период простоя, пока старые Pod-ы удаляются и создаются новые.
Примеры использования: Подходит, когда ваше приложение не может обрабатывать несколько версий, работающих одновременно. Используйте, когда время простоя приемлемо или в некритические моменты.
2. Стратегия поэтапного обновления развертывания
Как это работает: Это стратегия развертывания по умолчанию в Kubernetes. Она постепенно заменяет старые Pod-ы новыми. Процесс выполняется контролируемым образом, с определенным количеством Pod-ов, обновляемых одновременно (контролируется параметрами maxUnavailable и maxSurge).
Примеры использования: Идеально подходит для приложений, требующих нулевого времени простоя. Подходит, когда вы хотите обновить приложение с минимальными неудобствами для пользователей.
3. Стратегия развертывания «Синяя/Зеленая»
Как это работает: При развертывании «Синяя/Зеленая» поддерживаются две идентичные среды (синяя и зеленая). Текущая версия работает в синей среде, а новая версия развертывается в зеленой среде. После тестирования и проверки новой версии трафик переключается на зеленую среду. Синяя среда может использоваться для будущих обновлений или оставаться резервной.
Примеры использования: Идеально подходит, когда необходимо минимизировать риски и иметь стратегию быстрого отката. Подходит, когда необходимо протестировать новую версию в среде, приближенной к производственной, прежде чем запускать ее в работу.
4. Стратегия развертывания «Канарейная»
Как это работает: Стратегия «Канарейная» предполагает сначала выпуск новой версии приложения для небольшой группы пользователей. Если новая версия работает должным образом, она постепенно распространяется на большее количество пользователей. Это позволяет проводить тестирование в реальных условиях с минимальным риском.
Примеры использования: Идеально подходит для тестирования новых функций на небольшой пользовательской базе перед полномасштабным развертыванием. Подходит, когда необходимо отслеживать влияние изменений в производственной среде с минимальным риском.
5. Стратегия развертывания A/B-тестирования
Как это работает: Подобно канареечному развертыванию, A/B-тестирование включает в себя одновременное развертывание различных версий приложения (версия A и версия B) для разных сегментов пользователей. Отслеживается поведение и производительность каждой версии, чтобы определить, какая из них работает лучше.
Примеры использования: Идеально подходит для тестирования вариаций функций или оптимизации производительности, чтобы увидеть, какая версия работает лучше для пользователей. Подходит для приложений, которым необходима обратная связь в реальном времени и сравнение двух версий.
6. Стратегия теневого развертывания
Как это работает: При теневом развертывании новая версия приложения развертывается параллельно с существующей версией, но не обслуживает реальный пользовательский трафик. Вместо этого она получает копию реального трафика параллельно с существующей версией. Это позволяет тестировать новую версию в реальных условиях, не затрагивая пользователей.
Примеры использования: Идеально подходит для тестирования новых версий в рабочей среде без риска ухудшения пользовательского опыта. Подходит для проверки производительности и поведения новых функций с реальным трафиком.
7. Стратегия развертывания с паузами
Как это работает: Эта стратегия похожа на поэтапное обновление, но с возможностью приостановки развертывания в любой момент. Это полезно, когда вы хотите вручную проверить состояние развертывания перед продолжением дальнейших обновлений.
Примеры использования: Идеально подходит для сценариев, где вам необходимо вручную проверять каждый шаг процесса развертывания. Подходит, когда вам нужно контролируемое и отслеживаемое развертывание с контрольными точками.
8. Стратегия теневого и канареечного развертывания
Как это работает: Комбинация теневого и канареечного развертывания, при которой новая версия развертывается для небольшой группы пользователей и одновременно тестируется с дублированным трафиком (как теневое развертывание). Эта стратегия позволяет проводить как тестирован...