由于物理资源的限制,我需要知道是否可以同时将同一主机声明为管理器和节点?
我在官方文档中找不到任何内容。如果从技术上讲可行,这是一种好的做法吗?它会引起任何问题吗?
答案1
Docker Swarm Mode 管理器在其功能中隐式为节点。Swarm 中的每个节点都必须具有管理器或工作器角色。但是,如果您不包含工作负载必须在工作器节点上运行的约束,那么它可以并且将在 Swarm Mode 管理器节点上运行。
将此功能拆分到单独的节点上的原因是为了提高安全性和性能,容器逃逸在管理器上获得的任何访问权限都将有权控制整个集群,而工作器上的容器逃逸将仅限于该单个节点。管理器在维护当前集群状态方面也有一些开销,因此在大型集群中,您需要避免在这些管理器上运行工作负载以实现更大的可扩展性。
然而,常见的小型部署要么是单节点 Swarm 集群(也是管理器),要么是 3 节点集群(每个节点都是管理器),以实现高可用性。