Мы без проблем используем докер с полутора лет с настройками «одиночного хоста». Но теперь мы хотим пойти дальше и использовать Docker Swarm (последняя версия).
Наша старая установка была простой: отдельные хосты с nginx в качестве обратного прокси и некоторая магия для обновления конфигураций и запроса сертификатов SSL для новых сервисов.
Чего я не понимаю: как настроить отказоустойчивость / высокую доступность с помощью Docker Swarm
Например:
Теперь предположим, что GoDaddy с доменом, например myswarm.com, для этого домена должен быть установлен один внешний IP-адрес, я бы выбрал один из внешних IP-адресов виртуальной машины Swarms, и он должен работать.
Но что происходит, когда виртуальная машина, связанная с доменом, выходит из строя? Как справиться с этим сценарием с помощью Docker? Или мне нужно еще две виртуальные машины с HAProxy и несколько виртуальных IP-адресов, выходящих наружу?
IP-адрес должен быть назначен сетевому интерфейсу, доступному для операционной системы хоста. Все узлы в рое должны иметь доступ к диспетчеру по IP-адресу.
Поскольку другие узлы связываются с управляющим узлом по его IP-адресу, вы должны использовать фиксированный IP-адрес.
Вы можете запустить ifconfig
в Linux или macOS, чтобы просмотреть список доступных сетевых интерфейсов.
Если вы используете Docker Machine, вы можете получить IP-адрес менеджера с помощью docker-machine ls или docker-machine ip
- например, docker-machine ip manager1
.
Источник: https://docs.docker.com/engine/swarm/swarm-tutorial/#the- ip-address-of-the-manager-machine
Кроме того, руководство должно быть полезным для развертывания HA в Docker Swarm http://docs.master.dockerproject.org/swarm/multi-manager-setup/