问题描述
想在办公室中使用容器运行服务。问题是他们没有多余的机器可以作为专用主机。因此,他们考虑使用每个人的台式工作站作为工作节点创建一个Swarm。但是,如果管理节点(用户的计算机)关闭,整个Swarm都会停止。用户设想了一个Swarm,其中每个工作节点都可以在需要时充当管理节点。当管理节点停止工作时,另一个工作节点会承担管理节点的角色,服务将继续运行而不中断。用户想知道是否可以创建一个分散的Swarm,其中任何可用的节点都可以在需要时承担管理节点的角色。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据Docker Swarm的设计,它是分散的,因此您可以将任何节点提升为管理节点。通常,3个管理节点足够,对于具有数千个节点的环境,5个管理节点足够。
您可以参考Docker Swarm的官方文档了解更多信息:https://docs.docker.com/engine/swarm/admin_guide/
方案2
每个Swarm管理节点默认都具有工作节点功能(可以更改)。然而,当涉及到可用管理节点数量与活动管理节点数量之间的比率时,管理节点的数量有一个非常重要的组成部分,这被称为“管理节点的法定人数”。有关Swarm管理的更多信息和法定人数,请参考:https://docs.docker.com/engine/swarm/admin_guide/#maintain-the-quorum-of-managers
在您的特定情况下,您可以使用安装了Docker的虚拟机,而不是使用实际的硬件机器(台式工作站/笔记本电脑/服务器)。对于它们的自动化管理,您可以使用Vagrant。然而,这一切都是关于管理整个系统的可用硬件资源。您还可以将任意数量的其他工作站添加到“Docker Swarm网络”中,无论是作为Docker主机还是虚拟机主机。
请注意:如果您的项目处于早期开发阶段,我建议您考虑使用Podman作为Docker的替代品。
P.S. 您可能希望在问题中明确说明您的项目想法,以便获得比目前更好的建议。
祝您好运,祝您有愉快的一天。