新書推薦:
《
空间与政治
》
售價:HK$
87.4
《
少年读三国(全套12册)
》
售價:HK$
490.6
《
不完美之美:日本茶陶的审美变
》
售價:HK$
87.4
《
现代化的迷途
》
售價:HK$
98.6
《
钛经济
》
售價:HK$
77.3
《
甲骨文丛书·无垠之海:世界大洋人类史(全2册)
》
售價:HK$
322.6
《
中国救荒史
》
售價:HK$
109.8
《
三十六计绘本(共8册)走为上计+欲擒故纵+以逸待劳+无中生有+金蝉脱壳+浑水摸鱼+打草惊蛇+顺手牵羊 简装
》
售價:HK$
177.4
|
編輯推薦: |
全局视角透视集群与容器编排
实战级企业级容器化技术落地
容器架构主线与集群生态蓝图
大规模部署与基础设施即交付
|
內容簡介: |
本书介绍了容器即服务的发展过程和主要技术,重点阐述当下主流的SwarmKit、Kubernetes、Mesos和Rancher 开源容器集群方案,并探讨了容器技术在网络、存储、监控、日志等方面的运用场景和基础知识,以及该领域在近年来的一些新的发展方向。本书适合一线架构师、开发者、运维人员以及技术管理者进行阅读。
|
關於作者: |
林帆,花名金戟,阿里巴巴研发效能事业部技术专家。前ThoughtWorks资深DevOps技术咨询师,2015年极客邦CNut全球容器技术大会讲师,2016年CSDN架构技术实战峰会讲师,2017年StuQ容器集群技术直播课程讲师。具有丰富的一线开发和运维经验,是国内早期的容器技术实践者和布道师。
|
目錄:
|
第1 部分 基础概念
第1 章 容器集群综述2
1.1 虚拟化与容器2
1.1.1 计算资源虚拟化2
1.1.2 容器技术的本质4
1.1.3 基于容器的软件交付13
1.2 容器集群与分布式服务16
1.2.1 微服务架构16
1.2.2 容器集群生态圈18
1.3 容器即服务26
1.3.1 从基础设施到平台26
1.3.2 数据中心操作系统29
1.4 本章小结31
第2 部分 解决方案
第2 章 SwarmKit 集群解决方案35
2.1 开源容器集群方案35
2.1.1 容器社区的四朵金花35
2.1.2 经典Swarm、SwarmKit 和Swarm Mode36
2.2 使用SwarmKit37
2.2.1 SwarmKit 综述37
2.2.2 创建SwarmKit 集群40
2.2.3 在SwarmKit 集群上运行服务43
2.2.4 SwarmKit 集群的其他功能45
2.3 Docker Swarm Mode45
2.3.1 Swarm Mode 综述45
2.3.2 集群的创建与销毁46
2.3.3 节点管理48
2.3.4 服务管理51
2.3.5 服务编排56
2.3.6 应用栈的管理63
2.3.7 外置配置和密文管理66
2.4 Swarm Mode 的图形界面69
2.4.1 Swarm Mode UI 现状69
2.4.2 Portainer71
2.5 本章小结74
第3 章 Kubernetes 集群解决方案75
3.1 Kubernetes 集群概述75
3.1.1 Kubernetes 项目的起源75
3.1.2 Kubernetes 的结构76
3.1.3 基本概念78
3.2 部署Kubernetes 集群82
3.2.1 使用Minikube82
3.2.2 使用kubeadm83
3.2.3 理解Kubernetes 集群的部署过程87
3.2.4 验证集群可用性96
3.3 使用Kubernetes98
3.3.1 通过Kubernetes 部署服务 98
3.3.2 服务的在线更新和回滚103
3.3.3 单次任务、定时任务和全局服务109
3.3.4 持久化存储113
3.3.5 配置存储116
3.3.6 管理有状态的服务122
3.3.7 健康检查126
3.3.8 提供对外服务127
3.3.9 多租户隔离和配额131
3.3.10 集群的节点管理135
3.4 Kubernetes 包管理工具Helm137
3.4.1 Helm 简介137
3.4.2 使用Helm 管理服务137
3.4.3 自定义Chart142
3.4.4 Chart 仓库146
3.5 本章小结147
第4 章 Mesos 集群解决方案148
4.1 Mesos 和DCOS 概述148
4.1.1 Mesos 项目的起源148
4.1.2 Mesos 的结构149
4.1.3 Mesos 的内部构成151
4.1.4 DCOS 数据中心操作系统152
4.2 部署Mesos 集群153
4.2.1 部署ZooKeeper153
4.2.2 部署Mesos157
4.2.3 启动Master 节点158
4.2.4 添加Agent 节点161
4.2.5 Mesos 服务的启动参数164
4.3 使用Marathon 管理服务170
4.3.1 部署Marathon170
4.3.2 添加一个应用172
4.3.3 使用DCOS 命令行工具177
4.3.4 使用Docker 容器177
4.3.5 使用Unified Container179
4.3.6 持久化卷存储182
4.3.7 Marathon-LB 负载均衡184
4.3.8 Mesos-DNS 域名服务188
4.3.9 服务依赖和编组191
4.3.10 应用升级194
4.3.11 调度约束199
4.3.12 健康检查201
4.4 使用Chronos203
4.4.1 部署Chronos203
4.4.2 定时表达式204
4.4.3 创建定时任务205
4.4.4 定时任务的依赖208
4.5 更多的Mesos 服务框架209
4.5.1 Mesos 服务框架的本质209
4.5.2 编写自己的Mesos 服务框架211
4.5.3 其他常见服务框架216
4.6 DCOS218
4.6.1 DCOS 简介218
4.6.2 部署DCOS219
4.6.3 DCOS 的操作 228
4.6.4 DCOS 命令行工具230
4.6.5 DCOS 的应用仓库231
4.7 本章小结234
第5 章 Rancher 集群解决方案235
5.1 Rancher 集群概述235
5.1.1 Rancher 项目的起源235
5.1.2 Rancher 的结构236
5.1.3 相关概念237
5.2 构建Rancher 集群239
5.2.1 部署Server 节点239
5.2.2 Server 节点的高可用部署方式240
5.2.3 添加Agent 节点241
5.3 Rancher 的服务管理 243
5.3.1 使用Rancher Web UI 创建服务243
5.3.2 从容器245
5.3.3 特殊类型的服务247
5.3.4 使用应用商店251
5.3.5 服务编排252
5.3.6 服务的升级和回滚254
5.4 Rancher 使用进阶256
5.4.1 Rancher 的标签256
5.4.2 调度选项257
5.4.3 服务健康检查258
5.4.4 Rancher 的元数据服务260
5.4.5 Rancher 的DNS 服务262
5.4.6 使用私有镜像仓库263
5.4.7 Rancher 的Secret 服务264
5.4.8 在应用商店添加自定义应用265
5.5 Rancher 的命令行工具268
5.5.1 配置Rancher 命令行工具268
5.5.2 命令工具的基本使用270
5.5.3 通过命令行进行服务编排273
5.5.4 通过命令行进行服务升级273
5.6 使用Rancher 安装Kubernetes274
5.6.1 Rancher 的环境管理274
5.6.2 在Rancher 中添加Kubernetes 环境276
5.6.3 在Rancher 中使用Kubernetes279
5.7 本章小结282
第3 部分 技术周边
第6 章 容器集群的网络和存储284
6.1 容器网络284
6.1.1 容器网络标准284
6.1.2 本地网络288
6.1.3 跨节点网络293
6.1.4 使用Docker 内置的Overlay 类型网络 300
6.1.5 构建基于Flannel 的覆盖网络301
6.1.6 构建基于Calico 的BGP 路由网络306
6.2 容器存储310
6.2.1 容器实例和镜像的存储310
6.2.2 容器卷的存储312
6.2.3 容器卷存储标准316
6.2.4 基于NFS 的卷存储317
6.2.5 基于Ceph 的卷存储320
6.2.6 使用公有云存储330
6.3 本章小结332
第7 章 容器服务的基础设施333
7.1 集群性能监控333
7.1.1 常见的开源性能监控方案333
7.1.2 基于TICK Stack 的性能监控335
7.1.3 TICK Stack 的部署和使用336
7.1.4 基于Prometheus 的性能监控341
7.1.5 Prometheus 的部署343
7.1.6 Prometheus 的使用353
7.2 集群日志管理361
7.2.1 常见的开源日志管理方案361
7.2.2 基于Elastic Stack 的日志管理363
7.2.3 基于Fluentd 的日志管理372
7.3 服务发现377
7.3.1 常见的服务发现方案377
7.3.2 Etcd379
7.3.3 Consul390
7.4 镜像仓库398
7.4.1 容器镜像仓库概述398
7.4.2 Registry399
7.4.3 Harbor405
7.5 本章小结412
第8 章 容器技术新风向 413
8.1 安全的集群操作系统:Container Linux413
8.1.1 Container Linux 概述413
8.1.2 Container Linux 的部署416
8.1.3 Container Linux 的使用418
8.2 基于容器的操作系统:RancherOS419
8.2.1 RancherOS 概述419
8.2.2 部署RancherOS421
8.2.3 RancherOS 的使用422
8.2.4 使用ros 工具管理系统424
8.3 容器式的虚拟机:Hyper429
8.3.1 Hyper 概述429
8.3.2 部署Hyper430
8.3.3 Hyper 的使用431
8.4 虚拟机式的容器:LXD434
8.4.1 LXD 概述434
8.4.2 LXD 的安装和使用435
8.4.3 服务热迁移440
8.5 容器与虚拟机的统一:Rkt442
8.5.1 Rkt 概述442
8.5.2 Rkt 的安装和使用444
8.6 企业级定制容器:Pouch450
8.6.1 Pouch 概述450
8.6.2 Pouch 的开源生态453
8.6.3 体验Pouch455
8.7 微内核操作系统:Unikernel458
8.7.1 Unikernel 概述458
8.7.2 Unikernel 的发展460
8.7.3 体验Unikernel462
8.8 本章小结465
|
內容試閱:
|
序
在这个日新月异的时代,每一位站在浪尖上的技术匠人,都不得不加紧步伐,追赶不断变化的趋势。与此相应的一个现象是,当一本技术类的书籍刚刚面市,它所讲述的内容就已经开始迅速过时。
这本书从2016 年初开始筹备,由于种种原因拖沓了近两年终于完稿。在这段时间里:
SwarmKit 诞生了,原先的Swarm 技术栈光荣退役。
Kubernetes 的版本从1.0 一路更迭到1.10,增加了无数新特性。
Mesos 推出Unified Container,曾经一度被看好的Docker 集成器风光不再。
Rancher 发布2.0 版本,完全颠覆先前的用户体验设计。
Docker 自家的LinuxKit、阿里的Pouch 这些底层开源技术在不断演进。
书还没写完,最初准备的材料有一大半都已经作废。
先前笔者写作《CoreOS 实践之路》一书时,同样是一边增加新章节,一边关注书里涉及软件的变化,对已有章节进行三番五次的补充修正,到完成时,许多地方都被大段大段地重写了。此次的《容器即服务:从零构建企业级容器集群》因为涉及方面较多,加上写作时间跨度较大,以至于维护其中的内容变化更加困难,经过数次截稿日的跳票,才费劲地将书中示例涉及的大部分软件更新到2017 年中下旬的版本。
不过,本书写作的初衷并非在于介绍最新的工具。对于学习一门成熟的工具,最直接的方式莫过于阅读它的文档。但面对一个领域中众多的知识,入门者最容易迷失的地方在于缺少一条主线。本书一方面希望为容器集群及其周边的领域勾勒一幅入门的蓝图,另一方面则是点出一些在文档中没有讲清但实际很容易迷惑用户的大坑小洼,对于细节和扩展的内容则以参考链接的形式提供。
如今的容器技术正在处于百花齐放的时期,当我们讨论到容器,很多时候已不是单纯地在说某种内核虚拟化技术,而是在谈服务集群、任务调度,以及Cloud Native 和微服务。与此同时,容器平台相关的应用场景也越来越丰富,大规模容器化部署的运用逐渐从少数大型企业发展到许多中型和创业企业里。作为现代产品发布模式的重塑者,容器技术以及它所提倡的基础设施即代码交付思想,对每位一线架构师、开发者、运维人员乃至技术管理者的工作带来的影响,都不容小觑。本书截取了一些具有当下时代特征的技术剪影,提供给读者品味。
在编写内容时,本书尽量以通用的容器技术作为背景,而非限定于特定的容器产品(比如Docker)。但在一些具体的例子方面,均采用了当前最主流的Docker 容器作为讲解示例。
由于写作周期较长,加之作者个人的经验所限,书中难免存在一些阐述不当和错误的地方。本书的勘误表发布在博文视点官方网站http:www.broadview.com.cn33276,恳请各位读者通过此页面提交勘误或发邮件到linfan.china@gmail.com 予以指正。
最后,感谢在过去两年中不断督促和鼓励我完成写作的张春雨以及负责了整本书编辑的吴倩雪,没有你们的努力,这本书肯定无法按时出版。感谢将我养育成材的父母以及我的爱人杨斌清,你们默默的支持使我得以静下心来认真地完成这部作品。同样感谢每一位开源代码的贡献者,正是开源推动了技术的革命,才使旧时王谢堂前燕,如今飞入寻常百姓家。我亦是一名普通的技术匠人,且当少一些浮躁,多一些沉淀,借以此书自勉。
林 帆
2017 年12 月25 日
|
|