好书推荐 好书速递 排行榜 读书文摘

Docker——容器与容器云

Docker——容器与容器云
作者:浙江大学SEL实验室
出版社:人民邮电出版社
出版年:2015-09
ISBN:9787115401106
行业:计算机
浏览数:80

内容简介

本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker入门、架构总览、Docker容器核心原理解读,以及Docker高级实践技巧;第二部分深入解读基于Docker的主流容器云技术,讲解了构建自己的容器云的方法,深入分析了3类Docker容器云技术的实现方法的设计思路,包括专注Docker容器编排与部署的容器云(Compose、Machine、Swarm、Fleet)、专注应用支撑的容器云(Flynn、Deis),以及一切皆容器的Kubernetes。

本书适用于有一定Docker基础的开发者、架构师、IT专业学生以及探索基于Docker构建云计算平台的技术人员,也非常适合作为高校教材或培训资料。

......(更多)

作者简介

浙江大学SEL实验室

浙江大学软件工程实验室(Software Engineering Lab,SEL)云计算团队组建于2011年,组织博士和硕士研究生搭建、分析和钻研开源的云计算技术,包括Docker、Kubernetes、Cloud Foundry、OpenStack、CloudStack、Eucalyptus、Convirt、OpenShift等,积极为开源社区贡献代码,管理和参与线上线下讨论社区,参加国内外云计算技术峰会并发言。以开源社区为技术交流研发平台,浙江大学SEL实验室在4年多的时间里成长为一个充满热情、富有能力的云计算研发团队,也在国内外开源云计算社区,尤其是在Docker、Kubernetes和Cloud Foundry社区得到了广泛认可。

......(更多)

目录

第一部分 Docker深入解读

第1章 从容器到容器云  2

1.1 云计算平台  2

1.2 容器,新的革命  3

1.3 进化:从容器到容器云  7

第2章 Docker基础  8

2.1 Docker的安装  8

2.2 Docker操作参数解读  9

2.3 搭建你的第一个Docker应用栈  16

2.3.1 Docker集群部署  16

2.3.2 第一个Hello World  17

2.3.3 开发、测试和发布一体化  27

第3章 Docker核心原理解读  28

3.1 Docker背后的内核知识  28

3.1.1 namespace资源隔离  28

3.1.2 cgroups资源限制  45

3.2 Docker架构概览  53

3.3 client和daemon  55

3.3.1 client模式  55

3.3.2 daemon模式  57

3.3.3 从client到daemon  63

3.4 libcontainer  66

3.4.1 libcontainer的工作方式  68

3.4.2 libcontainer实现原理  69

3.4.3 使用nsinit与libcontainer进行交互  74

3.5 Docker镜像管理  76

3.5.1 什么是Docker镜像  76

3.5.2 Docker镜像关键概念  78

3.5.3 Docker镜像操作解析  80

3.5.4 Docker容器的迁移方法  84

3.6 Docker存储驱动  85

3.6.1 存储驱动的功能与管理  86

3.6.2 aufs与Device Mapper驱动  87

3.7 Docker数据卷  93

3.7.1 数据卷的使用方式  94

3.7.2 数据卷原理解读  98

3.8 Docker网络管理  102

3.8.1 Docker网络基础  102

3.8.2 Docker daemon网络配置原理  107

3.8.3 libcontainer网络配置原理  111

3.8.4 Link原理解析  115

3.9 Docker与容器安全  118

3.9.1 Docker的安全机制  118

3.9.2 Docker安全问题  122

3.9.3 Docker安全的解决方案  126

第4章 Docker高级实践技巧  138

4.1 容器化思维  138

4.1.1 SSH服务器的替代方案  139

4.1.2 Docker内应用日志管理方案  139

4.1.3 其他技巧汇总  140

4.2 Docker高级网络实践  142

4.2.1 玩转Linux network namespace  143

4.2.2 pipework原理解析  148

4.2.3 pipework跨主机通信  154

4.2.4 OVS划分VLAN  159

4.2.5 OVS隧道模式  163

4.3 Dockerfile最佳实践  175

4.3.1 Dockerfile的使用  176

4.3.2 Dockerfile实践心得  180

