company_banner

Backyards — автоматизированный service mesh поверх многооблачной и гибридной инфраструктуры

Автор оригинала: Zsolt Varga
  • Перевод


Потестируйте Backyards на собственных кластерах: curl https://getbackyards.sh | sh && backyards install -a --run-demo. Если интересно, см. детали последнего релиза.

В июне мы представили Backyards, автоматизированную «сервисную сетку» (service mesh) поверх нашего оператора Istio. Она сильно упрощает управление service mesh в многооблачной и гибридной инфраструктуре. Backyards интегрирован в платформу управления контейнерами Pipeline на Banzai Cloud, но также доступен как отдельный продукт. Конечно, интеграция с Pipeline даёт множество конкретных преимуществ (как управление приложениями на нескольких облаках), но Backyards работает на любой установке Kubernetes.

В анонсе Backyards мы обсудили некоторые из основных функций: создание service mesh в несколько щелчков мыши, мониторинг приложений через уникальное графическое представление и управление функциями Istio из удобного UI. Тогда мы упомянули, что платформа способна управлять многокластерными сервисными сетками Istio в многооблачных и гибридных развёртываниях.

В этой статье более подробно рассмотрим эту функцию — автоматизированный многокластерный service mesh.

Будь то один или несколько кластеров, многооблачная или гибридная среда, Backyards использует один и тот же набор функций и удобный интерфейс. Чрезвычайно просто начать с одного кластера, а потом в несколько щелчков мыши расширить service mesh на другие кластеры (multi-cloud или hybrid-cloud).

Мотивация


Гибридные и многооблачные системы быстро входят в обиход предприятий. Интерес и принятие таких решений сильно выросли после того, как Google представила Anthos в апреле этого года.

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

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

Пользователи Pipeline работают с одним или несколькими облаками. От этого зависит, какие конкретно функции им нужны. Можно выделить три ключевые функции:


Предпосылки


С самого начала платформа Pipeline поддерживала подключение разных облачных провайдеров на разных уровнях (кластеры, развертывания и службы). Это всегда было одним из наших приоритетов.

Одновременно мы активно работали над Istio. Сначала выпустили оператор для упрощения деплоя и управления Istio, а затем исследовали его мультикластерные возможности. В результате мы создали Backyards, автоматизированный продукт для многооблачной и гибридной инфраструктуры, интегрированный в Pipeline, c опенсорсным оператором Istio.

Backyards в Pipeline


В Pipeline вы можете установить гибридный или многокластерный service mesh и управлять им в локальной среде или в любой комбинации из пяти поддерживаемых нами облачных провайдеров.

Функция группировки кластеров (Cluster group) позволяет сформировать группы из кластеров при условии выбора одного кластера в качестве главного. Затем можно связать их с различными функциями, такими как Multi-cluster Deployment или Service Mesh.

Multi-cluster Deployment позволяет развернуть приложение одновременно на нескольких кластерах. Здесь мы не заостряем внимание на этой функции, но она будет использоваться для простого развертывания приложения на нескольких кластерах. Подробнее о ней можно почитать в этой статье.

В этой статье подробно рассмотрим функцию Service Mesh. Она устанавливает Istio на главном кластере и автоматически соединяет все кластеры в группе с помощью оператора Istio. После этого вы получаете межкластерное представление своих служб, а многокластерный mesh с точки зрения управления практически не отличается от обычного однокластерного.

Функции


Создание service mesh


Начнем с создания кластера на AWS, используя легкий и CNCF-сертифицированный дистрибутив Kubernetes — PKE. Затем построим service mesh Istio на этом кластере.

При создании service mesh в фоне также формируется кластерная группа (cluster group).

Через несколько секунд «сетка» установлена и готова к использованию.



Развертывание приложения


Теперь нам нужно демонстрационное приложение с микросервисами, чтобы показать возможности нашего продукта. В демонстрационных целях мы создали очень простой проект AllSpark, а также сделали диаграмму Helm c предварительной конфигурацией развертывания AllSpark, которое имитирует систему бронирования билетов в кинотеатре. Всё сделано в нашем облачном (SaaS) сервисе для диаграмм Helm.

