CoreOS实践之路
  • 推荐0
  • 收藏0
  • 浏览839

CoreOS实践之路

林帆 (作者)  葛娜 (责任编辑)

  • 书  号:978-7-121-27509-8
  • 出版日期:2015-11-24
  • 页  数:340
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:张春雨
随着应用容器的探索和实践,出现了以CoreOS为代表的将服务容器化的最佳实践。《CoreOS实战之路》一书首先介绍了CoreOS诞生的背景和Docker容器的基本操作,接着通过庖丁解牛的方式重点阐述CoreOS提供的核心服务,最后通过应用容器和集群服务的三种典型应用场景分析了CoreOS的工程实践以及故障处理方法。
√ CoreOS是全球范围内Docker最有力竞争者,得到谷歌等全部一线大公司鼎力支持
√ 本书是国内唯一一本讲解CoreOS的技术图书,覆盖全面,内容系统,实战性强
√ 作者林帆是Thoughtworks资深工程师,也是国内CoreOS的布道者与实践者
√ 定位于容器技术,同时覆盖了Docker及CoreOS与其他容器技术的组合应用
前  言


关于CoreOS系统
一直以来,服务器操作系统的升级都是运维人员感到棘手的事情。目前市面上的各种服务器操作系统普遍存在版本壁垒,无法保证安全的系统升级和回滚,这使得许多服务器不得不长时间运行在已经过时的内核和系统组件上,然后手工安装紧急的安全补丁或者索性完全不在意系统的安全问题。CoreOS系统并不是第一个尝试解决这种现状的服务器系统,但它却是被最先设计出的能够安全可靠地用于生产环境中系统持续升级解决方案的操作系统。
出于这样的初衷,CoreOS采用了基于双系统分区、容器技术和集群架构的设计思路,克服了由于用户修改系统内容、用户服务对系统组件依赖,以及系统重启时服务中断等种种导致升级过程不可靠的因素,最终以一种轻量级、平台定制化的操作系统呈现出来。它尽可能地适应各种不同的基础设施环境,使得系统具备十分便捷的集群组建能力,并鼓励用户通过容器技术隔离服务运行环境。
熟悉CoreOS系统的操作,除了理解它的只读系统分区和双系统分区等特殊性,更多的要求还在于熟悉CoreOS内置的容器和集群工具,例如Docker、Rkt、Systemd、Fleet、Etcd、Locksmith,以及与Confd、Flannel和Kubernetes等非内置服务的集成使用。这些内容都会在本书的相应章节中逐一介绍。
本书的内容
本书是一本介绍CoreOS操作系统使用和周边技术的入门实践类书籍。本书内容分为三个主要部分。
第一部分,包括第1章的内容。主要介绍CoreOS的基本概念和系统的安装,为后续各个组件的使用做好铺垫工作。
第二部分,包括第2~6章的内容。主要介绍CoreOS中最核心的内置组件,通过这些组件,使用者能够完成大部分CoreOS的日常操作和开发任务。
第三部分,包括第7~9章的内容。主要针对CoreOS中一些比较进阶的话题以及组件进行更具体的讲解,并介绍一些CoreOS使用技巧。
在通读了这些内容后,相信读者会对CoreOS系统有一个比较全面的认识。
关于本书
本书的诞生源于我在CSDN发表的《CoreOS实践指南》系列文章,在许多章节中都依然可以看见该系列文章的影子。但由于CoreOS周边的技术发展迅速,当时刊在网络上的许多内容都已经逐渐过时,本书针对这部分内容进行了修改,并扩充了大量在网络文章中由于篇幅原因没有详细介绍说明的技巧和信息,同时增加了如Flannel、Kubernetes等周边内容,从字数上看来,其容量大约是原系列文章的5倍。本书在编写过程中持续更新了系统的最新特性,直至定稿前CoreOS的v835.0.0版本和Kubernetes的v1.0.6版本,从新特性变化的频率来看,目前这些技术都已经进入相对稳定的阶段,其内容会在未来较长时间内适用。
由于作者时间与水平的局限,尽管在后期已经对书的内容进行过校检,但书中难免依然存在一些纰漏和错误。如果读者发现了问题,请发送至作者的邮箱:linfan.china@gmail.com。同时,在本书的网站http://coreos.space中也会及时发布相应的后续内容更新和勘误。
致谢
本书的出版,首先要感谢鼓励我发表《CoreOS实践指南》系列文章的前CSDN编辑周小璐女士,她是我在技术写作路上的一位伯乐,没有她的帮助,我肯定无法完成这个原本只是写在自己默默无闻的博客上的技术分享。
其次,非常感谢电子工业出版社的张春雨先生。在本书写作的近10个月时间里,张先生的敦促和指导使得本书得以最终成型。特别是他耐心而友好地对待我一次次的拖稿,以及在我将稿件提交排版后,还继续对内容进行多次较大幅度更新和修改给予了支持。
最后,感谢我的父母,你们的关心和鼓励一直是我持续向前的动力;以及我的女友杨斌清,在我每天晚上挑灯写作时,包容和陪伴我,愿我们的辛勤付出能收获幸福的果实。我爱你们。



推荐语


云计算浪潮之中,CoreOS无疑是最受世人瞩目的主力军之一。纵观数十年科技史,技术的革新者永远引领着时代的发展。CoreOS则是Linux操作系统领域的探索者与革新者。
很高兴看到林帆老师这么快在国内布道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版块编辑 周小璐

目录

目  录


第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

读者评论

图书类别

相关图书

架构解密:从分布式到微服务(第2版)

吴治辉 (作者)

微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术...

 

容器即服务:从零构建企业级容器集群

林帆 (作者)

本书介绍了容器即服务的发展过程和主要技术,重点阐述当下主流的SwarmKit、Kubernetes、Mesos和Rancher 开源容器集群方案,并探讨了容器技...

¥69.00

自己动手写Docker

陈显鹭 (作者)

通过讲解 Docker 使用到的各种底层技术,例如Namespace、Cgroups等来自己一步步动手完成一个简单版本的Docker。在自己动手的过程中,从而对...

¥39.00

Docker实战

Jeff Nickoloff (作者) 杨润青 (译者)

本书开始于一个明确的虚拟化Docker模型说明,展示了如何创建、部署和管理驻留在Docker容器中的应用程序。通过Docker中心和其他注册中心,它提供了具体的...

¥59.00

Docker容器实战:原理、架构与应用

廖煜 晏东 张启玉 刘刚 (作者)

本书介绍了Docker容器技术的背景和基本原理,以及如何定制化符合用户要求的Docker Daemon,增加安全性、提高效率。.镜像提供了千差万别的服务,每一个...

¥55.00

Kubernetes权威指南:从Docker到Kubernetes实践全接触(第2版)

闫健勇 (作者)

Kubernetes是由谷歌开源的Docker容器集群管理系统,为容器化的应用提供了资源调度、部署运行、服务发现、扩容及缩容等一整套功能。本书从一个开发者的角度...

¥79.00