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 的蓝绿发布 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。