√CoreOS是全球范围Docker的有力竞争者,得到谷歌等众多一线大公司鼎力支持
√本书是国内仅有的讲解CoreOS的技术图书,覆盖全面,内容系统,实战性强
√作者林帆是Thoughtworks资深工程师,也是国内首要CoreOS的布道者与实践者
√定位于容器技术,同时覆盖了Docker及CoreOS与其他容器技术的组合应用
《CoreOS实战之路》是一本介绍CoreOS操作系统使用和周边技术的入门实践类书籍。《CoreOS实战之路》内容分为三个主要部分。第一部分(第1章)主要介绍CoreOS的基本概念和系统的安装,为后续各个组件的使用做好铺垫工作;第二部分(第2~6章)主要介绍CoreOS中最核心的内置组件,通过这些组件,使用者能够完成大部分CoreOS的日常操作和开发任务;第三部分(第7~9章)主要针对CoreOS中一些比较进阶的话题以及组件进行更具体的讲解,并介绍一些CoreOS使用技巧。
在通读了这些内容后,相信读者会对CoreOS系统有一个比较全面的认识。
第1章 CoreOS简介和安装 1
1.1 CoreOS简介 1
1.1.1 CoreOS是什么 1
1.1.2 CoreOS的诞生和发展 2
1.1.3 CoreOS的用户体验 4
1.1.3.2 更快的启动速度 4
1.1.4 CoreOS的适应场景 6
1.2 CoreOS核心组件 10
1.3 架设CoreOS集群 13
1.3.1 CoreOS支持的平台 13
1.3.2 部署CoreOS集群 15
1.4 CoreOS的操作系统衍生 25
1.5 小结 26
第2章 使用CoreOS中的容器 27
2.1 应用容器入门 27
2.1.1 什么是应用容器 27
2.1.2 应用容器技术的发展 28
2.1.3 命名空间(Namespace) 30
2.1.4 控制组(CGroup) 32
2.1.5 容器的应用场景 36
2.2 使用Docker容器 38
2.2.1 Docker容器工具概述 38
2.2.2 Docker命令行的基本使用 40
2.2.3 数据共享与备份 45
2.2.4 多容器通信 48
2.2.5 Docker API 50
2.3 Docker镜像制作 50
2.3.1 Docker镜像 50
2.3.2 从容器构建镜像 51
2.3.3 Dockerfile 53
2.3.4 镜像仓库 57
2.4 使用Rkt容器 59
2.4.1 Rkt简介 59
2.4.2 使用Rkt容器 61
2.4.3 镜像管理 68
2.4.4 Rkt容器的生命周期 73
2.4.5 其他命令 76
2.5 Rkt的容器镜像 78
2.5.1 AppC Spec规范 78
2.5.2 Aci镜像工具 80
2.5.3 Aci镜像签名 86
2.5.4 Aci镜像定义文件 88
2.5.5 镜像分发 91
2.6 小结 93
第3章 Systemd节点资源管理 94
3.1 Systemd的服务管理模型 94
3.1.1 Systemd概述 94
3.1.2 Systemd的设计理念 95
3.1.3 Systemd的服务管理 96
3.1.4 日志管理 98
3.1.5 服务的生命周期 101
3.1.6 服务的Unit文件 103
3.1.7 Unit文件占位符 111
3.1.8 Unit模板 112
3.2 Systemd的系统资源管理 113
3.2.1 Systemd的Unit文件 113
3.2.2 定时器 115
3.2.3 路径监控器 117
3.2.4 数据监控器 119
3.2.5 挂载文件系统 121
3.2.6 自动挂载文件系统 123
3.2.7 交换分区(虚拟内存) 125
3.3 Systemd工具集 126
3.3.1 Systemd系列工具概述 126
3.3.2 主机名、时间、地区信息管理 127
3.3.3 电源管理 128
3.3.4 启动时间和运行状态分析 129
3.3.5 辅助性命令工具 131
3.3.6 Systemd容器 134
3.4 小结 139
第4章 Fleet跨节点服务调度 140
4.1 Fleet简介 140
4.1.1 Systemd服务管理的局限性 140
4.1.2 Fleet的服务调度 141
4.2 Fleet的基本操作 141
4.2.1 获取集群信息 141
4.2.2 显示集群服务 142
4.2.3 节点跳转 143
4.2.4 跨节点执行命令 145
4.3 通过Unit文件运行跨节点调度的服务 145
4.3.1 Fleet的Unit文件 145
4.3.2 在集群上运行服务 146
4.3.3 Fleet的X-Fleet段 146
4.3.4 模板参数 147
4.4 集群中的服务生命周期 147
4.4.1 提交服务 148
4.4.2 加载服务 149
4.4.3 启动服务 149
4.4.4 停止服务 150
4.4.5 服务自动启动 150
4.4.6 服务状态和日志 151
4.5 服务热迁移 152
4.6 小结 152
第5章 Etcd分布式配置共享 153
5.1 基于Etcd的配置共享和集群组建 153
5.1.1 Etcd概述 153
5.1.2 Etcd集群的构建 158
5.1.3 Etcd的操作 164
5.1.4 Etcd集群的成员管理 169
5.1.5 重大故障的恢复 174
5.2 Etcd的应用程序接口 175
5.2.1 概述 175
5.2.2 Etcd数据操作 176
5.2.3 成员管理 185
5.2.4 集群的统计信息 187
5.2.5 隐藏数据节点 190
5.3 小结 192
第6章 CoreOS综合案例 193
6.1 案例一:分布式服务的监控 193
6.1.1 案例说明 193
6.1.2 方案实施 194
6.1.3 案例延伸 201
6.1.4 案例总结 202
6.2 案例二:应用层负载均衡 202
6.2.1 案例说明 202
6.2.2 方案实施 204
6.2.3 案例延伸 212
6.2.4 案例总结 217
6.3 小结 217
第7章 深入CoreOS的特性与集群架构 218
7.1 CoreOS的系统启动配置 218
7.1.1 用户数据文件 219
7.1.2 编写用户数据文件 222
7.1.3 验证和修改用户数据文件 230
7.2 CoreOS系统升级 232
7.2.1 具有CoreOS特色的系统升级 232
7.2.2 升级参数配置 236
7.2.3 执行系统升级 240
7.2.4 更好的升级策略 241
7.2.5 升级的回滚 245
7.3 CoreOS的集群架构 247
7.3.1 单节点架构 247
7.3.2 小型集群 249
7.3.3 开发/测试环境集群 250
7.3.4 产品环境集群 252
7.4 小结 255
第8章 Kubernetes集群管理 256
8.1 Flannel网络规划 256
8.1.1 Flannel简介 256
8.1.2 Flannel的安装和使用 260
8.1.3 Flannel的配置 268
8.2 架设Kubernetes集群管理系统 269
8.2.1 Kubernetes简介 269
8.2.2 Kubernetes的组成 270
8.2.3 部署Kubernetes集群管理系统 272
8.2.4 Kubernetes的基本操作 280
8.3 Kubernetes的插件机制 288
8.3.1 Kubernetes的内置插件 288
8.3.2 SkyDNS插件 289
8.3.3 KubeUI插件 293
8.4 Kubernetes应用案例 295
8.4.1 案例一:留言板应用 295
8.4.2 案例二:在线更新应用 302
8.5 小结 306
第9章 CoreOS小技巧 307
9.1 CoreOS使用技巧 307
9.1.1 扩展系统命令 307
9.1.2 运行有界面的软件 308
9.1.3 容器的默认语言和时区 310
9.1.4 JSON格式化 311
9.1.5 在CoreOS中安装tmux和screen 312
9.1.6 修改core用户的.bashrc文件 312
9.1.7 自定义SSH端口和配置 313
9.1.8 运行其他CoreOS中无法安装的软件 314
9.2 CoreOS周边工具 315
9.2.1 使用Sysdig检测容器的系统资源状态 315
9.2.2 使用Calico实现容器级防火墙 317
9.3 小结 321
很高兴看到林帆老师这么快在国内布道CoreOS。《CoreOS实践之路》一书全部是最前沿实践工作的技术结晶,深入浅出地分析了CoreOS生态中每一类技术。无论是CoreOS的使用者还是开发者,都可以通过本书对CoreOS有更深入、更全面的了解。
——《Docker源码分析》作者 孙宏亮
作为容器时代的操作系统,CoreOS迅速以其轻巧、简单、易用的特点获得了开发者的青睐。林帆是国内CoreOS社区的早期参与者,在InfoQ撰写了大量的原创文章来向社区普及CoreOS相关知识,不管是他的文章还是演讲,都深受读者喜欢。本书系统介绍了CoreOS的技术细节以及生态,将理论与案例相结合,内容丰富,值得一读。
——InfoQ主编 郭蕾
容器生态圈中的多个开源软件Kubernetes、Docker、Mesos等都已经被很多公司应用到生产环境,而CoreOS却一直是雷声大雨点小,国内讨论、研究CoreOS的社区相对较少。本书是一本CoreOS的中文书籍,作者林帆非常熟悉CoreOS圈子里的相关开源软件,在社区中做过很多的布道,相信本书的出版一定会助力CoreOS在国内的发展。
——DockOne.io发起人 李颖杰
CoreOS为产品容器化提供了一整套的开源解决方案,它可以让你在公有云或物理机上快速构建属于自己的CaaS,使得部署、管理和升级大规模可动态伸缩的云计算资源变得轻松起来。本书从实战角度全面地分析了构成整个生态链的开源项目,包括Docker、Rkt、Kubernetes、Fleet、Etcd、Systemd和Flannel。这些开源项目为下一代基础设施的实现成为了一种可能,不仅大大解决了整个基础设施的生产力,而且改变了产品开发、测试、交付的模式。
——光音网络技术研发负责人 王鹏
我相信,用容器技术的人,翻到任意一章都能得到有价值的信息。这是一本清晰、准确、精心编写的书。力求让读者明白CoreOS操作系统区别与其他Linux操作系统的优势。实际上容器技术已热火朝天,选择一个安全运行容器的操作系统必不可少。作者是一个非常细腻的人,以渐进的方式一步步阐述了CoreOS的前身和来世,并实践了flannel和kubernetes等技术。本书是容器技术工程师必备读物。
——希云cSphere技术布道师 张春源
初识林帆是在国内首次的CoreOS Meetup上,Docker刚刚在国内火起来,CoreOS还未走入大多数人的视线。林帆的演讲题目是《Not yet perfect CoreOS》,一一细数了CoreOS在Systemd、Fleet、Etcd等方面的优缺点,那时就觉得这位同学好厉害,大多数人都不知道的东西,他都已经能指出不完美之处,并给出改进建议了。
后来就开始请林帆在CSDN写《漫步云端:CoreOS实践指南》系列,可能已经成为国内好多同学学习CoreOS的入门文章。最近得知林帆在写国内一本CoreOS的书,马上读了预览稿。书中延续了林帆文章的一贯风格,力图对每个点深入浅出,理论结合实践,又不乏趣味性,内容也不仅限于CoreOS,值得每位容器技术爱好者阅读。
——灵雀云成员 前CSDN网站Docker版块编辑 周小璐