Docker Swarm概述
Docker Swarm是一个用于创建和管理Docker集群的工具。 Docker1.12 以及后续版本集成了swarmkit工具,该工具主要用于Docker集群管理和容器编排,因此,开发者可以不用安装额外的软件包,只需使用简单的命令就可以创建并管理Docker swarm 集群。
Docker Swarm集群的主要特点如下。
1. 方便创建和管理集群
Docker Swarm是Docker源生的集群管理工具,可以直接使用Docker客户端来创建并管理一个Docker Swarm集群,然后在其中部署应用程序服务,而不需要额外的编配软件来创建或管理集群。
2. 可扩展
对于集群中的每个服务,都可以声明要运行的副本任务数量,当向上或向下进行扩展时,集群管理器将通过添加或删除副本任务来自动适应所需的状态。
3. 可实现期望的状态调节
集群管理器节点不断监视集群状态,并协调实际状态和所期望状态之间的任何差异。例如,如果启动一个服务的10个副本任务,当一个Docker节点承载其中两个副本崩溃时,那么管理器将创建两个新的副本来替换崩溃的副本。
4. 集群中多主机网络自动扩展管理
Docker Swarm为集群服务提供了一个覆盖网络,当它初始化或更新应用程序时,集群管理器会自动将在工作节点创建或更新网络来管理服务。
5. 提供服务发现功能
集群管理器节点为集群中的每个服务分配一个惟一的DNS名称,通过Docker Swarm集群提供的负载均衡功能,可以通过嵌入在集群中的DNS服务器来查询集群中运行的每个容器。
6. 可实现负载均衡
可以将容器中服务的端口暴露给外部负载均衡器,而在内部,集群允许指定如何在节点之间分配服务容器。
7. 安全性强
集群中的每个节点强制使用TLS相互认证和加密,以确保自身和其他节点之间的通信安全。除此之外,集群还支持使用自定义的自签名证书来保证安全。
8. 支持延迟更新和服务回滚
在进行服务更新时,可以将服务更新逐步延伸到每个节点上,集群管理器允许服务部署到不同节点组之间时出现延迟,如果某个节点出现问题,还可以将服务回滚到以前的版本。
小提示:
本书是直接使用Docker自带的Docker Swarm来讲解容器集群管理的,而该容器集群管理工具也是在Docker1.12版本才开始出现的,算是一种新型的容器集群管理工具,可以说是微服务架构等技术革新推动了Docker容器管理技术的发展。在此之前,比较成熟的容器集群管理工具有Google的开源系统架构Kubernetes和Apache下的分布式管理框架Mesos等。有兴趣的读者可以自行查阅相关资料进行学习。