С помощью вышеупомянутой функции Multi-cluster Deployment развернем это приложение, перейдя на вкладку Multi Cluster Deployments в UI. Добавляем в Pipeline репозиторий https://charts.banzaicloud.io/gh/spotguidetest, затем диаграмму meshdemo и нажимаем DEPLOY (для установки всех компонентов убедитесь, что все значения установлены в true ).



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

Обзор service mesh


Если вернуться к списку service mesh и нажать кнопку observe, появится панель управления. Поскольку в нашем тестовом приложении нет никакого трафика, а в системе нет метрик, то здесь мы пока не увидим никакой визуализации. В интерфейсе есть функция test flight, которая направляет трафик к выбранным конечным точкам. Если нажать кнопку HTTP в правом верхнем углу, вы сможете заполнить форму, содержащую сведения о конечной точке, и отправить в свои службы некоторый тестовый трафик. В нашем примере трафик должен попасть в службу frontpage на порту 8080.

Через несколько секунд появится график ваших служб. Узлы на нем представляют собой службы или рабочие нагрузки, а стрелки — сетевые соединения между различными службами. График построен по метрикам Istio, которые приходят из Prometheus.



Создание дополнительных кластеров


Расширение service mesh на дополнительные кластеры — даже у нескольких разных облачных провайдеров — выполняется всего в несколько щелчков мыши. Давайте создадим три дополнительных кластера у трех разных провайдеров, так интереснее. Мы можем легко развернуть еще один кластер PKE в Azure, а также кластеры OKE и GKE.



Расширение service mesh


Вернемся к списку service mesh, нажмем кнопку RESIZE MESH, а затем ADD NEW CLUSTER. Выбираем ранее созданные кластеры и нажимаем кнопку ADD. Вот и всё.



Расширение может занять несколько минут: каждый кластер должен подключиться и дойти до состояния HEALTHY.

Развёртывание приложения в нескольких кластерах


Теперь у нас service mesh на несколько кластеров, а ранее была активирована функция Multi-cluster Deployment в Pipeline, поэтому можно легко развернуть на этих кластерах наши демонстрационные микросервисы. В этой конкретной диаграмме Helm можно запросто включать и выключать компоненты. Поскольку функция Multi-cluster Deployment поддерживает переопределение параметров для каждого кластера, нужно лишь отредактировать деплой и установить, какие компоненты мы хотим запустить в каком кластере.

Для мультикластерного развертывания мы изменили настройки таким образом:

PKE на AWS

services: true
istioresources: true
frontpage: true
catalog: true
bookings: true

PKE на Azure

services: true
moviesv1: true
moviesv2: true
moviesv3: true

OKE

services: true
payments: true
notifications: true

GKE

services: true
analytics: true




Обзор service mesh на нескольких кластерах


Опять выбираем test flight в интерфейсе, чтобы направить дополнительный трафик на выбранную ранее конечную точку. Через несколько секунд появится что-то похожее на граф внизу. Теперь наше приложение распределено по четырем кластерам у четырех разных провайдеров.

Потрясающе, правда?!



Конфигурация НРА


Прежде чем закончить статью, взглянем на последнюю настройку: горизонтальное автомасштабирование pod'ов (Horizontal Pod Autoscaler). На странице Single-cluster Deployment в Pipeline вы можете легко настроить HPA на любое развертывание (в нашем случае analytics-v1).



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



Резюме


Благодаря Backyards в Pipeline легко настроить гибридный или многокластерный service mesh. Затем можно деплоить, отслеживать, управлять и устранять неполадки приложений на нескольких кластерах с помощью одного удобного пользовательского интерфейса.

Пробуйте бесплатно!
ITSumma
Собираем безумных людей и вместе спасаем интернет

Похожие публикации

Комментарии 1

    0

    А какие требования к ноде?
    Хотел запустить поиграться в миникубе(k8s 1.16 если не ошибаюсь) на вирт убунте 16(8 ядер, 12 озу) инсталлер не дождался старта одного из подов и вставал.

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