1. docker swarm介绍
- Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swarm的集群管理和编排功能。可以通过初始化Swarm或加入现有Swarm来启用Docker引擎的Swarm模式。
- Docker Engine CLI和API包括了管理Swarm节点命令,比如添加、删除节点,以及在Swarm中部署和编排服务。
- 也增加了服务栈(Stack)、服务(Service)、任务(Task)概念。
2. docker swarm架构图讲解
- Manager:接收客户端服务定义,将任务发送到worker节点;维护集群期望状态和集群管理功能及Leader选举。默认情况下manager节点也会运行任务,也可以配置只做管理任务。
- Worker:接收并执行从管理节点分配的任务,并报告任务当前状态,以便管理节点维护每个服务期望状态。
3. docker swarm特点介绍
-
Docker Engine集成集群管理
使用Docker Engine CLI 创建一个Docker Engine的Swarm模式,在集群中部署应用程序服务。
-
去中心化设计
Swarm角色分为Manager和Worker节点,Manager节点故障不影响应用使用。 -
扩容缩容
可以声明每个服务运行的容器数量,通过添加或删除容器数自动调整期望的状态。 -
期望状态协调
Swarm Manager节点不断监视集群状态,并调整当前状态与期望状态之间的差异。 -
多主机网络
可以为服务指定overlay网络。当初始化或更新应用程序时,Swarm manager会自动为overlay网络上的容器分配IP地址。 -
服务发现
Swarm manager节点为集群中的每个服务分配唯一的DNS记录和负载均衡VIP。可以通过Swarm内置的DNS服务器查询集群中每个运行的容器。 -
负载均衡
实现服务副本负载均衡,提供入口访问。 -
安全传输
Swarm中的每个节点使用TLS相互验证和加密,确保安全的其他节点通信。 -
滚动更新
升级时,逐步将应用服务更新到节点,如果出现问题,可以将任务回滚到先前版本。