书籍作者:乔希·罗索(Josh Rosso)[美]里奇·兰德(Rich Lander)[美]亚历山大·布 | ISBN:9787111705529 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7306 |
创建日期:2023-04-27 | 发布日期:2023-04-27 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书探讨了通往Kubernetes生产环境成功道路中所涉及的多种技术、模式和抽象方面的考虑与权衡。主要内容包括基于Kubernetes构建应用平台、部署模型、容器运行时、容器存储、Pod、服务路由、密码管理、准入控制、可观测性、身份认证、构建平台服务、多租户问题、工作负载的自动缩放、在Kubernetes上运行应用程序时应该考虑的各种注意事项、在Kubernetes上从开发人员获取代码到生产的实际过程以及平台抽象。
Josh Rosso has been working with organizations to adopt Kubernetes since version 1.2 (2016). During which he's worked as an engineer and architect at CoreOS (RedHat), Heptio, and now VMware. He's been involved in architecture and engineering to help build compute platforms in financial institutions, establish edge compute to support 5g, and much more. Environments have ranged from enterprise-managed bare metal, to cloud-provider managed virtual machines.
Rich Lander was an early adopter of Docker and began running production workloads using containers in 2015. He learned the value of container orchestration the hard way and was running production applications on Kubernetes by version 1.3. Rich took that experience and subsequently worked at CoreOS (RedHat), Heptio and VMware as a field engineer helping enterprises in manufacturing, retail and various other industries adopt Kubernetes and cloud native technologies.
Alex Brand started working with Kubernetes in 2016, when he helped build one of the first open source Kubernetes installers at Apprenda. Since then, Alex has worked at Heptio and VMware, designing and building Kubernetes-based platforms for organizations across multiple industry verticals, including finance, healthcare, consumer, and more. As a software engineer at heart, Alex has also contributed to Kubernetes and other open source projects in the Cloud Native ecosystem.
John Harris has been working with Docker since 2014, consulting with many of the top Fortune 50 companies to help them successfully adopt container technologies and patterns. He brings experience in cloud-native architecture, engineering and DevOps practises to help companies of all sizes build robust Kubernetes platforms and applications. Prior to working at VMware (via Heptio), he was an architect at Docker advising some of their most strategic customers.
Kubernetes是一项非常强大的技术,并且在飞速地推广和普及。它为我们创新地管理软件部署方式奠定了基础。当Kubernetes出现的时候,API驱动的软件和分布式系统尽管没有被广泛采用,但也已经很成熟了。对这些思想进行出色的诠释是Kubernetes成功的基础,另外它也提供了一些其他至关重要的东西。过去,只有拥有优秀工程团队的大型技术公司才有可能达到自主控制软件的理想状态。现在,由于Kubernetes项目的存在,每个组织都可以实现高度可用(highly available)、自我修复(self-healing)、自动缩放(autoscaling)的软件部署。在不远的未来,软件系统将能够接受来源广泛的(broad)、高层次(high-level)的指令,并且根据这些指令执行;通过“条件发现”寻找不断变化的问题并修复问题来实现预期的结果,而无须我们干预。此外,这些系统将比我们的人工操作更快、更可靠地完成任务。然而,这种能力是以一些额外的复杂性为代价的。我们希望分享我们的实践经验,从而帮助其他人解决这种复杂性,这就是我们决定写这本书的原因。
如果你想使用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。
表示提示或建议。
表示一般性说明。
表示警告或需要谨慎对待的内容。
示例代码
可以从https://github.com/production-kubernetes下载补充材料(示例代码、练习、勘误等)。
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O’Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布本书中的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
序言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
3.2 开放容器倡议59
3.3 容器运行时接口63
3.4 选择容器运行时65
3.5 总结71
第4章 容器存储72
4.1 存储注意事项72
4.2 Kubernetes 存储基元76
4.3 容器存储接口79
4.4 实现存储即服务81
4.5 总结89
第5章 Pod网络通信90
5.1 网络因素90
5.2 容器网络接口99
5.3 CNI插件103
5.4 总结111
第6章 服务路由112
6.1 Kubernetes Service113
6.2 Ingress134
6.3 服务网格148
6.4 总结162
第7章 秘密管理163
7.1 深度防御164
7.2 Kubernetes Secret API166
7.3 外部服务商177
7.4 声明式世界中的秘密184
7.5 秘密的最佳实践188
7.6 总结189
第8章 准入控制190
8.1 Kubernetes 的准入链191
8.2 树内准入控制器192
8.3 webhook193
8.4 如何编写变更webhook197
8.5 集中式策略系统203
8.6 总结208
第9章 可观测性209
9.1 日志记录机制209
9.2 指标216
9.3 分布式追踪231
9.4 总结233
第10章 身份认证235
10.1 用户身份236
10.2 应用程序/工作负载的身份247
10.3 总结267
第11章 构建平台服务268
11.1 扩展点269
11.2 operator 模式271
11.3 operator 用例276
11.4 开发operator278
11.5 扩展调度器297
11.6 总结300
第12章 多租户301
12.1 隔离的等级301
12.2 命名空间边界304
12.3 Kubernetes中的多租户305
12.4 总结320
第13章 自动缩放321
13.1 缩放类型322
13.2 应用程序架构323
13.3 工作负载自动缩放323
13.4 集群自动缩放331
13.5 总结336
第14章 应用程序注意事项337
14.1 将应用程序部署到 Kubernetes337
14.2 摄取配置和秘密339
14.3 处理重新安排事件342
14.4 状态探测器346
14.5 Pod 资源请求和限制350
14.6 应用程序日志351
14.7 公开指标352
14.8 为分布式追踪适配服务355
14.9 总结358
第15章 软件供应链359
15.1 构建容器镜像360
15.2 镜像注册表366
15.3 持续交付370
15.4 总结378
第16章 平台抽象379
16.1 平台曝光379
16.2 自助式上线服务380
16.3 抽象频谱382
16.4 总结391
单位统一采购包装不错书看起来不错
2022-08-19 14:17:02
东西很好,我很喜欢呀!
2022-08-09 09:19:13