当前版本的 Docker 包含 Swarm 模式,用于本地管理称为 Swarm 的 Docker 引擎集群。通过 Docker CLI,用户可以创建集群、将应用程序服务部署到集群中,并管理集群的行为。
Docker Swarm 模式内置于 Docker 引擎中。请勿将其与已不再积极开发的 Docker Classic Swarm 混淆。
功能亮点
- 集成的集群管理:通过 Docker 引擎 CLI 创建多个 Docker 引擎,用户可以在其中部署应用程序服务,无需其他编排软件即可创建或管理集群。
- 分散式设计:Docker 引擎在运行时处理节点角色之间的差异,可部署管理者和工作者两种类型的节点,实现从单个磁盘映像构建整个集群。
- 声明性服务模型:Docker 引擎采用声明性方法,允许用户定义应用程序堆栈中服务的所需状态。例如,用户可描述一个包含 Web 前端服务、消息队列服务和数据库后端的应用程序。
- 缩放能力:用户可以声明每个服务要运行的任务数量。集群管理器会在放大或缩小时,通过添加或删除任务自动调整以维持所需状态。
- 所需状态协调:集群管理器节点持续监控集群状态,并协调实际状态与所需状态之间的差异。例如,如果服务设置为运行 10 个容器副本,而承载其中两个副本的工作节点崩溃,管理器将替换崩溃的副本并分配新副本给可用的工作节点。
- 多主机网络:用户可以为服务指定覆盖网络,集群管理器在初始化或更新应用程序时自动为覆盖网络上的容器分配地址。
- 服务发现:集群管理器节点为集群中的每个服务分配唯一的 DNS 名称,并平衡正在运行的容器。用户可以通过集群中的嵌入式 DNS 服务器查询每个容器。
- 负载平衡:用户可以将服务端口公开给外部负载平衡器,集群内部允许用户指定如何在节点之间分配服务容器。
- 安全性:集群中的每个节点默认执行 TLS 相互身份验证和加密,以保护与其他节点之间的通信安全。用户可以选择使用自签名根证书或自定义根 CA 的证书。
- 滚动更新:在推出时,用户可以逐步将服务更新应用于节点。集群管理器允许控制服务在不同节点集之间的部署延迟,如遇问题可回滚至先前版本。
[[[IMG_1]]]
