Пропустить навигацию

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

Подберите оптимальную стратегию развертывания 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

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

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

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

Создать

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

Обновить

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

Откат

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

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

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

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

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

На платформе

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

Синий и зеленый

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

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

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

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

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

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

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

Azure DevOps

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

Helm

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

Служба Azure Kubernetes (AKS)

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

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