Рубрики
Uncategorized

Успокаивающее приложение Jams с Træfik

Использование TRæFIK (вместо Nginx) для быстрого развертывания прототипов и микросервисов к нашему рору докера. Помечено докер, Traefik, Devops, микросервисами.

Это было первоначально опубликовано на Flexmr dev blog Отказ

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

Поскольку вы ожидаете, что это может произвести много приложений. Конфигурация для Nginx («Распределительная коробка» сервера) начала становиться более гроздивыми. Новые (и старые) конфиги серверов и сертификаты SSL начали накапливаться. Перемещение конфигурации NGINX в отдельный репозиторий Git был уклонен, но он не решил базовую проблему. Я начал смотреть на решение, которое лучше установил наше дело.

Наша установка инфраструктуры для прототипов (и, как это происходит, внутренний инструмент, который называется волосатый сквамщик — больше на том, что в будущем) живет на выделенном сервере, который работает в режиме Docker Mode (поэтому он готов к масштабу, когда нам нужно).

Мой список желаний для решения обратного прокси:

  • Минимальная конфигурация, в идеале на стороне приложения
  • Масштабировать
  • Легко использовать СТАРСЕРГИПТ для генерации сертификата (предоставление и обновление)
  • Приятно иметь (только потому, что нам это не нужно прямо сейчас): балансировка нагрузки

Я бы посмотрел на популярных nginx-proxy рядом с Docker-Letsencrypt — Nginx-Proxy-Companion Однако в духе экспериментов я думал, что дадим новое вихре.

Træfik.

TRæfik — это современный HTTP обратный прокси и балансировщик нагрузки, который облегчает развертывание микросервисов. TRæFIK объединяет свои существующие компоненты инфраструктуры и автоматически настраивает себя и динамически. Указывая Træfik в вашем оркестратере должно быть Только Шаг конфигурации, который вам нужен.

Мы собираемся прикоснуться к небольшой порции функциональности Træfik в примере ниже. Что мы стремимся достичь вот:

  • Новые услуги могут быть развернуты на наш сервер разработки без необходимости внесения никаких изменений за пределы этого хранилища приложений.
  • Новые сертификаты SSL автоматически предоставляются (и обновлены) СТАРСЕРГИПТ Отказ

Покажите мне какой-нибудь код!

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

Что мы имели

В примере я описал выше, я определил отдельные стеки как для приложений HSB, так и для Proto1, а также Nginx. NGINX Используется для части стека HSB в силу IT, будучи первым стеком на сервере разработки, это было разделено, как только мы начали добавлять больше приложений.

Каждое приложение имеет свой собственный репозиторий GIT, в котором файл стека Docker определяет, как он работает в пределах роя (сколько экземпляров, памяти и ограничения процессоров, сетевых данных). Мы развертываем через CI.

Новый мир

Стек 1: Træfik

Развернуты с: Docker Stack Deploy —Compose-file Traefik-Stack.yml —with-реестр-аутефик Traefik

Стек 2: HSB

Развернуты с: Docker Stack Deploy —Compose-file hsb-stack.yml —with-реестр-auth hsb

Стек 3: Proto1

Развернуты с: Docker Stack Deploy —Compose-file Proto1-Stack.yml —with-authyry-auth proto1

Визуальный вид конфигурации

Traefik поставляется с довольно Bonny UI, который мы настроили для обслуживания порта 8080 хоста. Я получаю доступ через SSH-порт вперед, например: SSH -L8080: localhost: 8080 … Как я не доступен внешне ( и не стоит! ).

Довольно красивый Traefik Ui

Работал пример

Сопровождающий репо в Ниже использует различную настройку на настройку HSB/Proto1 выше. Я сделал это, чтобы проиллюстрировать несколько услуг в том же стеке и как одиночные услуги могут быть назначены несколькими доменами.

Neilbartley/Traefik-Swarm. Пример

Трафик Рой (режим) Пример

Пожалуйста, смотрите сопровождающиеся Блог пост для фона.

Запуск этого примера

Команды и Видео Отказ

Я использую Jwilder/WHOAMI Находятся Это обеспечивает веб-сервис, который просто повторяет свой контейнер i d.

Стек 1 — Трафик, как указано выше.

Стек 2 представляет собой Proto1, это имеет администратор (Proto1.neil.bar) и сервисы Backoffice (Proto4.neil.bar).

Стек 3 представляет собой PROTO2, у этого есть единое обслуживание, приложение (PROTO2.NEIL.BAR и PROTO3.NEIL.BAR).

Как мы настроили блок [ACME] в нашем Traefik.toml, то Traefik будет автоматически запросить, обеспечивать и возобновлять сертификаты для хостов, определенных в метке Traefik.frontend.Rule в каждой службе от СТАРСЕРГИПТ Отказ

Добавление дополнительных услуг не требует никаких изменений в стеке Traefik и с СТАРСЕРГИПТ интеграция Это действительно делает эту задачу тривиальной.

демонстрация Asciinema

Оригинал: «https://dev.to/neilbartley/calming-app-jams-with-trfik-3b7b»