Из-за ограничений в физических ресурсах мне нужно знать, можно ли одновременно объявить один и тот же хост в качестве менеджера и узла?
Ничего не могу найти в официальной документации. Если это технически возможно, это хорошая практика? Могло ли это вызвать проблемы?
Менеджеры режима Docker Swarm неявно являются узлами в своей функциональности. Каждый узел в рое должен иметь роль менеджера или рабочего. Однако, если вы не включите ограничение, согласно которому рабочая нагрузка должна выполняться на рабочих узлах, она может и будет выполняться на узлах диспетчера режима роя.
Причина разделения этой функциональности на отдельные узлы состоит в том, чтобы повысить безопасность и производительность. Любой доступ к диспетчеру при выходе из контейнера будет иметь доступ для управления всем кластером, при этом выход контейнера для работника будет ограничен этим единственным узлом. У менеджеров также есть некоторые накладные расходы на поддержание текущего состояния кластера, поэтому в больших кластерах вы не хотите запускать рабочие нагрузки на этих менеджеров, чтобы обеспечить большую масштабируемость.
Однако обычным небольшим развертыванием является либо кластер с одним узлом, который также является менеджером, либо кластер с тремя узлами для обеспечения высокой доступности, каждый из которых является менеджерами.