全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
容器服务

概述

更新时间:2017-09-20 08:52:03

swarm mode 是 Docker 1.12 版开始推出的新功能,它将 Docker Engine、swarm 的集群管理和容器编排功能集成在一起,并新增了 service 概念及基于 LVS 的 4 层负载均衡功能(RoutingMesh)。

阿里云容器服务第一时间支持了 swarm mode,并在上面做了很多功能扩充。

Swarm mode 与 Swarm 的区别

swarm 集群 swarm mode 集群
管控 全部在容器服务内部,用户机器都是工作机。用户机器宕机不影响集群。 Manager 在用户机器上,当健康的 Manager 机器少于两台时,集群无法工作。另外,重置 Manager 机器会丢失集群管控数据,相当于 manager 下线。
编排模板 支持 compose V1/V2 支持compose V1/V2/V3,V1、V2 是 swarm 应用,V3是 swarm mode 应用
容器启动参数 支持几乎 docker run 的所有参数 不支持 privileged、host network、host pid 等参数
修改应用配置 只有有变化的服务会被重启。 目前所有服务都会被重启,后续会改进成只重启有变化的服务。
健康检查 容器不健康时,只会从路由中摘掉容器 容器不健康时,会从路由中摘掉容器,同时重启容器
容器迁移 容器挂掉时,原地重启;或者配置 reschedule 环境变量,当机器掉线时迁移 自动保证服务的容器数量,数量不足时会重启或者迁移容器
有状态应用 更新容器时,继承原容器的数据卷,保证数据不丢失 更新容器时不继承数据卷,除非使用命名数据卷,否则数据会丢失
基于SLB的负载均衡 需要用户手工配置 SLB 的监听及后端机器,一个 SLB 只能绑定一个服务 自动配置 SLB,一个 SLB 可以绑定多个服务
蓝绿发布 支持基于 routing 和 SLB 的蓝绿发布 只支持基于 routing 的蓝绿发布

使用限制

目前,swarm mode 集群处于公测阶段。

Swarm mode 简介

swarm mode 集群的架构图如下所示。

1

该架构有以下特点:

  • 无任何外部依赖。Manager 之间通过 Raft 协议组成一个分布式 KVStore,替代了原 swarm 中的 etcd。
  • Daemon 身兼 Engine、Manager、Agent 三职。
  • Manager 不直接发送命令给 Worker 的 Daemon,只是同步 Task 信息。
  • 高可用架构,只需将 Manager 设置成 ≥3 的奇数个。
  • 由于没有外部依赖,swarm mode 集群的部署非常简单,只需要安装好 Docker Engine,再设置好节点角色即可。

阿里云容器服务上的 Swarm mode 集群

集群部署

部署 swarm mode 集群和部署 swarm 集群没有什么差别,您只需要在创建时将 集群模式 设置为 Swarm Mode集群,容器服务会自动完成 Docker 安装、集群角色设置的工作。

为了实现高可用,集群至少需要有 3 个节点。容器服务会默认设置 3 个 Manager。当添加节点到集群时,如果当前 Manager 数量不足 3 个,节点会被设置为 Manager,否则会被设置为 Worker。

具体操作参见 创建集群

应用部署

容器服务支持通过编排模板和交互界面两种方式来部署应用。具体操作参见 使用镜像创建应用使用编排模板创建应用

编排模板(compose)

swarm mode 集群支持 compose V1、compose V2 和 compose V3 版本的编排模板。

具体的语法格式参见 compose V1compose V2compose V3

下面是一个简单 compose V3 的示例。

  1. version: "3.1"
  2. services:
  3. nginx:
  4. image: nginx:latest
  5. deploy:
  6. mode: global
  7. ports:
  8. - 80:80

扩展功能标签

有关原 swarm 集群上的扩展功能在 swarm mode 集群上的支持情况,参见 扩展能力标签

路由与负载均衡

原 swarm 集群支持 7 层(aliyun.routing)和 4 层(aliyun.lb)路由,swarm mode 集群也支持这两种模式,且语法不变。

有关 swarm mode 集群下路由与负载均衡的详细信息,参见 路由与负载均衡

本文导读目录