Skip to content

文档

1.Swarm介绍

​ Swarm是Docker公司自研发的容器集群管理系统, Swarm在早期是作为一个独立服务存在, 在Docker Engine v1.12中集成了Swarm的集群管理和编排功能。可以通过初始化Swarm或加入现有Swarm来启用Docker引擎的Swarm模式。

​ Docker Engine CLI和API包括了管理Swarm节点命令,比如添加、删除节点,以及在Swarm中部署和编排服务。也增加了服务栈(Stack)、服务(Service)、任务(Task)概念

​ Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些

1.Docker Swarm 节点介绍

Docker Swarm一共有两种节点:管理节点(Manager Node) 和工作节点 (Worker Node)

  • 管理节点(Manager Node):用于Swarm集群的管理,Manager节点可以有1个或者多个,通常由3个以上的奇数Manger节点构成Manager集群,Manager节点中的主节点(Leader节点)选举通过Raft协议实现
  • 工作节点(Worker Node):用于执行Manager节点下发的任务:部署服务、扩容服务、更新服务等等

管理节点本身也是工作节点,在测试时可以不做区分,不过在生产环境可以通过deploy相关参数指定服务部署的节点类型

2.Docker Swarm服务和任务介绍

服务(Service):一个应用(镜像)的一个或者多个容器实例的统称,也可以说是一组任务的统称

任务(Task):服务的一个容器实例,是构成服务的最小逻辑单元

3.Docker Swarm 网络介绍

Docker Swarm集群创建时会初始化一个名为ingress的overlay类型的网络,用于管理管理和路由在Docker Swarm集群中运行的服务的入口流量。通过ingress网络,可以将外部请求路由到Docker Swarm集群中的服务,对于部署了多个实例(任务)的服务,ingress网络中的load balancer提供了负载均衡的能力,支持轮询、源IP哈希等负载均衡策略,另外Docker Swarm也通过ingress网络打通了不同节点部署的容器之间的网络访问

涉及端口

  • 2377 用于与管理节点之间进行通信(TCP)
  • 7946 用于overlay网络节点发现(TCP&UDP)
  • 4789 用于overlay网络节通信(TCP)
  • 8000 用于部署服务测试(TCP)

https://www.cnblogs.com/skyflask/p/11212452.html