4.4 Docker容器的监控手段  182

4.4.1 Docker容器监控维度  182

4.4.2 容器监控命令  183

4.4.3 常用的容器监控工具  186

4.5 容器化应用构建的基础:高可用配置中心  189

4.5.1 etcd经典应用场景  190

4.5.2 etcd实现原理  194

第二部分 Docker云平台解读

第5章 构建自己的容器云  210

5.1 再谈云平台的层次架构  210

5.2 从小工到专家  213

第6章 专注编排与部署:三剑客与Fleet  218

6.1 编排小神器Fig  218

6.1.1 再谈容器编排与部署  218

6.1.2 Compose原理:一探究竟  221

6.2 环境透明化工具Machine  225

6.2.1 Machine与虚拟机软件  226

6.2.2 Machine与IaaS平台  227

6.2.3 Machine小结  228

6.3 集群抽象工具Swarm  229

6.3.1 Swarm简介  229

6.3.2 试用Swarm  230

6.3.3 Swarm集群的多种创建方式  231

6.3.4 Swarm对请求的处理  233

6.3.5 Swarm集群的调度策略  233

6.3.6 Swarm与Machine  234

6.4 编排之秀Fleet  235

6.4.1 旧问题新角度:Docker distro  235

6.4.2 Fleet的原理剖析  239

第7章 专注应用支撑和运行时:Flynn 和Deis  245

7.1 Flynn,一个小而美的两层架构  245

7.1.1 第0层:容器云的基础设施   246

7.1.2 第1层:容器云的功能框架   246

7.1.3 Flynn体系架构与实现原理   247

7.2 谈谈Deis与Flynn   257

7.2.1 应用发布上的比较   258

7.2.2 关于Deis的一些思考   260

第8章 一切皆容器:Kubernetes   261

8.1 Kubernetes简介   261

8.2 Kubernetes的设计解读   262

8.2.1 一个典型案例:Guestbook. 263

8.2.2 Kubernetes核心概念剖析   265

8.3 Kubernetes核心组件解读   294

8.3.1 APIServer   294

8.3.2 Scheduler   301

8.3.3 Controller Manager   309

8.3.4 kubelet   314

8.3.5 kube-proxy   320

8.3.6 核心组件协作流程   325

8.4 Kubernetes用户认证授权与资源管理   328

8.4.1 namespace解析   328

8.4.2 基于token文件或客户端证书的认证机制   333

8.4.3 基于访问规则的授权机制   334

8.4.4 基于资源的授权控制AdmissionControl   336

8.5 Kubernetes网络核心原理   347

8.5.1 单pod单IP模型   348

8.5.2 pod和网络容器   350

8.5.3 实现Kubernetes的网络模型   353

8.6 Kubernetes高级实践   356

8.6.1 Kubernetes高级实践之应用健康检查   356

8.6.2 Kubernetes高级实践之高可用性   358

8.6.3 Kubernetes高级实践之日志   362

8.6.4 Kubernetes高级实践之集成DNS   364

8.6.5 Kubernetes高级实践之容器上下文环境   366

8.7 不要停止思考  368

第三部分 附录

附录A Docker的安装   372

附录B 阅读Docker源代码的神兵利器   379

附录C 快速熟悉开源项目   388

附录D cgroups的测试与使用   391

附录E cgroups子系统配置参数介绍   395

附录F Kubernetes的安装   400

后记   403

......(更多)

读书文摘

kubernates 的网络模型里 pod 必须都处在一个扁平化的网络地址空间中,说白了,就是需要满足如下三个假设(个别依据实际应用场景而分隔的特殊网段除外): - 所有容器之间的通信无需经过 NAT; - 所有集群节点与容器、容器与集群节点的通信无需经过 NAT; - 容器本身看到的容器 ip 地址与其他容器看到的 ip 地址是一样的。

阅读文档的过程不能盲目,需要带着如下问题去阅读。 1. 这个项目解决了什么问题? 2. 这个项目涉及了哪些成熟的技术? 3. 这个项目是否符合我的要求? 4. 当阅读完文档后,是否能尝试画出大致的架构图?

......(更多)

猜你喜欢

点击查看