基本信息
- 作者: [美]乔希·罗索(Josh Rosso) [美]里奇·兰德(Rich Lander) [美]亚历山大·布兰德(Alexander Brand) [美]约翰·哈里斯(John Harris)
- 译者: 赵强 王浩然 孟博
- 丛书名: O’Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:9787111705529
- 上架时间:2022-6-7
- 出版日期:2022 年5月
- 开本:16开
- 页码:403
- 版次:1-1
- 所属分类:计算机 > 电子商务与计算机文化 > 综合

内容简介
目录
前言3
第1章 生产环境构建之路9
1.1 Kubernetes 的定位9
1.2 定义应用平台14
1.3 基于Kubernetes构建应用平台18
1.4 总结25
第2章 部署模型26
2.1 托管服务对比自建服务26
2.2 自动化28
2.3 架构和拓扑结构30
2.4 基础设施36
2.5 机器安装45
2.6 容器化组件48
2.7 附加组件48
2.8 升级50
2.9 触发机制57
2.10 总结57
第3章 容器运行时58
3.1 容器的出现58
前言
如果你想使用Kubernetes来构建一个生产级的应用平台,你应该阅读这本书。如果你正在寻找一本帮助你开始学习使用Kubernetes的书,或者一本关于Kubernetes如何工作的书,抱歉,本书并不适合你。在其他的书籍、官方文档、无数的博客文章和源代码中,都有大量关于这些主题的信息。另外,我们建议在阅读本书的同时,对我们讨论的解决方案进行研究和测试,所以我们很少深入介绍“一步步”教程式的例子。我们尽量涵盖必要的理论,并将大部分的实现工作留给读者去做。
纵观本书,你会发现选项、工具、模式和实践等形式的指导。重要的是,在阅读这些指导时,首先要了解作者对这种应用平台构建方法的看法。我们的工程师和架构师受雇于许多《财富》500强公司,帮助构建应用平台。早在2015年发布Kubernetes 1.0时,我们就开始使用Kubernetes来作为构建应用平台的基础。我们尽可能地把重点放在模式和理念而不是工具上,因为新的工具出现的速度比我们编写工具的速度还要快。然而,我们不可避免地要用当前最合适的工具来实现这些模式。
我们已经在指导团队完成云原生的旅程上取得了重大的成功,并彻底改变了它们构建和交付软件的方式。尽管如此,我们也有失败的时候,一个常见原因是企业对Kubernetes可以解决的问题有误解。这就是为什么我们在早期就深入研究这个概念。在这段时间里,我们发现有些领域对客户来说是特别有趣的。了解这些可以帮助客户在生产道路上走得更远,甚至帮助他们重新定义如何构建生产环境。这些对话变得如此普遍,以至于我们决定也许是时候写一本书了!
虽然我们一次又一次地与企业一起构建生产环境,但它们之间只有一点是相同的,那就是无论我们多么希望所有企业的构建过程都是一样的,但结果却总是不尽如人意,总会出现各种各样的问题。考虑到这一点,如果你开始阅读这本书的时候期望得到一些例如“构建生产环境的5步计划”或者“每个Kubernetes用户应该知道的10件事” 等结论的话,你将会感到沮丧,因为我们只会在本书中谈论一些决策和我们经历过的陷阱,并在适当的时候举出一些具体的例子和逸事。虽然最佳实践是存在的,但必须始终从实用主义的角度来看待。对于在构建生产环境时遇到的许多问题,我们虽然没有一个放之四海而皆准的方法,但本书的案例可以给予你很多启示。
也就是说,我们非常鼓励你去挑战这本书! 当与客户一起工作时,我们总是鼓励他们挑战和改进我们的方法。因为知识是流动的,所以我们总是根据新的特点、信息和限制条件来更新我们的方法。随着云原生空间的不断发展,你决定采取的道路肯定会与我们推荐的不同。我们在这里告诉你我们曾经走过的路,这样你就可以用我们的观点来衡量你自己的观点。
排版约定
斜体(Italic)
表示新术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于展示程序列表,以及在段落中指代程序元素,如变量或函数名称、数据库、数据类型、环境变量、语句和关键字。
等宽粗体(Constant width bold)
用于展示命令或其他应该由用户直接输入的文本。
等宽斜体(Constant width italic)
用于展示应该由用户提供的值或由上下文确定的值替换的文本。
Kubernetes项目中的一些组件或概念名都是首字母大写的,如Pod、Service和StatefulSet。
表示提示或建议。
表示一般性说明。
表示警告或需要谨慎对待的内容。
示例代码
序言
我很荣幸能与本书的作者一起工作,我们共同创立创业公司(Heptio)的使命便是将 Kubernetes 带到一些典型的企业。Heptio的成功在很大程度上归功于我的同事们。我很感谢他们中的每一个人。他们努力与Kubernetes的用户建立直接联系,去解决用户所面临的现实问题。这本书总结了他们的实践经验,为想在生产环境中使用Kubernetes的团队提供所需的工具。
回想过去,我的整个职业生涯都在构建团队应用和开发人员协作系统,从微软的IE浏览器开始,到Windows Presentation Foundation,再到Google Compute Engine和Kubernetes的云服务。我一次又一次地看到那些构建平台的人受到我所说的“平台构建者诅咒”的困扰。该“诅咒”可以解释为:构建平台的人经常专注于在较长的时间跨度内构建一个能持续几十年的基础服务,但是这种专注却忽略了用户现在所遇到的问题。
打破“平台构建者诅咒”的唯一方法是积极地从我们这个构建者圈子之外去寻求信息,这就是Heptio现场工程团队(以及后来的VMware Kubernetes架构团队(KAT))所做的事情。除了帮助各行各业的客户成功使用Kubernetes之外,该团队还承担“将平台理论应用到现实中”的责任。
围绕Kubernetes和云原生计算基金会(CNCF)所建立的庞大生态系统只会使这个“诅咒”所描述的问题更加严重。这个生态系统既包括属于CNCF的项目,也包括一些其他的大型项目,我把这个系统描述为 “美好的混乱”( beautiful chaos )。它就像是一个热带雨林,有不同程度的重复或完整的东西。此外,探索这个生态系统也像探索热带雨林一样,需要花费大量时间,并且伴随着风险。一些进入Kubernetes世界的新用户通常没有时间或能力成为这个大生态系统的专家。
本书描绘了该生态系统的各个部分,说明了一些工具和插件适合在何时使用,并演示了如何针对读者面临的问题选择合适的工具。这些建议不仅仅是告诉读者要使用某个特定的工具,更是一个大型知识框架,用于帮助读者理解一类工具如何解决问题,分析当前系统是否有问题,并熟悉不同解决方法的优势和劣势,进而提供实用的建议。对于那些希望将Kubernetes带入生产环境的团队来说,这些知识就像金子一样重要。
最后,我想向Josh、Rich、Alexander和John表示衷心的感谢。他们的实践经验让许多用户获得了成功,并且让我们对该项目有了更多的了解。现在,通过这本书,我们将为更多的用户提供重要的建议。
Joe Beda
VMware Tanzu首席工程师
Kubernetes的创造者之一
2021年1月于西雅图
媒体评论
Kubernetes的卓越之处在于从可插拔运行时到存储集成的可配置性和可扩展性。本书探讨了利用Kubernetes构建生产级应用平台所涉及的多种技术、模式和抽象以及各方面的考虑与权衡,对于平台工程师、软件开发人员、信息安全人员、网络工程师和存储工程师来说是不可多得的参考资料。
通过阅读本书,你将:
? 了解如何构建鲁棒的Kubernetes平台。
? 从实践经验中学习,避免在构建Kubernetes平台时掉入陷阱。
? 了解Kubernetes的架构和设计如何支持可扩展的平台开发。
? 分析内部和外部用户的需求,以开发满足需求的平台。
? 通过对工具和抽象做出合理的决策来控制Kubernetes平台的复杂性。
? 检查构建Kubernetes生产环境的路径,并了解常见的工具和各种权衡。
“本书提供了许多好的建议。真希望我在第一次设计集群时就能拥有这本书。”
——Michael Goodness
MLB首席DevOps工程师
“如果你的任务是重新构建平台或评估基础设施团队采用 Kubernetes 所涉及的工作,强烈建议阅读这本书。”
——Duffie Cooley
云原生计算基金会(CNCF)大使
Josh Rosso是一名工程师,曾任职于CoreOS(Red Hat)、Heptio和 VMware,致力于Kubernetes的应用。
Rich Lander是VMware现场工程师,致力于帮助企业采用Kubernetes和云原生技术。
Alexander Brand是一名专注于Kubernetes和云原生技术的软件工程师。
John Harris是一名资深工程师,曾在VMware(Heptio)和Docker从事云原生工具、平台和模式方面的工作。