#docker #docker-swarm
#docker #docker-swarm
Вопрос:
У меня есть кластер из 10 узлов Swarm, запущенный с помощью docker swarm join
команды
Если я хочу масштабировать экземпляр docker до 15 с помощью
docker service create --replicas 15
как docker swarm узнает, с чего начать контейнер?
это циклический перебор или он учитывает вычислительный ресурс (сколько используется cpu / mem)?
Ответ №1:
Когда вы создаете службу или масштабируете ее в режиме Swarm, scheduler
on Elected Leader
(один из менеджеров) выберет узел для запуска службы. В настоящее время лидеру доступны 3 стратегии.
- распространение
- binpack
- Случайный
Стратегии spread
и binpack
вычисляют ранг в соответствии с доступным процессором узла, его оперативной памятью и количеством контейнеров, которые у него есть. random
Стратегия не использует никаких вычислений. Он выбирает узел случайным образом и в первую очередь предназначен для отладки.
В соответствии spread
со стратегией Swarm оптимизируется для узла с наименьшим количеством контейнеров. binpack
Стратегия заставляет Swarm оптимизировать для узла, который наиболее загружен.
Swarm использует spread по умолчанию. Имейте в виду, что вы также можете Constraint
использовать контейнеры на определенных узлах.
Невозможно установить стратегии в версии docker 1.12.1 (последняя версия на дату публикации)
Комментарии:
1. Где я могу найти документ на официальном сайте?
2. Взгляните сюда: github.com/docker/docker.github.io/blob/master/swarm/scheduler /…