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的前世今生相关推荐

  1. Docker容器化实战第七课 容器编排Docker Compose、Docker Swarm 和 Kubernetes

    19 如何使用 Docker Compoe 解决开发环境的依赖? 前两个模块,我们从 Docker 的基本操作到 Docker 的实现原理,为你一步一步揭开了 Docker 神秘的面纱.然而目前为止, ...

  2. 在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理

    本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...

  3. Docker Swarm Beta 发布,Docker 集群管理

    Docker Swarm 今天发布了 Beta 版本,详细介绍请看这里. Docker Swarm是一个Dockerized化的分布式应用程序的本地集群,它是在Machine所提供的功能的基础上优化主 ...

  4. 容器管理大战:Kubernetes vs.Docker Swarm与Amazon ECS

    Container Orchestration: 快速入门 自20世纪70年代以来,容器技术就已经出现,但直到2013年Docker首次亮相后才开始发挥作用.从那时起,容器已经流行起来:它们正在显著地 ...

  5. 正式环境docker部署hyperf_应用部署 - Docker Swarm 集群搭建 - 《Hyperf v1.1.1 开发文档》 - 书栈网 · BookStack...

    Docker Swarm 集群搭建 现阶段,Docker容器技术已经相当成熟,就算是中小型公司也可以基于 Gitlab.Aliyun镜像服务.Docker Swarm 轻松搭建自己的 Docker集群 ...

  6. 论Docker swarm与Kubernetes孰强孰弱

    前言 有无数的辩论和讨论谈论Kubernetes和Docker.如果你没有深入研究,你会认为这两种开源技术都在争夺集装箱至上.让我们明确指出,Kubernetes和Docker Swarm不是竞争对手 ...

  7. Docker swarm集群详解(一)

    一.简介 Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Ku ...

  8. Docker Swarm Mode 学习笔记(聊聊 replicas)

    在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3'ser ...

  9. Docker swarm 集群搭建

    Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docker API接口作 ...

  10. Docker(swarm mode)在一段时间不用后无法启动

    2019独角兽企业重金招聘Python工程师标准>>> docker1.12版本刚出的时候,自己建了个虚拟机安装实验了下内置的swarm模式的新特性,后来这个虚拟机就一直没用.今天在 ...

最新文章

  1. etcd 指定配置文件启动_5步完成 etcd 单机集群部署
  2. Java实践(四)——数组
  3. 《程序员面试金典》最大连续数列和
  4. c语言 大数相加,c/c++开发分享C语言计算大数相加的方法
  5. CSE:阿里在线应用如何演进成Serverless架构
  6. mysql访问60s出现timeout_websocket 每60s报WsHttpUpgradeHandler.timeoutAsync
  7. react 子传参父_React 子组件向父组件传值的方法
  8. 电脑添加打印机方法/步骤
  9. modelsim+win环境下systemverilog调用c函数
  10. 解决使用PowerShell执行命令出现“因为在此系统上禁止运行脚本”的问题
  11. vs2017编译x265源码
  12. 笛卡尔积生成商品SKU
  13. Beta-VAE论文阅读笔记
  14. Linux 简介 ------ 带你简单了解Linux
  15. 毕业设计基础教学:SPI 通信接口
  16. 【C++登山之路之初露锋芒 2】——内联函数+ 引用+auto+nullptr关键字(万字详解,图片演示,结构原理)
  17. Go 语言入门三部曲(一):能看懂 Go 语言
  18. iOS客户端技术支持
  19. 2011年7月9日参加51CTO活动Linux系统安全
  20. 【中学】找出最大素数

热门文章

  1. 自定义事件和jQuery插件
  2. 程序设计实践(评注版) 评注者序
  3. 敏捷无敌(13)之兵不厌诈
  4. 深度学习:批归一化和层归一化Batch Normalization、Layer Normalization
  5. python复杂网络库networkx:算法
  6. 【医疗影像处理】使用GMM分割3D T1得到wm/gm/csf/background
  7. Linux中grep命令查找文件,Linux中使用grep命令搜索文件名及文件内容的方法
  8. Flutter高级第4篇:inappbrowser、StatefulBuilder 更新 Flutter showDialog、showModalBottomSheet中的状态
  9. 7-7 找出总分最高的学生 (15 分)
  10. L1-025 正整数A+B (15 分)—团体程序设计天梯赛