Docker Swarm для управления безголовыми контейнерами и их обновления (или сторожевой башни?)
Я пытался разработать стратегию использования Docker Swarm для управления кучей безголовых контейнеров - не нужно балансировать нагрузку, открывать какие-либо порты или выполнять автоматическое масштабирование.
Единственное, что мне нужно, - это возможность обновлять все контейнеры (на всех узлах), если обновляются какие-либо изображения. Каждый работающий контейнер должен иметь определенный --hostname
,
Бежит docker service
даже жизнеспособным для этого? Или я должен просто сделать нормальный docker run
нацеливание на конкретные узлы, чтобы указать --hostname
я хочу? Причина, по которой я даже спрашиваю о docker service
потому что это позволяет вам делать обновления (принудительно обновлять все контейнеры, если есть обновленные образы).
Также думал, что Docker Swarm позволит немного легче следить за всеми контейнерами (т.е. управлять ими из центрального места).
Другим вариантом, на который я смотрел, была сторожевая башня, запускаемая на каждом сервере, на котором запущен один из контейнеров, в качестве альтернативы рою. Моя единственная проблема с этим заключается в том, что он не обеспечивает никакой оркестровки для централизованного управления.
У кого-нибудь есть идеи о том, что будет лучшим вариантом, учитывая сценарий?
1 ответ
Docker Swarm не дает вам никаких преимуществ в отношении обновления обновлений, кроме docker service
Команда swarm обеспечивает только горизонтальное масштабирование пользователя и размещает балансировщик нагрузки перед теми репликами, которые называются "service", а также некоторые другие полезности, такие как репликация событий докера на узлах swarm.
docker service --force
будет работать как ожидалось.
Тем не менее, вы, вероятно, должны использовать оба, Docker Swarm для оркестровки и Watchtower для непрерывного обновления.