Docker Swarm的前世今生
2019独角兽企业重金招聘Python工程师标准>>>
概述
在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得那么厚重,因此可以认为是更加轻量级的容器集群技术,这也就意味着上手更加方便快捷,使用起来也要省事很多。作为Docker集群技术三(或“四”)架马车之一的Docker Swarm,它从一开始便是Docker官方的“亲儿子”,发展到现在也经历了很多阶段和迭代。作者在学习的过程中也了解了一点其发展历史,发现有几个概念还是挺容易混淆的,因此撰写成文,是梳理,也是总结。
初出茅庐之:经典Swarm
早在2014年底,Docker公司就设计了容器集群的方案组合:Machine + Swarm + Compose。其中Machine主要用于快速创建Docker运行环境,其支持在创建出来的节点上自动部署Swarm,此时的Swarm我们称为 “经典Swarm”,它是一款整合跨节点网络的集群式容器服务,其利用Docker守护进程的API,将多节点的计算资源进行汇总,并提供兼容Docker的运行API,使用者只需要在执行Docker命令工具时,用--host参数将目标设置为Swarm服务的IP和端口,即可操作整个容器集群。
当然此时的Swarm局限性较大,比如:
- 没有副本和负载均衡的概念,这导致服务无法高可用
- 当然也更不存在什么服务网络管理和跨节点数据存储这些东西
- 没有服务模型:集群中服务间关系和启动顺序编排也很复杂
于是就有了下面的SwarmKit的诞生。
发展壮大之:SwarmKit
在2016年2月,Docker公司开始了一个名叫 SwarmKit 的项目。而恰在Docker 1.12 RC之前的一段时间,Docker 发布了 Swarmkit,这是一个独立的、开源的容器编排项目。SwarmKit不同于一开始的经典Swarm,它从一开始就重新设计了一套独立的API和模型体系,并且采用独立的客户端命令行工具:swarmctl
和上面的经典Swarm模型相比,它加入了如下特性:
- 重新设计的一套独立的API和模型体系
- 使用了自己的CLI(
swarmd
命令负责管理,swarmctl
命令用于控制) - 节点管理、服务模型更加自然,提供编排和调度服务
- 将过去Swarm依赖的外部集群一致性存储组件Etcd的核心部分内置化
然而此时的SwarmKit并没有提供诸如服务发现、负载均衡和路由等功能。尽管如此,SwarmKit其实已经是我们今天广泛使用的Docker Swarm集群技术的基石。
厚积薄发之:Swarm Mode
Swarm Mode则更进一步,它在Docker 1.12版本开始为大家所周知,一个 docker swarm
命令 红遍大江南北,这个所谓的Swarm Mode其实就是我们今天所广泛使用的Docker Swarm集群技术。
然而Swarm Mode并不是一个全新的东西,也并不是一个全新的模式,而是站在SwarmKit的巨人肩膀上发展起来的,是Docker中的一组与集群相关功能的统称而已。Docker将SwarmKit的核心模块内嵌于Docker的后台服务之中,通过不同的命令允许使用者同时以“本节点”和“本集群”这两种视角来操作整个集群,增加了集群的管理、节点的管理、服务的管理和编排等等一系列高级特性,就像在我的《Docker Swarm集群初探》一文中体验的那样。
转载于:https://my.oschina.net/u/3611008/blog/1832016
Docker Swarm的前世今生相关推荐
- Docker容器化实战第七课 容器编排Docker Compose、Docker Swarm 和 Kubernetes
19 如何使用 Docker Compoe 解决开发环境的依赖? 前两个模块,我们从 Docker 的基本操作到 Docker 的实现原理,为你一步一步揭开了 Docker 神秘的面纱.然而目前为止, ...
- 在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理
本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...
- Docker Swarm Beta 发布,Docker 集群管理
Docker Swarm 今天发布了 Beta 版本,详细介绍请看这里. Docker Swarm是一个Dockerized化的分布式应用程序的本地集群,它是在Machine所提供的功能的基础上优化主 ...
- 容器管理大战:Kubernetes vs.Docker Swarm与Amazon ECS
Container Orchestration: 快速入门 自20世纪70年代以来,容器技术就已经出现,但直到2013年Docker首次亮相后才开始发挥作用.从那时起,容器已经流行起来:它们正在显著地 ...
- 正式环境docker部署hyperf_应用部署 - Docker Swarm 集群搭建 - 《Hyperf v1.1.1 开发文档》 - 书栈网 · BookStack...
Docker Swarm 集群搭建 现阶段,Docker容器技术已经相当成熟,就算是中小型公司也可以基于 Gitlab.Aliyun镜像服务.Docker Swarm 轻松搭建自己的 Docker集群 ...
- 论Docker swarm与Kubernetes孰强孰弱
前言 有无数的辩论和讨论谈论Kubernetes和Docker.如果你没有深入研究,你会认为这两种开源技术都在争夺集装箱至上.让我们明确指出,Kubernetes和Docker Swarm不是竞争对手 ...
- Docker swarm集群详解(一)
一.简介 Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Ku ...
- Docker Swarm Mode 学习笔记(聊聊 replicas)
在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3'ser ...
- Docker swarm 集群搭建
Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docker API接口作 ...
- Docker(swarm mode)在一段时间不用后无法启动
2019独角兽企业重金招聘Python工程师标准>>> docker1.12版本刚出的时候,自己建了个虚拟机安装实验了下内置的swarm模式的新特性,后来这个虚拟机就一直没用.今天在 ...
最新文章
- etcd 指定配置文件启动_5步完成 etcd 单机集群部署
- Java实践(四)——数组
- 《程序员面试金典》最大连续数列和
- c语言 大数相加,c/c++开发分享C语言计算大数相加的方法
- CSE:阿里在线应用如何演进成Serverless架构
- mysql访问60s出现timeout_websocket 每60s报WsHttpUpgradeHandler.timeoutAsync
- react 子传参父_React 子组件向父组件传值的方法
- 电脑添加打印机方法/步骤
- modelsim+win环境下systemverilog调用c函数
- 解决使用PowerShell执行命令出现“因为在此系统上禁止运行脚本”的问题
- vs2017编译x265源码
- 笛卡尔积生成商品SKU
- Beta-VAE论文阅读笔记
- Linux 简介 ------ 带你简单了解Linux
- 毕业设计基础教学:SPI 通信接口
- 【C++登山之路之初露锋芒 2】——内联函数+ 引用+auto+nullptr关键字(万字详解,图片演示,结构原理)
- Go 语言入门三部曲(一):能看懂 Go 语言
- iOS客户端技术支持
- 2011年7月9日参加51CTO活动Linux系统安全
- 【中学】找出最大素数
热门文章
- 自定义事件和jQuery插件
- 程序设计实践(评注版) 评注者序
- 敏捷无敌(13)之兵不厌诈
- 深度学习:批归一化和层归一化Batch Normalization、Layer Normalization
- python复杂网络库networkx:算法
- 【医疗影像处理】使用GMM分割3D T1得到wm/gm/csf/background
- Linux中grep命令查找文件,Linux中使用grep命令搜索文件名及文件内容的方法
- Flutter高级第4篇:inappbrowser、StatefulBuilder 更新 Flutter showDialog、showModalBottomSheet中的状态
- 7-7 找出总分最高的学生 (15 分)
- L1-025 正整数A+B (15 分)—团体程序设计天梯赛