AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

Docker Swarm 已死!Docker Swarm 万岁!

  • 2016-07-10
  • 本文字数:1788 字

    阅读完需:约 6 分钟

Docker 在上周的 DockerCon 技术大会上发布了 1.12 版核心产品 Docker Engine,最大的新特性是 Docker Swarm 已经被整合到了 Docker Engine 里面而不再是一个单独的工具了,这样就可以更容易的把多个 Docker 主机组合成一整个规模更大可靠性更高的逻辑单元。Docker 的掌舵者 Adrian Mouat 相信这种新的集群模式可以大大增强Docker 在相关领域的竞争力。

把Docker Swarm 整合进Docker Engine 是一个重大改进,但它也只是一个附加功能,你可以只在需要的时候才使用它。你可以用和以前一样的方式来安装、运行和升级Docker 1.12,而且它也对已有的容器镜像和工具向后兼容。

在一台主机上运行Docker 和在使用Docker Compose 来部署应用程序方法都是和以前一样的。你甚至可以在已有的Docker Swarm 上使用1.12 版Docker Engine。除非你是显式地使用新引擎来创建一个集群,否则运行时行为仍然和以前版本一样。

旧的Docker Swarm 产品是以套件形式提供的,本身没有什么核心功能。Docker Swarm 进程在各个节点上做为容器运行,而且还需要许多其他技术来辅助它,比如用Consul 或etcd 来做服务发现,用Nginx 做负载均衡等。集群实际上要先运行一堆基础设施容器,然后才能运行你自己的应用程序容器。

搭建起一个旧的集群也并非易事,因为在你创建集群之前服务发现组件就要就位,可是之后你又想让它作为集群的一个部分来运行,所以你什么事情都没开始干就要先解决一个“先有鸡还是先有蛋”的问题。Jacob Blain Christen 在他的文章“ Toward a Production-Ready Docker Swarm Cluster with Consul ”里面很好的解释了这个问题。

在新的集群模式下用一个’init’命令即可创建集群,用’join’命令可以把工作者加入集群。创建和加入集群的命令一般一两秒钟就可以执行完毕。Mouat 说“与把 Kubernetes 或 Mesos 集群启动起来相比,启动 Docker 集群就是一闪的事”。

节点之间的通信安全由传输层安全协议(TLS)来保证。为了安装简便,Docker 1.12 会在创建集群时生成自签名证书,当然也可以换成你从自己的证书颁发机构获得的证书。这些证书在节点内部通信时会被用到,但所有对外的服务仍然是和以前一样使用你原来的证书。

Nigel Poulton 在 DockerCon 大会上分享了旧版和 1.12 版启动集群的对比图:

Docker 建议在一个 L3 子网内运行所有集群节点,但根据你自己的实际情况,也可以把节点划分到不同的子网里,把运行对外服务容器的节点和内部节点隔离开来。

这种隔离方法也许你已经在独立的生产集群上使用过了。我在贴子“在Azure 上部署Docker 生产集群”中已经结合微软的云服务写了文档。

集群的自我认知能力是最重大的改变。集群中的每个节点都可以连接其他任何一个节点,并且可以把请求路由到它需要去的地方。你再也不必自己运行负载均衡器并把它与动态服务发现代理结合起来了,对这点以前的方式通常是Nginx 加Interlock。

如果一个节点收到了一条处理不了的请求,它就会找到运行了可以处理这条请求的容器的节点,并把这条请求路由过去。这个过程对用户是透明的,他们最终只能收到一条响应消息,完全不知道在集群内部是否发生过消息转发。

这个Docker 叫作“路由网”的功能支持外部负载均衡。你可以在集群前面放一个对外的负载均衡器,并把它配置成所有服务的唯一入口,它就会把流入的消息在集群内部随意分发,然后收到了消息的节点就会智能的把它处理不了的消息转发到合适的地方去。Docker 核心工程组解释路由网用到了Linux 的核心功能,即一个已经在Linux 内核中存在了至少15 年的负载均衡功能。

