Поскольку 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 >> Группа экземпляров >> Экземпляр >> порт
Итак, вся тяжелая работа приходится на балансировщик нагрузки.
Вот шаги, чтобы получить то, что вы хотите:
Убедитесь, что у каждого контейнера есть собственный порт, открытый на хост-машине (CoreOS), и что службы, которые вы хотите предоставить, доступны через эти порты.
Создайте правило брандмауэра, которое разрешает трафику от 130.211.0.0/22 и 35.191.0.0/16 достигать вашего хоста CoreOS. - Это разрешает трафик от балансировщиков нагрузки к вашим контейнерам.
Убедитесь, что хост CoreOS принадлежит к группе экземпляров.
Идите вперед и настройте свои бэкенды LB (отредактируйте конфигурацию LB). Добавьте новую серверную службу для каждого контейнера, запущенного в экземпляре CoreOS, указав его порт. (здесь вы связываете каждый контейнер с другим сервером)
Продолжайте настраивать правила хоста и пути для отправки трафика на бэкэнды по своему усмотрению.
Настройте свой интерфейс (и IP и, возможно, SSL сертификаты)
Дайте ему 5 минут, чтобы собрать и протестировать свои вещи. Готово!
Как только вы поймете, как это работает, им будет действительно легко управлять.
Видеть https://cloud.google.com/compute/docs/load-balancing/http