Все это действительно возможно при создании или обновлении сервиса Swarm.
Это подпадает под опции «размещение контейнера» в этих командах. Если вас беспокоит только резервирование ресурсов, посмотрите на --reserve-cpu
и --reserve-memory
. Это будет гарантировать, что у узла будет свободная загрузка процессора или памяти на узле перед выполнением задач каждого контейнера.
Пример: если вам нужна служба swarm для развертывания двух реплик php, и каждая из них должна убедиться, что она находится на узле с 1 ГБ памяти и 1 ЦП, тогда service create --reserve-cpu 1 --reserve-memory 1GB php
планируется только контейнеры на узлах, которые, как известно планировщику Swarm, имеют такое количество оборудования имеется в наличии. Если узел имеет только 2 логических ЦП, он никогда не развернет более 2 реплик этой службы на этом узле.