路由网和调度器的组合可以保证即使有节点发生故障也不会造成服务中断。负载均衡器不会把任何请求发送到出故障的节点上。如果因为故障导致服务所需要的最小副本数达不到要求,调度器就会自动在别的节点上运行起新的副本来。

Docker Swarm 仍然是原生的 Docker 集群的名字,但在 1.12 版的集群模式下它也是 Docker Egnine 的一个组成部分,不再是一个单独的产品了。你可以获得服务发现服务,可以给集群配置多个管理者来增强可靠性,以及配置满足你需要的足够数量的工作者。

在这个版本里,Docker Engine 脱离了其他 Docker 产品跑到前面了。现在还不能用 Docker Machine 来部署一个新式的集群,也不能用 Docker Compose 来部署服务。但 Docker 社区总是动作很快,所以期待它们也很快被整合进来吧。

查看英文原文 Docker Swarm Is Dead. Long Live Docker Swarm.

2016-07-10 19:0012611
用户头像

发布了 152 篇内容, 共 74.1 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

陕西玖富建设工程有限公司简介

新消费日报

TiDB Serverless 正式商用,全托管的云服务带来数据管理和应用程序开发的全新体验

PingCAP

MySQL 云服务 TiDB pingCAP TiDB Serverless

第五届宁波市卫生健康系统信息化技能竞赛暨赛前培训成功举办 平凯星辰受邀授课

PingCAP

数据库 TiDB 平凯星辰

字节码增强常见问题系列(二)| 兼容性难题:如何让不同字节码增强框架和谐共存?

华为云开源

字节码增强 sermant

基于Vue3的数据可视化低代码平台

互联网工科生

Vue 低代码 vue3.0 JNPF

唐刘:TiDB 研发工程实践及 TiDB 人才观丨CCF 中国数据库暑期学校

PingCAP

数据库 TiDB pingCAP

10个学习JavaScript的理由

互联网工科生

JavaScript 学习 前端 编程语言

NFTScan 团队发布升级版 NFT Portfolio 产品

NFT Research

NFT\

途游游戏 x 极狐GitLab “通关” DevOps :单元测试从无到优,覆盖率 0→80%

极狐GitLab

DevOps gitlab Code Review DevSecOps 途游游戏

vpay数字货币钱包系统开发(Imtoken、TP)

薇電13242772558

数字钱包

百度飞桨助力高校培养AI大模型人才,2023年飞桨产学合作项目申报启动

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

秒验 REST API 手机号码置换接口

MobTech袤博科技

前端 App 前端开发 前端开发工具

解决大模型“开发难”,昇思MindSpore自动并行技术应用实践

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

文心一言 VS 讯飞星火 VS chatgpt (70)-- 算法导论6.5 9题

福大大架构师每日一题

福大大架构师每日一题

云渲染:为你的设计作品增添细节与逼真感!

Finovy Cloud

3D渲染 渲染 云渲染 云渲染农场

面试官:线程是如何通讯的?

王磊

java面试

QuickBI提供数据可视化分析功能的工具,企业免费使用

夜雨微澜

分布式流处理组件-生产实战:Broker副本与优化

谢先生F

kafka 架构 broker

零代码Demo Day大赛热烈开启,迎接挑战,赢取万元大奖!

明道云

erp企业管理系统软件哪个最好用?

优秀

ERP系统 ERP软件

如何使用三台虚拟机搭建一个kubernetes集群?

数新网络官方账号

Kubernetes, 云原生, eBPF

代码随想录 Day37 - 贪心算法(六)

jjn0703

极狐GitLab 10 年开源研发管理实践:4 个核心步骤突破效能瓶颈

极狐GitLab

gitlab 研发效能 DevSecOps 研发效率 效能实践

亚信科技AntDB数据库专家出席数据库标准研讨会并参与研讨

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 8 月 PK 榜

Docker Swarm已死!Docker Swarm万岁!_DevOps & 平台工程_Elton Stoneman_InfoQ精选文章