📜  Docker Swarm模式简介

📅  最后修改于: 2021-04-17 03:38:04             🧑  作者: Mango

Docker swarm是一个容器编排工具。 Docker中的Swarm Mode在版本1.12中引入,它能够在多个Docker主机上部署多个容器。对于此Docker,请使用覆盖网络进行服务发现,并使用内置的负载平衡器来扩展服务。 docker swarm的主要优势之一在于,无需手动重新启动服务即可修改docker服务(例如卷和网络)的配置Docker将更新配置,使用过期的配置停止服务任务,以及创建与所需配置匹配的新文件。

群模式的关键概念

  • 节点:节点是连接到Swarm的Docker引擎的实例。您可以在一台物理计算机或云服务器上运行一个或多个节点。节点可以是管理员或工作人员。管理器节点将称为任务的工作单元分派到工作器节点。辅助节点接收并执行从管理者节点分派的任务。
  • 服务:服务是与工人要执行的任务集合相关的高级概念。服务的一个示例是在三个节点上作为Docker容器运行的HTTP Server。
  • 负载平衡: Docker包含一个负载平衡器,用于处理服务中所有容器之间的请求。

Docker群是如何工作的?

如果要首先在群集中部署容器,则必须启动服务。服务由同一图像的多个容器组成。这些服务部署在一个节点内,因此要部署一个集群,必须至少部署一个节点。如下图所示,管理器节点负责任务的分配,调度任务和计划任务。管理器中的API是管理器节点和工作器节点之间的介质,用于通过使用HTTP协议进行相互通信。一个群集的服务可以被另一个群集使用。任务的所有执行均由工作程序节点执行。

可以创建单个管理器节点,但是没有管理器节点就不能创建工作器节点。管理者节点的理想数目是7。通过增加管理器节点的数量并不意味着可伸缩性将会增加。

群模式的功能

  1. 集群管理:-要创建Swarm,您可以使用Docker引擎CLI在其中部署应用程序。无需额外的编排软件即可管理群体。
  2. 多主机网络:-群可以包含多个覆盖网络,因此在部署服务时,您可以指定要在其上部署服务的网络。集群管理器在初始化或更新应用程序时会自动将地址分配给覆盖网络上的容器。
  3. 负载平衡:-在特定端口上部署任何服务时,群集会自动平衡这些端口的负载。
  4. 缩放:-放大或缩小时,群管理器会通过添加或删除任务来自动调整以维持所需的状态。

群集模式CLI命令

docker swarm init:此命令用于初始化swarm。

docker swarm init [OPTIONS]

docker swarm join:通过使用此命令,您可以将节点加入到swarm中。该节点根据您使用–token标志传递的令牌加入为管理者节点或辅助节点。

docker swarm join [OPTIONS] HOST:PORT

docker service create:这是集群管理命令,必须在Swarm管理器节点上执行。

docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]

docker service inspect:此命令用于检查特定服务,所有详细信息将以JSON格式显示。

docker service inspect [OPTIONS] SERVICE [SERVICE...]

docker service ls:此命令用于查看该网络中所有服务的完整列表。

docker service ls [OPTIONS]

docker service rm:此命令用于删除要删除的特定服务。

docker service rm SERVICE [SERVICE...]