Kubernetes即学即用(第二版)
Brendan Burns, Joe Beda, Kelsey Hightower
马晶慧 译
出版时间:2021年06月
页数:280
Kubernetes的时代已然到来。在短短几年内,这款容器编排器从 根本上改变了开发人员和运维人员在云中构建、部署,以及维护 应用程序的方式。无论你是分布式系统的新手,还是多年来一直在部署云原生应用程序的老手,Kubernetes都可以帮助你在速 度、敏捷性、可靠性,以及效率等方面更上一层楼。
本书作者长期致力于Kubernetes的概念抽象以及构建实践,他们将通过本书向你展示怎样将Kubernetes完美地融入分布式应用程 序的生命周期。你将学习如何使用各种工具以及API来实现可扩展分布式系统的自动化,无论你的系统是在线服务、机器学习应用程序,还是树莓派计算机集群。
● 创建和运行一个简单的集群,了解Kubernetes的基本工作原理。
● 深入了解使用Kubernetes、Pod、服务、Ingress,以及副本集部署应用程序的细节。
● 将存储集成到Kubernetes的容器化微服务中。
● 学习Kubernetes中的专用对象,例如守护进程集、作业、ConfigMap,以及Secret等。
● 掌握在Kubernetes中开发和部署应用程序的实战经验。
  1. 前言
  2. 第1章 概述
  3. 1.1 速度
  4. 1.1.1 不可变性的价值
  5. 1.1.2 声明式配置
  6. 1.1.3 自我修复系统
  7. 1.2 扩展服务和团队
  8. 1.2.1 解耦
  9. 1.2.2 轻松扩展应用程序和集群
  10. 1.2.3 通过微服务扩展开发团队
  11. 1.2.4 一致性与扩展性的关注点分离
  12. 1.3 抽象基础设施
  13. 1.4 效率
  14. 1.5 小结
  15. 第2章 创建和运行容器
  16. 2.1 容器镜像
  17. 2.2 使用Docker构建应用程序镜像
  18. 2.2.1 Dockerfiles
  19. 2.2.2 优化镜像的大小
  20. 2.2.3 镜像安全.
  21. 2.3 多阶段镜像构建
  22. 2.4 将镜像存储到远程仓库
  23. 2.5 Docker容器运行时
  24. 2.5.1 通过Docker运行容器
  25. 2.5.2 探索kuard应用程序
  26. 2.5.3 限制资源使用
  27. 2.6 清理
  28. 2.7 小结
  29. 第3章 部署Kubernetes集群
  30. 3.1 在公共云上安装Kubernetes
  31. 3.1.1 Google Kubernetes Engine
  32. 3.1.2 使用Azure Kubernetes服务安装Kubernetes
  33. 3.1.3 在Amazon Web Services上安装Kubernetes
  34. 3.2 使用minikube在本地安装Kubernetes
  35. 3.3 在Docker 中运行Kubernetes
  36. 3.4 在树莓派上运行Kubernetes
  37. 3.5 Kubernetes客户端
  38. 3.5.1 检查集群状态
  39. 3.5.2 列出Kubernetes的工作节点
  40. 3.6 集群组件
  41. 3.6.1 Kubernetes代理
  42. 3.6.2 Kubernetes DNS
  43. 3.6.3 Kubernetes用户界面
  44. 3.7 小结
  45. 第4章 常用的kubectl命令
  46. 4.1 命名空间
  47. 4.2 上下文
  48. 4.3 查看Kubernetes API对象
  49. 4.4 创建、更新和销毁Kubernetes对象
  50. 4.5 给对象添加标签和注释
  51. 4.6 调试命令
  52. 4.7 自动补齐命令
  53. 4.8 查看集群的其他方法
  54. 4.9 小结
  55. 第5章 Pod
  56. 5.1 Kubernetes中的Pod
  57. 5.2 Pod的应用思路
  58. 5.3 Pod清单
  59. 5.3.1 创建Pod
  60. 5.3.2 创建Pod清单
  61. 5.4 运行Pod
  62. 5.4.1 查询Pod列表
  63. 5.4.2 Pod的详细信息
  64. 5.4.3 删除Pod
  65. 5.5 访问Pod
  66. 5.5.1 使用端口转发
  67. 5.5.2 通过日志获取更多信息
  68. 5.5.3 使用exec在容器中运行命令
  69. 5.5.4 在容器之间复制文件
  70. 5.6 健康检查
  71. 5.6.1 存活探针
  72. 5.6.2 就绪探针
  73. 5.6.3 健康检查的类型
  74. 5.7 资源管理
  75. 5.7.1 资源请求:所需的最少资源量
  76. 5.7.2 通过约束限制资源使用量
  77. 5.8 利用卷持久保存数据
  78. 5.8.1 在Pod中使用卷
  79. 5.8.2 Pod中卷的不同使用方式
  80. 5.8.3 使用远程磁盘持久保存数据
  81. 5.9 综合讨论
  82. 5.10 小结
  83. 第6章 标签与注释
  84. 6.1 标签
  85. 6.1.1 应用标签
  86. 6.1.2 修改标签
  87. 6.1.3 标签选择器
  88. 6.1.4 API对象中的标签选择器
  89. 6.1.5 Kubernetes架构中的标签
  90. 6.2 注释
  91. 6.3 清理
  92. 6.4 小结
  93. 第7章 服务发现
  94. 7.1 什么是服务发现?
  95. 7.2 服务对象
  96. 7.2.1 DNS服务
  97. 7.2.2 就绪检查
  98. 7.3 向外公开集群服务
  99. 7.4 云集成
  100. 7.5 高级集成
  101. 7.5.1 端点
  102. 7.5.2 手动发现服务
  103. 7.5.3 kube-proxy与集群IP
  104. 7.5.4 集群IP环境变量
  105. 7.6 连接到其他环境
  106. 7.7 清理
  107. 7.8 小结
  108. 第8章 Ingress的HTTP负载均衡
  109. 8.1 Ingress的规范与Ingress控制器
  110. 8.2 安装Contour
  111. 8.2.1 配置DNS
  112. 8.2.2 配置本地的hosts文件
  113. 8.3 使用Ingress
  114. 8.3.1 最简单的用法
  115. 8.3.2 使用主机名
  116. 8.3.3 使用路径
  117. 8.3.4 清理
  118. 8.4 Ingress的高级话题和技巧
  119. 8.4.1 运行多个Ingress控制器
  120. 8.4.2 多个Ingress对象
  121. 8.4.3 Ingress与命名空间
  122. 8.4.4 改写路径
  123. 8.4.5 提供TLS
  124. 8.5 Ingress的其他实现
  125. 8.6 Ingress的未来
  126. 8.7 小结
  127. 第9章 副本集
  128. 9.1 协调循环
  129. 9.2 Pod与副本集的关联
  130. 9.2.1 采用现有的容器
  131. 9.2.2 隔离容器
  132. 9.3 副本集的设计思想
  133. 9.4 副本集的规范
  134. 9.4.1 Pod模板
  135. 9.4.2 标签
  136. 9.5 创建副本集
  137. 9.6 检查副本集
  138. 9.6.1 根据Pod查找副本集
  139. 9.6.2 查找副本集管理的Pod集合
  140. 9.7 副本集的伸缩
  141. 9.7.1 副本集的命令式伸缩:kubectl scale
  142. 9.7.2 副本集的声明式伸缩:kubectl apply
  143. 9.7.3 自动伸缩副本集
  144. 9.8 删除副本集
  145. 9.9 小结
  146. 第10章 部署
  147. 10.1 第一个部署
  148. 10.2 创建部署
  149. 10.3 管理部署
  150. 10.4 更新部署
  151. 10.4.1 扩展部署
  152. 10.4.2 更新容器镜像
  153. 10.4.3 推出的历史记录
  154. 10.5 部署策略
  155. 10.5.1 重建策略
  156. 10.5.2 滚动更新策略
  157. 10.5.3 放慢部署速度以确保服务健康
  158. 10.6 删除部署
  159. 10.7 监控部署
  160. 10.8 小结
  161. 第11章 守护进程集
  162. 11.1 守护进程集调度器
  163. 11.2 创建守护进程集
  164. 11.3 将守护进程集限制到特定节点
  165. 11.3.1 向节点添加标签
  166. 11.3.2 节点选择器
  167. 11.4 更新守护进程集
  168. 11.5 删除守护进程集
  169. 11.6 小结
  170. 第12章 作业
  171. 12.1 作业对象
  172. 12.2 作业模式
  173. 12.2.1 一次性作业
  174. 12.2.2 并行性
  175. 12.2.3 工作队列
  176. 12.3 定时作业
  177. 12.4 小结
  178. 第13 章 ConfigMap与Secret
  179. 13.1 ConfigMap
  180. 13.1.1 创建ConfigMap
  181. 13.1.2 使用ConfigMap
  182. 13.2 Secret
  183. 13.2.1 创建Secret
  184. 13.2.2 消费Secret
  185. 13.2.3 私有Docker仓库
  186. 13.3 命名约束
  187. 13.4 管理ConfigMap和Secret
  188. 13.4.1 显示列表
  189. 13.4.2 创建
  190. 13.4.3 更新
  191. 13.5 小结
  192. 第14章 基于角色的访问控制
  193. 14.1 基于角色的访问控制
  194. 14.1.1 Kubernetes中的身份
  195. 14.1.2 角色和角色绑定
  196. 14.1.3 Kubernetes中的角色和角色绑定
  197. 14.2 RBAC的管理技巧
  198. 14.2.1 使用can-i测试授权
  199. 14.2.2 通过源代码控制管理RBAC
  200. 14.3 高级主题
  201. 14.3.1 聚合ClusterRoles
  202. 14.3.2 使用组进行绑定
  203. 14.4 小结
  204. 第15章 存储解决方案与Kubernetes的集成
  205. 15.1 导入外部服务
  206. 15.1.1 没有选择器的服务
  207. 15.1.2 外部服务的局限性:健康检查
  208. 15.2 运行可靠的单例
  209. 15.2.1 运行MySQL单例服务
  210. 15.2.2 动态卷供应
  211. 15.3 利用状态集实现Kubernetes原生存储
  212. 15.3.1 状态集的属性
  213. 15.3.2 利用状态集手动复制MongoDB
  214. 15.3.3 自动化MongoDB集群的创建
  215. 15.3.4 持久卷与状态集
  216. 15.3.5 最后一步:存活探针
  217. 15.4 小结
  218. 第16章 扩展Kubernetes
  219. 16.1 扩展Kubernetes意味着什么
  220. 16.2 可扩展点
  221. 16.3 定制资源的模式
  222. 16.3.1 仅有数据
  223. 16.3.2 编译器
  224. 16.3.3 操作器
  225. 16.3.4 如何入门
  226. 16.4 小结
  227. 第17章 部署实际应用程序
  228. 17.1 Jupyter
  229. 17.2 Parse
  230. 17.2.1 前提条件
  231. 17.2.2 构建Parse服务器
  232. 17.2.3 部署parse-server
  233. 17.2.4 测试Parse
  234. 17.3 Ghost
  235. 17.4 Redis
  236. 17.4.1 配置Redis
  237. 17.4.2 创建Redis服务
  238. 17.4.3 部署Redis
  239. 17.4.4 使用Redis集群
  240. 17.5 小结
  241. 第18章 组织应用程序
  242. 18.1 我们的指导原则
  243. 18.1.1 以文件为准
  244. 18.1.2 代码审查的作用
  245. 18.1.3 特性门控
  246. 18.2 在源代码管理中管理应用程序
  247. 18.2.1 文件系统的布局
  248. 18.2.2 管理周期性的版本
  249. 18.3 为开发、测试与部署组织应用程序的结构
  250. 18.3.1 目标
  251. 18.3.2 发布的进展
  252. 18.4 使用模板为应用程序添加参数
  253. 18.4.1 使用Helm和模板实现参数化
  254. 18.4.2 在文件系统布局中使用参数
  255. 18.5 部署全球性的应用程序
  256. 18.5.1 全球部署架构
  257. 18.5.2 实现全球部署
  258. 18.5.3 面向全球部署的仪表板和监视
  259. 18.6 小结
  260. 附录 利用树莓派搭建Kubernetes集群
