Создайте локальный кластер с Vagrant/CoreOS/Docker

Создайте локальный кластер с Vagrant/CoreOS/Docker

Я пытаюсь создать локальную среду для тестирования, состоящую из:

  • Кластер Vagrant CoreOS (3 узла)
  • контейнер Docker, запущенный с загруженным образом Nginx, запущенный на одном узле

Я успешно установил Vagrant и CoreOS. Etcd запущен и работает, и я много игрался с Fleet. Я также запустил контейнер Nginx через службы Fleet. Что я не могу понять, так это:

  • Как мне направить трафик на определенный контейнер? Я хочу, чтобы, указав локальный браузер на локальный адрес (например, example.dev), кластер отвечал правильным контейнером Nginx (размещенным где-то в кластере).
  • Является ли прокси подходящим решением? Если нет - создано ли что-то для этой цели?

Заранее спасибо и не стесняйтесь спрашивать подробности, которые я мог забыть!

решение1

Самый простой ответ — просто отредактировать локальный файл hosts, например, /etc/hostsв Linux или OS X, или C:\Windows\System32\drivers\etc\hostsна типичной машине Windows.

Если вам нужно что-то более производственного уровня, чем быстрое решение для разработки, то вам нужен обратный прокси-сервер вроде nginx или haproxy, и его автоматическая настройка в зависимости от доступности внутренних контейнеров nginx.

  • каждому внутреннему контейнеру nginx понадобится «вспомогательная» служба, чтобы объявить о его доступности для etcd
  • затем бегиконфддля прослушивания изменений etcd и обновления конфигурации обратного прокси-сервера

Это позволяет вам маршрутизировать один порт обратного прокси-сервера на любое количество внутренних служб nginx, которым нужно только прослушивать частную сеть.

Я написалболее подробная иллюстрация этого подхода здесь.

Связанный контент