本文详细讲述了码头工人集群的创建与管理。分享给大家供大家参考,具体如下:
在《码头工人简单安装与应用入门教程》中编写一个应用程序,并将其转化为服务,在《码头工人分布式应用教程》中,使应用程序在生产过程中扩展5倍,并定义应该如何运行。现在将此应用程序部署到集群上,并在多台机器上运行它,通过将多台机器连接到<强> 强>集群上,使多容器,多机器应用成为可能。
群(集群)是运行码头工人并加入到一个集群中的一组机器,在这种情况下,您将继续运行以往的码头工人命令,但是现在它们将由群经理(集群管理器)在集群上执行。集群中的机器可以是物理的或虚拟的,加入集群后,它们被称为节点(节点)。集群管理器可以使用多种策略来运行容器,比如空旷节点(最空的节点),它使用容器填充最少使用的机器。或者全球(全局),它确保了每台机器只能得到指定容器的一个实例。您可以指示集群管理器在组成文件中使用这些策略,就像您已经使用的策略一样。
集群管理器是集群中唯一可以执行命令的机器,或者授权其他机器作为工人工(人)加入集群。工人只是在那里提供能力,并没有权力告诉任何其他机器可以做什么和不可以做什么,到目前为止,您已经在本地机器上以单主机模式使用码头工人,但是码头工人也可以切换到集群模式,这就是使用集群的原因。当立即启用集群模式使当前机器成为集群管理器时,码头工人将运行您正在管理的集群上执行的命令,而不仅仅是在当前的机器上。
一个集群由多个节点组成,可以是物理机或虚拟机,做法很简单,运行<代码>码头工人群init 代码>来启用集群模式,并让你的当前机器成为集群管理器,然后在其他机器上运行<代码>码头工人群加入> 代码让它们作为工人加入集群。
接下来使用虚拟机快速创建一个集群,需要一个可以创建虚拟机(vm)的虚拟机管理程序,在机器上安装甲骨文VirtualBox应用程序。如果是Windows 10系统,而且安装了hyper - v,则无需安装VirtualBox,而应该使用hyper - v。
现在,使用<代码> docker-machine 代码>创建几个虚拟机,使用VirtualBox驱动程序:
virtualbox myvm1 docker-machine创建美元——驱动程序 virtualbox myvm2 docker-machine创建美元——驱动程序 >之前您现在创建了两个名为myvm1和myvm2的虚拟机,使用下面命令列出机器并获取其IP地址:
美元docker-machine ls >之前第一台机器将作为管理员,执行管理命令,认证工人加入群体,第二台机器将成为工人。可以使用<代码> 代码> docker-machine ssh将命令发送到虚拟机,执行<代码>码头工人群init 代码>使myvm1成为集群管理器:
美元docker-machine ssh myvm1“码头工人群init - advertise-addr & lt; myvm1的ip>” >之前在执行<代码>码头工人群init 代码>后,响应中会包含一个预配置的<代码>码头工人群加入代码>命令,您可以在要添加的任何节点上运行该命令。复制这个命令,并通过<代码> docker-machine ssh> 代码把它发送到名为<强> >强的虚拟机,让作为工人加入新的集群:
美元docker-machine ssh myvm2“码头工人群加入——令牌& lt; token>& lt; ip>: 2377” >之前将myvm2加入集群时,端口号要选择2377年,因为端口2376是码头工人守护进程端口,不要使用此端口,否则可能会遇到错误。在管理器上运行ls 代码> <代码>码头工人节点以查看集群中的节点:
美元docker-machine ssh myvm1“码头工人节点ls” >之前现在集群己经创建完成,如果想要删除集群,可以使用码头工人群离开在每个节点运行。
现在只要重复《码头工人分布式应用教程》中使用的过程来部署新的集群,只要记住,只有像myvm1这样的集群管理器才能执行码头工人命令,工人只是干活的。
到目前为止,您已经在<代码> docker-machine ssh> 代码中包装了码头工人命令来与虚拟机进行通信,另一个选择是运行<代码> docker-machine env & lt; machine> 代码来获取并运行一个配置当前的命令,以便与虚拟机上的码头工人守护进程通信。这个方法更好,因为它允许使用本地文件来“远程”部署应用程序,而不需要将它复制到任何地方。
码头工人集群的创建与管理实例详解