Trace Id is missing
Перейти к основному контенту
Azure

Стратегия развертывания Kubernetes

Подберите оптимальную стратегию развертывания Kubernetes для своего приложения.

Знание вариантов развертывания Kubernetes

Выбор правильной стратегии развертывания Kubernetes является ключом к созданию отказоустойчивых приложений и инфраструктуры, если вы хотите сократить время вывода на рынок, создавать отказоустойчивые развертывания без простоя, выпускать приложения и функции быстрее или чаще, или работать с большей гибкостью. Каждая стратегия развертывания Kubernetes имеет свои преимущества в зависимости от ваших целей и потребностей.

Как работают развертывания Kubernetes

Прежде чем внедрять стратегию развертывания Kubernetes, вам нужно будет разобраться в деталях развертывания Kubernetes и понять, как они все работают вместе.

Что такое развертывание Kubernetes?

Файл YAML

Желаемое состояние для вашего кластера Kubernetes — конфигурация pod, которую вы описываете и которая служит основой для развертывания Kubernetes.

Объекты pod

Контейнеры, общие ресурсы и среда, в которой должно работать ваше приложение или рабочий процесс.

ReplicaSet

Группы одинаковых конфигураций pod называются ReplicaSet, это гарантирует, что тип и количество pod, описанных в YAML-файле для развертывания Kubernetes, работают все время. Если pod не работает, создается новый.

kube-controller-manager

Изменяет текущее состояние кластера в соответствии с желаемым состоянием, описанным в YAML-файле, создавая новые pod и наборы ReplicaSet, а также обновляя или удаляя существующие.

kube-scheduler

Определяет способ развертывания pod и ReplicaSet между рабочими узлами в дополнение к распределению трафика между этими узлами.

Развертывание

Процесс реконфигурации кластера с его текущего состояния на желаемое состояние достигается в большинстве случаев без простоев.

Как работает развертывание Kubernetes

  • Создайте YAML-файл, описывающий желаемое состояние конфигурации кластера.
  • Примените YAML-файл к кластеру через kubectl — интерфейс командной строки Kubernetes.
  • Kubectl отправляет запрос на сервер kube-apiserver, который аутентифицирует и авторизует запрос перед записью изменений в базу данных и т. д.
  • kube-controller-manager постоянно отслеживает новые запросы системы и работает над согласованием состояния системы с желаемым состоянием — созданием наборов ReplicaSet, развертыванием и pod в процессе.
  • После запуска всех контроллеров kube-scheduler определит блоки в "ожидающем" состоянии, что является причиной того, что они еще не были запланированы к запуску на узле. Планировщик находит подходящие узлы для pod, затем связывается с kubelet в каждом узле, чтобы взять управление и начать развертывание.
Развертывание Kubernetes

Варианты использования развертывания Kubernetes

Существует четыре способа развертывания контейнерных приложений и рабочих процессов через развертывания Kubernetes. Стратегия развертывания Kubernetes, которую вы применяете, может реализовывать один или несколько таких вариантов использования.

Создание

Разверните совершенно новые pod Kubernetes и наборы ReplicaSet.

Обновление

Объявите новое желаемое состояние и запустите новые pod и наборы ReplicaSet в контролируемом режиме.

Откат

Если текущее состояние нестабильно, может помочь возврат развертывания Kubernetes в предыдущее состояние.

Масштабирование

Увеличьте количество pod и наборов ReplicaSet в развертывании Kubernetes, не изменяя их.

Стратегии развертывания Kubernetes

Лучшая стратегия развертывания Kubernetes для вашего сценария зависит от многих факторов: сколько времени простоя вы можете сэкономить (если применимо), вашей среды установки, насколько вы уверены в стабильности новой версии или платформы, нужно ли вам тестировать, а также что вы хотите узнать, стоимость ресурсов, доступность и бизнес-цели. Вот четыре общие стратегии развертывания, которые организации используют в рабочей среде.

Схема постепенного развертывания

Постепенное

Метод развертывания Kubernetes по умолчанию — постепенное или последовательное развертывание. Это развертывание медленно заменяет по одному pod во избежание простоев Старые pod уменьшаются только после подготовки новых pod. Если ваше развертывание сталкивается с проблемами, вы можете приостановить или отменить развертывание Kubernetes, не отключая весь кластер.

Схема сине-зеленого развертывания

Сине-зеленое

В сине-зеленом варианте развертывания вы выпускаете новую версию (синюю) вашего приложения или рабочего процесса, пока текущая версия (зеленая) продолжает работать. Это позволяет вам тестировать синюю версию в процессе производства, предоставляя пользователям только зеленую, стабильную версию. После тестирования синяя версия постепенно заменяет зеленую.

Схема предварительного развертывания

Предварительное

Позвольте вашим клиентам протестировать развертывание Kubernetes, выпустив новую версию для небольшой группы клиентов. Запустите один ReplicaSet новой версии вместе с текущей версией, а затем, по истечении определенного периода времени без ошибок, увеличьте масштаб новой версии по мере удаления старой.

Схема A/B-тестирования

A/B-тестирование

Подобно стратегии предварительного развертывания Kubernetes, стратегия A/B-тестирования нацелена на определенную группу клиентов. Однако, развертывание A/B-тестирования стремится установить больше, чем стабильность версии — оно используется для проверки того, насколько эффективна версия для достижения бизнес-целей. Новая версия распространяется среди пользователей на основе таких факторов, как файлы cookie, географическое расположение, операционная система и тип устройства, и часто запускается вместе с текущей версией, увеличивая масштаб по мере того, как новая версия доказывает свою ценность.

Инструменты развертывания Kubernetes

Хотя для выполнения любой из этих стратегий развертывания Kubernetes можно использовать командную строку или YAML-файлы, вы можете получить больше преимуществ от ваших кластеров и развертываний, используя средства и службы развертывания Kubernetes.

Azure DevOps

Полная цепочка поставок приложения для автоматизации развертываний Kubernetes. Сбалансируйте скорость и безопасность, быстрее предоставляя код в большом масштабе.

Helm

Средство упаковки с открытым исходным кодом. Устанавливайте, обновляйте и администрируйте приложения Kubernetes с помощью диаграмм, которые вы создаете, редактируете, распространяете и публикуете.

Служба Azure Kubernetes (AKS)

Высокодоступная, безопасная и полностью управляемая служба Kubernetes. Развертывайте контейнерные приложения и управляйте ими в облаке.

Kubernetes уже к вашим услугам — бесплатно в Azure