新書推薦:
《
保守主义:为传统而战
》
售價:NT$
704.0
《
不同境遇的36岁:无尽与有限+人生半熟
》
售價:NT$
510.0
《
小时光 油画棒慢绘零基础教程
》
售價:NT$
403.0
《
可控性混乱
》
售價:NT$
301.0
《
协和专家大医说:医话肿瘤
》
售價:NT$
500.0
《
潜水指南 全彩图解第4版
》
售價:NT$
602.0
《
超大规模集成电路设计——从工具到实例
》
售價:NT$
403.0
《
村上春树·旅(一本充满村上元素的旅行指南,带你寻访电影《挪威的森林》拍摄地,全彩印刷;200余幅摄影作品)
》
售價:NT$
301.0
|
編輯推薦: |
本地测试环境大型分布式基础设施Swarm内部运作|SwarmKit新特性大规模部署自动化公有私有云配置运营Swarm集群大型生产级应用|大规模容器部署卷|调度|Libnetwork、安全|平台伸缩性与Docker生态无缝整合无需重构容器应用便可适配其他平台。具体内容包括:
创建并管理任意大小的Swarm Mode集群
深入了解迄今为止创建的*的Swarm集群的幕后,即Swarm 2k和Swarm 3k,分别有2300和4700个节点
理解发现机制和Raft
在Swarm上部署容器化应用
管理AWS、Azure和DigitalOcean上的Swarm集群
在Swarm中整合Flocker卷
在Openstack Magnum上创建并管理Swarm
|
內容簡介: |
Docker Swarm作为 Docker集群原生的容器编排解决方案,是Docker生态系统中的关键组件之一。本书涵盖了 Swarm 中的发现、调度、高可用、安全和平台伸缩性等重要主题,能帮助你了解 Swarm 如何组建包含4700个节点的集群,并掌握Swarm的使用与管理,以及如何使用实现大规模应用的可伸缩。本书适合企业架构、开发、运维等各岗位从业者阅读,同样适合广大想了解当前主流 CaaS 架构内在运行原理与真实场景实践的普通学习者。
|
關於作者: |
Fabrizio Soppelsa是一家OpenStack公司Mirantis的高级工程师。从Docker 0.3版本开始,他就是Docker的积极使用者和倡导者,他用三个国家的语言发表了Docker工具相关的多篇文章。他也是一些项目,特别是Machine项目的实际贡献者。他目前生活在俄罗斯的莫斯科,他和他的蜘蛛Mosha是那里Docker见面会的组织者。
我要感谢ClusterHQ的工作人员对Flocker的帮助,特别感谢Ryan Wallner。也要感谢Yandex团队和Denis Kutin提供了免费的OpenStack实验室,让我能够很容易地使用。感谢Mirantis创建了(我认为是)最好的OpenStack发行版本。感谢Docker团队和Docker社区带给我的所有快乐。
Chanwit Kaewkasi是泰国苏兰拉里理工大学计算机学院的助理教授。Chanwit从0.1版本就开始参与Docker Swarm项目的贡献,他协同设计并且实现了策略过滤器、ZooKeeper发现,以及其他特性。他目前是Docker Swarm的维护者以及Docker Captain(社区给Docker专家的称号)。
我还要感谢我的妻子Pitchaya,感谢她的鼓励以及对我的工作,包括这本书的大力支持。 Fabrizio Soppelsa是一家OpenStack公司Mirantis的高级工程师。从Docker 0.3版本开始,他就是Docker的积极使用者和倡导者,他用三个国家的语言发表了Docker工具相关的多篇文章。他也是一些项目,特别是Machine项目的实际贡献者。他目前生活在俄罗斯的莫斯科,他和他的蜘蛛Mosha是那里Docker见面会的组织者。
我要感谢ClusterHQ的工作人员对Flocker的帮助,特别感谢Ryan Wallner。也要感谢Yandex团队和Denis Kutin提供了免费的OpenStack实验室,让我能够很容易地使用。感谢Mirantis创建了(我认为是)最好的OpenStack发行版本。感谢Docker团队和Docker社区带给我的所有快乐。
Chanwit Kaewkasi是泰国苏兰拉里理工大学计算机学院的助理教授。Chanwit从0.1版本就开始参与Docker Swarm项目的贡献,他协同设计并且实现了策略过滤器、ZooKeeper发现,以及其他特性。他目前是Docker Swarm的维护者以及Docker Captain(社区给Docker专家的称号)。
我还要感谢我的妻子Pitchaya,感谢她的鼓励以及对我的工作,包括这本书的大力支持。
要送给Docker Engineering团队特别的感谢,感谢他们开发出的伟大的软件。感谢苏兰拉里理工大学为我提供了绝佳的工作场所。感谢我的父母对我的支持。最后还要感谢Fabrizio邀请我合作撰写本书。
审阅者介绍
Baohua Yang是IBM的资深研究员。他的兴趣包括云计算、Fintech、分布式系统和分析的核心领域。他对那些新兴技术特别感兴趣,比如,SDNNFV、容器、大数据、区块链和认知计算。
作为首席架构师,他领导企业产品的架构设计和系统实现,并且帮助解决了行业解决方案的关键技术难题。
作为开源社区的贡献者,他向数个项目提交代码、方案和演讲,包括OpenStack、Hyperledger、OpenvSwitch、Docker、OpenDaylight和Kubernetes,并且领导了一些项目,包括easyOVS、Hyperledger Fabric-SDK-py和 Cello。他现在是中国Hyperledger技术工作组的主席。
他在*的互联网会议和期刊(包括IEEE INFOCOM,IEEE Trans on Computers)上发表了十多篇文章,并且参与撰写了一些技术书籍和专利。他现在是数个学术会议和期刊的TPC成员。
他的主页:https:yeasy.github.com。
译者介绍
崔婧雯,具有近10年软件测试开发经验。现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试和自动化CI测试平台的开发工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对Dokcer,虚拟化,业务流程管理等技术有浓厚的兴趣。译有《Mesos 大数据资源调度与大规模容器运行 佳实践》《持续轻量级Java EE开发:编写可测试的代码》《用Mesos框架构建分布式应用》等技术著作。
|
目錄:
|
第 1 章 欢迎来到 Docker Swarm ................................................................................... 1
集群工具和容器管理器 ................................................................................................. 3
Swarm 的目标 ................................................................................................................. 3
为什么使用 Swarm ......................................................................................................... 4
真实的示例 ..................................................................................................................... 5
宠物模型 vs 牛群模型 ............................................................................................ 5
Swarm 特性 ..................................................................................................................... 6
类似项目 ......................................................................................................................... 7
Kubernetes ............................................................................................................... 7
CoreOS Fleet ........................................................................................................... 8
Apache Mesos .......................................................................................................... 9
Kubernetes vs Fleet vs Mesos ................................................................................ 10
Swarm vs 所有 ...................................................................................................... 10
Swarm v1 架构 .............................................................................................................. 10
术语 ....................................................................................................................... 12
开始使用 Swarm ........................................................................................................... 13
Mac 系统上的 Docker .......................................................................................... 14
Windows 系统上的 Docker .................................................................................. 16
使用 Linux ............................................................................................................. 18
检查 Docker Machine 是否可用所有系统 ................................................... 19
以前的 Swarm ............................................................................................................... 19
Boot2Docker .......................................................................................................... 21
使用 Docker Machine 创建 4 个集群节点 ........................................................... 21
配置 Docker 主机 .................................................................................................. 24
启动 Docker Swarm .............................................................................................. 25
测试 Swarm 集群 .................................................................................................. 29
如今的 Swarm ....................................................................................................... 31
本章小结 ....................................................................................................................... 35
第 2 章 探索发现服务 .................................................................................................. 36
发现服务 ....................................................................................................................... 37
Token ............................................................................................................................. 38
使用 token 重新架构第 1 章示例 ......................................................................... 38
Token 的限制 ........................................................................................................ 43
Raft ................................................................................................................................ 43
Raft 理论 ............................................................................................................... 43
实际的 Raft ........................................................................................................... 45
Etcd ................................................................................................................................ 47
使用 Etcd 重新架构第 1 章示例 .......................................................................... 47
ZooKeeper ..................................................................................................................... 50
Consul ............................................................................................................................ 50
使用 Consul 重新架构第 1 章示例 ...................................................................... 50
实现去中心化的发现服务 ........................................................................................... 52
本章小结 ....................................................................................................................... 52
第 3 章 遇见 Docker Swarm Mode .............................................................................. 53
SwarmKit ....................................................................................................................... 53
版本和支持 ........................................................................................................... 54
SwarmKit 架构 ...................................................................................................... 54
SwarmKit 的核心:swarmd ................................................................................. 56
SwarmKit 的控制器:swarmctl ........................................................................... 57
使用 Ansible 预配 SwarmKit 集群 ....................................................................... 58
在 SwarmKit 上创建服务 ..................................................................................... 62
Swarm Mode .................................................................................................................. 63
Swarm v1 vs Swarm Mode vs SwarmKit .............................................................. 64
深入了解 Swarm Mode 部署 ................................................................................ 65
本章小结 ....................................................................................................................... 72
第 4 章 创建生产级别 Swarm ...................................................................................... 73
工具 ............................................................................................................................... 73
Swarm2k 的 HA 拓扑 ................................................................................................... 74
管理器配置 ........................................................................................................... 75
Raft 恢复场景 ....................................................................................................... 75
Raft 文件 ............................................................................................................... 76
运行任务 ............................................................................................................... 76
管理器拓扑 ........................................................................................................... 76
使用 belt 预配基础架构 ............................................................................................... 79
使用 Docker Machine 保护管理器安全 ...........
|
內容試閱:
|
欢迎来到《Swarm 容器编排与 Docker 原生集群》一书!这是一本关于容器和分布式系统的书。本书将介绍如何使用原生的 Docker 工具建模微服务、生成任务、扩大应用程序的规模,以及将容器推送到 Docker 集群里!一句话来说,本书将讨论 Docker 的编排。
随着最近 Swarm Mode 的崛起,以及 Docker Engine 启用了 Swarm 功能,编排 Docker的最佳方式其实还是 Docker!
听上去不错,但是编排 Docker是什么意思呢?什么是编排?更确切的说法是,什么是管弦乐队?
管弦乐队指的是音乐家的全体,它由指挥家指挥,指挥家负责控制节奏、旋律,塑造出音乐的整体。弦乐队、管乐队、打击乐队、键盘乐队以及其他乐队都会遵循指挥家的指挥,共同演奏出惊人的交响乐曲,比如贝多芬的《第九交响乐》。
类似地,在容器编排系统里,音乐家是任务,指挥家则是领导者服务(Swarm primitives)。任务并不演奏旋律,或者并不仅仅做这些:更为抽象地说,它们执行一些计算型工作,比如,运行 Web 服务器。而指挥家Swarm,则负责它们的预配,它们的可用性,它们的链接,它们的扩展。这也就是大家所说的Docker 编排。
本书讲述如何预配这样的 Docker管弦乐队,如何保证服务的可用性,如何连接任务,以及如何扩展平台,从而演奏出属于应用程序的动人交响乐。
本书范围
第 1 章欢迎来到 Docker Swarm会介绍 Swarm,并且解释用户为什么需要集群解决方案来管理容器。这一章介绍 Swarm 的特性,介绍其架构的高层级描述。这一章还设计了一些示例,讲述 Swarm 和 Fleet、Kubernetes、Mesos 的不同之处。之后也会介绍 Docker 工具的安装以及两种 Swarm 的预配方式:本地的 Swarm Standalone 和远程在 DigitalOcean 上的 Swarm Mode 集群。
第 2 章探索发现服务是描述性语言最多、最抽象的一章。这一章介绍发现机制和共识算法是什么,以及它们为什么对于分布式系统来说至关重要。本章会详细介绍 SwarmMode 包含的共识机制 Raft 及其实现 Etcd。还会介绍第 1 章欢迎来到 Docker Swarm里所使用的发现机制的局限性,并且使用Consul扩展上一章的本地示例,之后重新将其部署。
第 3 章遇见 Docker Swarm Mode介绍全新的 Docker kit,它能够帮助用户创建任何规模的任务集群。本章会介绍 Docker Swarm Mode 的基础Swarm Kit,介绍它在 Docker1.12 版本里是如何工作的,讨论其架构、理念,它和旧Swarm 的不同之处在哪里,以及它是如何通过抽象出服务和任务来组织工作负载的。
第 4 章创建生产级别 Swarm介绍并且讨论了社区驱动的项目Swarm2k 和Swarm3k,我们实验了 2300 和 4800 个节点的 Swarm 集群,可以运行成千上万个容器。最后总结了可用计划,预配多大规模的集群,以及实验中的经验教训。
第 5 章管理 Swarm 集群主要探讨基础架构。这一章展示如何增加或者降低 Swarm的规模,如何 promote 以及 demote 节点,以及如何更新集群和节点的属性。这一章还会介绍 Shipyard 和 Portainer.io,其可以作为 Swarm 的图形 UI。
第 6 章Swarm 上真实应用的部署介绍了将真实应用程序放到 Swarm 上,并且讨论了 Compose、Docker Stacks 和 Docker Application Bundles。这一章展示了典型的部署工作流如何在集群里过滤并且调度容器,将其作为服务启动,将容器作为任务处理。这一章从定义一个使用 Nginx 的 Web 服务开始,然后部署一个使用 MySQL 的 WordPress,最终介绍一个更为实际的应用:Apache Spark。
第 7 章平台的向上伸缩将在前几章的基础上开始新的话题讨论。这一章将介绍Flocker,给 Swarm 上运行的 Spark 增加存储能力,并且会展示如何安装,以及如何和 Swarm一起大规模、自动地使用它。这一章将完善之前的 Spark 示例,运行一些真实的大数据 job,并且为该基础架构搭建基础的监控系统。
第 8 章Swarm 附加特性的探索讨论了一些对于 Swarm 来说很重要的高级话题,包括 Libnetwork 和 libkv。
第 9 章Swarm 集群和 Docker 软件供应链的安全加固关注 Swarm 集群的安全方面,会介绍平台的参数、证书、防火墙等概念,并且会介绍 Notary。
第 10 章Swarm 和云介绍了在云供应商那里运行 Swarm 的最为流行的几种方案。将在 AWS 和 Azure 上安装 Swarm,然后介绍 Docker Datacenter,最后会转向 OpenStack,介绍在 Magnum 上如何安装以及管理 Swarm,Magnum 是 OpenStack 提供的容器即服务方案。
第 11 章Swarm 的未来展望展望了 Docker 编排的趋势,比如软件定义的基础架构、Infrakt、unikernel 以及 Caas。伟大的征途尚未结束!
阅读本书的要求
本书假定读者有在命令行里使用 Docker 的经验:本书通篇会持续地拉取镜像、运行容器、定义服务、暴露端口以及创建网络。
另外,读者最好对网络协议有一些基本了解,并且熟悉公有云和私有云的概念,比如虚拟机和 tenant 网络。
要实践本书的示例,读者需要 Docker 及其工具。第 1 章欢迎来到 Docker Swarm介绍了它们的安装方式。
另外,要想完全学习到示例里的知识,读者还需要能够访问一种公有云(比如 AWS,Azure 或者 DigitalOcean)或者私有云(比如 OpenStack)来初始化出虚拟机。
本书写给 Docker 的用户开发人员和系统管理员,那些想要利用现有的 Swarm 和Swarmkit 的功能,借助容器大幅扩展应用程序的人们。
|
|