书名:Kubernetes即学即用(第二版)
译者:马晶慧 译
国内出版社:中国电力出版社
出版时间:2021年06月
页数:280
书号:978-7-5198-5676-2
原版书书名:Kubernetes: Up and Running, 2nd Edition
原版书出版商:O'Reilly Media
Brendan Burns
 
Brendan Burns是微软的杰出工程师,也是Kubernetes项目的共同创始人。目前在微软 Azure负责容器和DevOps相关工作。在加入微软之前,他在谷歌云平台上工作,帮助构建了Deployment Manager和Cloud DNS等API。在从事云计算之前,他曾在谷歌从事网络搜索基础架构方面工作,专注于低延迟索引。他拥有马萨诸塞州阿默斯特大学计算机科学博士学位,主修机器人技术。他和妻子Robin Sanders(以及两个孩子),还有一只名字叫Mrs. Paws的猫(用铁爪管理着他们的家)居住在美国西雅图。
 
 
Joe Beda
 
Joe Beda的职业生涯始于微软,从事Internet Explorer方面的工作(那时,他很年轻,也很天真)。在微软工作了7年后,Joe加入谷歌公司,并为其效力10年之久,从事过GUI框架、实时语音与聊天、电话通信、广告机器学习和云计算等方面的工作。
最值得注意的是,在谷歌工作期间,Joe发起了Google Compute Engine 项目,并与Brendan和Craig McLuckie一起创建了Kubernetes。目前,Joe担任Heptio公司的首席技术官,其中Heptio是他与Craig一起创建的一家创业公司。Joe目前居住在西雅图,并因此引以为豪。
 
 
Kelsey Hightower
 
Kelsey Hightower在自己的科技职业生涯中乐于从事各种不同的角色,并且尤其喜欢担任使软件顺利落地的领导角色。Kelsey是一位强大的开源倡导者,专注于构建简单的工具,以提高开发人员的工作效率。如果他不在编写Go代码,就是在参加各种技术研讨会,探讨范围从编程到系统管理,无所不包。
 
 
购买选项
定价:78.00元
书号:978-7-5198-5676-2
出版社:中国电力出版社