Я не уверен в том, как установить DNS для coreos кластера.
В настоящее время у меня есть все мои экземпляры API позади haproxy подсистемы балансировки нагрузки и DNS запись, которая указывает на (эластичный) 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- Deploy-vulcand /