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

Настройка CoreOS Cluster DNS

Я не знаю, как настроить DNS для кластера coreos.

В настоящее время у меня есть все мои экземпляры api за балансировщиком нагрузки haproxy и записью DNS A, которая указывает на (эластичный) IP-адрес балансировщика нагрузки. Итак, я могу отправлять трафик на api.myapp.com, и он перенаправляется на экземпляр api. Это работает нормально, но очевидно, что балансировщик нагрузки является единственной точкой отказа.

Если я перейду к настройке кластера с использованием coreos, и в кластере будет запущено несколько служб, а не только служба api, как мне указать api.myapp.com на кластер так же, как я делаю сейчас, но убедиться, что все запросы отправленные с этого адреса каким-то образом перенаправляются только на службу api внутри кластера? Мне это непонятно, прочитав множество руководств по coreos.

Вам нужно будет запустить уровень маршрутизации (HAproxy должен работать нормально), который направляет трафик на основе заголовка хоста HTTP. При желании запустите этот контейнер маршрутизации на нескольких машинах, привязанных к 80/443. Добавьте записи A для каждой из ваших служб, которые указывают на эти несколько машин. Ваш LB теперь доступен.

Затем настройте правила маршрутизации HAproxy, чтобы использовать местоположение ваших нисходящих сервисов и соответствующим образом маршрутизировать трафик. Например, запрос к api.example.com перенаправляется на 10.10.10.1, 10.10.10.2 или 10.10.10.3. Маршрутизатор (10.10.10.1:443) видит, что у него есть два внутренних контейнера, отвечающих за api.example.com, запущенный 10.10.10.99:9999 и 10.10.10.98:9898. Трафик направляется в один из контейнеров, и запрос выполняется.

Полный пример этого с прокси Vulcan и etcd находится здесь: https://coreos.com/blog/zero-downtime-frontend-deploys-vulcand/