互联网技术 / 互联网资讯 · 2024年3月9日

Docker Swarm 中的复制服务与全局服务工作原理解析

在将应用镜像部署到处于 Swarm 模式的 Docker 引擎时,需要创建一个服务。服务通常代表一个较大应用中的微服务镜像,例如 HTTP 服务器、数据库,或在分布式环境中需要运行的其他可执行组件。

创建服务时,需要指定要使用的镜像以及在容器内执行的命令。同时还可以为服务设置以下选项:

  1. 集群对外暴露端口的配置
  2. 服务连接到覆盖网络以与群内其他服务通信
  3. CPU 与内存的限制与保留
  4. 滚动更新策略
  5. 在 Swarm 中运行的镜像副本数量

服务部署有两种类型:复制的服务和全局的服务。

复制服务允许指定要运行的相同任务的数量。例如,如果要部署一个 HTTP 服务且设定为三个副本,则每个副本提供相同的内容。

全局服务在集群中的每个节点上运行一个任务,没有预设的任务总数。每当向 Swarm 添加新节点时,协调器会创建一个新的任务,并由调度器将其分配到新节点。全局服务非常适合用来运行监控代理、防病毒扫描程序,或在 Swarm 中每个节点上需要运行的其他类型容器。

下方示意图显示了三个副本的复制服务(以黄色表示)以及在每个节点上运行的全局服务(以灰色表示)。

Docker Swarm 中的复制服务与全局服务工作原理解析