解释概念的方法

解释概念的方法,第1张

详解DockerSwarm概念与用法

本文详细介绍了dockerSwarm的定义和用法,有助于大家更好的理解和应用docker容器,有兴趣的可以掌握。

DockerSwarm是Dockerenterprises开发设计的容器集群管理服务。从1.12.0版本开始,安装后就已经是Docker的内置部分(捆绑软件)。也叫群模式,不需要额外安装。

Kubernetes相比,DockerSwarm是一款简单的手机软件,似乎难以承受。但是,它与docker-compose的兼容性可以填充一切。对于没有集群应用经验的新手来说,DockerSwarm是一个非常好的选择。

定义

DockSwarm,关键包括以下定义:

  • 蜂群
  • 结节
  • 服务
  • 工作
  • 负载平衡
  • Swarm本身的意思是“蜂群”,蜂群,蜜蜂。这里指的是电子计算机集群被Docker连接后的情况。DockSwarm命令可以建立、添加和离开集群。

    一个节点是一个电子计算机节点,它也可以被认为是一个码头节点。节点分为两类:管理者和工作者。一个群必须至少有一个管理器,一些管理方法命令只能在管理器上应用。两种节点都可以运行服务,但只有管理器可以执行运行命令。例如,可以在管理器中使用dockernode命令来查询、装备和删除节点。

    Stack是一组服务,类似于docker-compose。默认情况下,一个栈使用同一个网络,可以互相浏览,与其他栈屏蔽。这个定义只是为了编辑方便。Dockerstack命令可以方便、实用地 *** 作一个堆栈,而不需要逐个实际 *** 作服务。

    服务是一种容器。对于客户来说,服务是与Swarm互动的最具体的内容。服务 *** 作模式有两种,一种是复制的,是特定服务 *** 作容器的总数;第二个是全局的,它在所有符合运行标准的节点上运行一个这样的容器。Docker服务命令实际上可以在Swarm中 *** 作服务。

    任务是指运行一个容器的日常任务,是Swarm执行命令的最小模块。为了成功运行服务,必须实现一个或几个任务(在服务的容器总数中),以确保每个容器成功启动。一般客户实际 *** 作的是服务,而不是任务。

    负载均衡是一个三层交换机,也包括反向代理。Swarm应用了Ingress模式的三层交换机,即浏览每个节点某个公布的端口号就可以自动表示真实的服务项目。基本原理如下图所示。

    复制模式

    services: some-serivce: ... deploy: mode:replicated replicas:3

    默认情况下,模式是复制的,因此可以省略这一行。默认情况下,将副本数量设置为1意味着该服务只启动一个容器。这样可以按需启动几个服务项目,Swarm会自动调整。有时一个节点会启动几个容器。

    全局模式

    services: some-serivce: ... deploy: mode:global placement: ...

    所有可部署节点都部署有一个。根据放置,可以限制合格的节点,并且可以防止在不合适的节点中部署。

    实际 *** 作

    下面是一些常见的具体步骤。

    建立第一个节点

    dockerswarminit--advertise-addr$IP

    $IP是当今节点的外部可浏览IP,方便其他节点寻址方式。

    这样,一个群被重置,它只有一个管理节点。

    向Swarm添加新节点

    在Manager节点中,执行以下命令以了解如何添加节点:

    $dockerswarmjoin-tokenmanager Toaddamanagertothisswarm,runthefollowingcommand: dockerswarmjoin--tokenSWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-ezs4fylj526e801b3cl0pojr510.174.28.52:2377 $dockerswarmjoin-tokenworker Toaddaworkertothisswarm,runthefollowingcommand: dockerswarmjoin--tokenSWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-164iqklrfv8o3t55g088hylyk10.174.28.52:2377

    在没有添加群的设备上,命令dockerswarmjoin-token...它可以成为这个群体的管理者或工作者节点。

    设置节点标签

    在管理器节点中,您可以设置任何节点的身份:

    dockernodeupdate$node_name--label-addmain=true

    $node_name是要设置的节点的ID或主机名。标签是一个键值对。maininmain=true是键,true是值。

    设置标签后,可以在合成文档中使用位置约束来限制可用节点。

    services: some-serivce: ... deploy: placement: constraints: -node.labels.main==true ...

    配备,这样一些-service只能应用在标签设置为main=true的节点上。

    启动和终止服务项目

    dockerstackdeploy$stack_name-cdocker-compose.yaml-cother.yaml...

    $Stack_name是堆栈的名称。可以用-c指定几个docker-compose文档,或者在同一个栈下批量部署几个文档。这种YAML文档编写与使用docker-compose命令实现的原始文档没有什么不同,只是添加了以下独特的设备,并且将忽略Swarm场景中的一些不兼容设备。

    强烈建议使用docker-compose文档来编辑堆栈,而不是使用dockerservicecreate立即手动创建。有关详细项目,请参考合成文件版本3参考|Docker文档。

    当Stack的所有服务都必须终止时,可以执行以下命令。

    dockerstackrm$stack_name

    升级运行服务项目的镜像系统

    dockerserviceupdate--image$image:$tag$service_name

    以上是DockerSwarm的定义和用法的详细说明。关于DockerSwarm的很多资料,请关注其他相关文章!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774344.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存