Назад | Перейти на главную страницу

Сопоставление нескольких URL-адресов через Google Cloud HTTP Load Balancer с контейнерами Docker в CoreOS

Поскольку CoreOS предназначен для запуска контейнеров докеров, мне было интересно, есть ли способ сопоставить серверные службы на балансировщике нагрузки HTTP напрямую с образами Docker, работающими на одном экземпляре CoreOS.

Это структура, к которой я собираюсь:

www.example.com/marketing -> docker:marketing-app
www.example.com/accounts -> docker:accounts-app
www.example.com/ -> docker:www-app
...

Я знаю, что это можно сделать с Kubernetes с использованием Ingress - каждый докер-контейнер будет рассматриваться как серверная служба HTTP Load Balancer, это в конечном итоге то, что я буду использовать для производства; для моей настройки test / qa / demo я ищу что-то гораздо более простое, один большой экземпляр CoreOS, работающий с несколькими контейнерами докеров и имеющий точно такой же балансировщик нагрузки HTTP (который позже будет использоваться в продукте), указывающий на контейнеры докеров на экземпляр CoreOS.

Есть ли в CoreOS такой функционал?

Если нет, то какие еще варианты, кроме запуска контейнера NGINX, у меня есть для маршрутизации всего трафика от балансировщика нагрузки HTTP в разные контейнеры?

В GCP L7 LBs вы:

LB Frontend >> LB Backend >> Группа экземпляров >> Экземпляр >> порт

Итак, вся тяжелая работа приходится на балансировщик нагрузки.

Вот шаги, чтобы получить то, что вы хотите:

  1. Убедитесь, что у каждого контейнера есть собственный порт, открытый на хост-машине (CoreOS), и что службы, которые вы хотите предоставить, доступны через эти порты.

  2. Создайте правило брандмауэра, которое разрешает трафику от 130.211.0.0/22 ​​и 35.191.0.0/16 достигать вашего хоста CoreOS. - Это разрешает трафик от балансировщиков нагрузки к вашим контейнерам.

  3. Убедитесь, что хост CoreOS принадлежит к группе экземпляров.

  4. Идите вперед и настройте свои бэкенды LB (отредактируйте конфигурацию LB). Добавьте новую серверную службу для каждого контейнера, запущенного в экземпляре CoreOS, указав его порт. (здесь вы связываете каждый контейнер с другим сервером)

  5. Продолжайте настраивать правила хоста и пути для отправки трафика на бэкэнды по своему усмотрению.

  6. Настройте свой интерфейс (и IP и, возможно, SSL сертификаты)

  7. Дайте ему 5 минут, чтобы собрать и протестировать свои вещи. Готово!

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

Видеть https://cloud.google.com/compute/docs/load-balancing/http