Балансер Traefik в Rancher Cloud

Подготовка и деплой в Rancher

В API -> Keys -> Add Account API Key создаем ключ:

Сохраняем полученные Access Key и Secret Key:

Ставим label на хост где будет запущен traefik:

В Infrastrucure -> Hosts нажимаем на редактирование:

 

Добавляем label:

 

Пишем docker-compose для traefik:

io.rancher.scheduler.affinity:host_label: tlb=yes Запускает traefik на хостах с указанным label
—web Включает веб интерфейс
—rancher Включает поддержку Rancher
—rancher.exposedbydefault=false По умолчанию добавляет Rancher сервисы

Деплоим traefik в Rancher:

В Staks -> User -> Add Stack, пишем название стека и загружаем docker-compose.yml

Включаем поддержку traefik в сервисах к которым трафик будет идти через балансер:

traefik.enable Включает поддержку traefik
traefik.frontend.rule  Смотрит на приходящий запрос
traefik.port Порт в контейнере на котором запущено приложение
traefik.backend Бекенд на который проксируется трафик

Если все хорошо, то перейдя по адресу traefik_ip_addess:8080, увидим:

 

Сбор метрик балансера

Для сбора метрик будем использовать Prometheus и для визуализации Grafana. Что б включить сбор метрик в traefik дописываем в docker-compose.yml две строчки

— —web.metrics.prometheus
— —web.metrics.prometheus.buckets=0.1,0.3,1.2,5.0

Создаем директории /opt/conf/prometheus:

Создаем там файл prometheus.yml:

Деплоим grafana и prometheus:

Grafana должна быть доступна по адресу grafana_ip:3000. Переходим в  Data Sources -> Add Data Source и настраиваем подключение у Prometheus

Теперь скачиваем Traefik Realtime Metrics dashboard с grafana.com. Импортируем Dashboard и наслаждаемся результатом