《Programming Kubernetes》是由 Michael Hausenblas 和 Stefan Schimanski 共同撰写的一本专注于 Kubernetes 编程的权威指南,于 2019 年由 O’Reilly Media 出版。本书填补了 Kubernetes 生态系统中关于编写 Kubernetes 原生应用程序的空白,旨在帮助开发者、AppOps 人员以及 namespace 管理员深入理解如何在 Kubernetes 上构建和扩展云原生应用。
作者简介
- Michael Hausenblas:AWS 的开发倡导者,专注于容器安全领域。他通过博客、演讲和开源贡献分享云原生技术的经验。
- Stefan Schimanski:Red Hat 的首席软件工程师,专注于 Kubernetes API Server 的开发,尤其是 CustomResourceDefinitions 和 API Machinery 的实现。
书籍背景
随着 Kubernetes 成为容器编排的事实标准,越来越多的开发者开始探索如何利用 Kubernetes 的强大功能来构建和管理复杂的应用程序。然而,尽管市面上已有大量关于如何运行 Kubernetes 集群的资料,但关于如何编写与 Kubernetes API 交互的原生应用的资源却相对匮乏。本书正是为满足这一需求而诞生,它不仅提供了关于 Kubernetes 编程接口和系统行为的深入剖析,还通过丰富的案例和实践指导,帮助读者掌握如何开发 Kubernetes 原生应用。
内容概览
本书内容丰富,涵盖了从 Kubernetes API 基础到高级扩展模式的多个方面。全书共分为九章,每章都围绕一个核心主题展开,逐步引导读者深入了解 Kubernetes 编程的各个方面。
- 第一章 引言部分定义了“编程 Kubernetes”这一概念,并介绍了 Kubernetes 原生应用的特性。通过具体的例子,展示了如何利用 Kubernetes API 和控制器来实现复杂的功能。
- 第二章 深入探讨了 Kubernetes API 的基本概念,包括 API Server 的工作原理、资源与种类的定义、以及 API 版本化策略。
- 第三章 详细介绍了 client-go 的使用,这是与 Kubernetes API 交互的 Go 语言客户端库。通过 client-go,开发者可以方便地访问和操作 Kubernetes 集群中的资源。
- 第四章 聚焦于自定义资源(Custom Resources, CR)的使用。CR 是 Kubernetes 的一种扩展机制,允许开发者定义自己的资源类型,并通过 CRD(Custom Resource Definition)将其注册到 Kubernetes 集群中。
- 第五章 讨论了如何通过代码生成工具自动化 Kubernetes 资源的开发。这些工具能够根据定义的资源类型自动生成所需的代码,从而提高开发效率。
- 第六章 提供了编写控制器和操作符(Operators)的解决方案。操作符是一种特殊的控制器,它封装了应用程序的运维知识,使得复杂应用的生命周期管理变得更加简单。
- 第七章 讨论了如何将控制器和操作符打包、部署以及进行生命周期管理。介绍了 Helm 和 Kustomize 等工具的使用,帮助读者更好地管理 Kubernetes 应用的部署过程。
- 第八章 深入探讨了自定义 API 服务器的开发。自定义 API 服务器可以扩展 Kubernetes 的 API 功能,提供更灵活的资源管理方式。
- 第九章 探讨了自定义资源的高级特性,包括版本化、转换以及准入控制器的使用。这些特性使得自定义资源能够更好地融入 Kubernetes 的生态系统。
适用读者
本书适合以下几类读者:
- 开发者:希望深入了解 Kubernetes 编程接口,开发 Kubernetes 原生应用的开发者。
- 系统管理员:需要扩展 Kubernetes 功能,管理复杂应用生命周期的系统管理员。
- 架构师:希望利用 Kubernetes 构建可扩展、可维护的云原生架构的架构师。
《Programming Kubernetes》是一本兼具理论深度和实践指导的书籍,无论是对于 Kubernetes 的初学者还是资深开发者,都能从中获得宝贵的见解和实用的技术指导。