Kubernetes API Server源码分析与扩展开发(微课视频版)
"配套12章教学课件,418分钟视频讲解 从基本概念到代码全面剖析APIServer的设计与实现 详细讲解扩展开发,通过优秀项目体会Go语言简介之美,领略开源之魅力 "。 提供课件,咨询QQ:2301891038(仅限教师)。

作者:张海龙

丛书名:计算机技术开发与应用丛书

定价:89元

印次:1-1

ISBN:9787302670155

出版日期:2024.08.01

印刷日期:2024.08.09

图书责编:赵佳霓

图书分类:零售

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

"本书第一主题为解析 Kubernetes API Server 源代码;第二主题是结合源码知识进行扩展开发。全书分为3篇12章。 第一篇为基础篇(第1章和第2章)。第1章简介Kubernetes及其组件,并迅速切入API Server,统一全书使用的概念名词,介绍其主要设计模式。第2章介绍Kubernetes项目组织和社区治理。组织结构对系统的设计有着直接影响,这部分帮助读者理解代码背后的人和组。在第2章读者也会看到如何参与Kubernetes项目,特别是贡献代码的过程。 第二篇为源码篇(第3~8章)是本书的核心篇章。第3章宏观展示API Server源代码的组织,总体架构设计等,其中关于启动流程的源码部分与本篇后续章节衔接紧密;第4章聚焦整个系统核心对象——Kubernetes API,本章将API分为几大类并讲解为API进行的代码生成;第5章到第8章分别解析API Server 的各个子 Server 源码,它们是GenericServer、主Server、扩展Server、聚合器与聚合Server。 第三篇为实战篇(第9~12章)讲解三种主流API Server扩展方式。作为辅助理解源码的手段之一,第9章不借助脚手架开发一个聚合Server;第10章为后两章基础,聚焦API Server Builder和Kubebuilder两款官方开发脚手架;第11章用 API Server Builder重写第9章的聚合Server;第12章用Kubebuilder开发一个操作器(Operator)。 本书适合Kubernetes系统运维人员、扩展开发人员、使用Go的开发者及希望提升设计水平的软件从业人员阅读,需具备Go语言和Kubernetes基础知识。 "

张海龙,复旦大学软件工程硕士、数学学士。从事企业管理软件开发16年,专注于软件生命周期管理领域。参与、管理大型云原生软件开发项目多年,具有丰富的大型单体软件微服务化经验。现任外企软件开发团队经理,拥有十多年团队管理经验。

前言 为什么写作本书 时间回到2022年,那一年年底中国再为世界奉上一部基建杰作: 白鹤滩水电站全部机组投产发电,这一当时世界技术难度最高的水电工程被中国人成功完成。港珠澳大桥、南水北调、中国高铁、空间站建设、探月工程等重大工程一次次证明中国工程师的勤劳与智慧。同样是在2022年年底,美国硅谷一家几百人的公司OpenAI以其AI产品ChatGPT震惊科技界,在AI领域领先了包括国内科技大厂在内的全球IT巨头们至少一代。如果说我国在基建领域独步全球,则在科技领域与国际顶尖水平还有一定的距离。 需要追赶的又何止AI一个领域。单就软件工程范畴而言,主流操作系统、主流商用数据库、电子设计自动化软件(EDA)、软件开发语言、主流开发IDE,甚至软件开发思想鲜有源自我国的。作为汇集超过700万聪明头脑的庞大群体,国内软件工作者不能再满足于达到会用、能用好这一层次,应更进一步地深入优秀软件的核心,探寻其设计的成功之源,从中汲取思想精华以期厚积薄发。在这方面,Kubernetes这类成功开源项目为我们提供了丰富的养料。这便是笔者2023年来做视频、写书籍分享优秀开源项目源码设计的原动力。道阻且长,行则将至。随着越来越多中国软件工程师的觉醒,相信国内软件工程师终将看齐基建同仁,为世界贡献具有创新性的顶级软件作品! 毫无疑问,云平台已成为政企应用的主流支撑平台,云原生作为可最大化云平台资源利用率的一套软件设计原则备受业界推崇。谈云原生就绕不开Kubernetes,它是云原生应用的底座: 容器技术的普及加速了单体应用的微服务化,微服务化是实现云原生诸多原则的前提条件,而微服务化必须解...

目录
荐语
查看详情 查看详情
目录

第一篇基础篇

第1章Kubernetes与API Server概要(30min)3

1.1Kubernetes组件3

1.1.1控制面上的组件3

1.1.2节点上的组件6

1.2Kubernetes API 基本概念8

1.2.1API和API对象8

1.2.2API种类9

1.2.3API组和版本10

1.2.4API资源10

1.3API Server11

1.3.1一个Web Server11

1.3.2服务于API13

1.3.3请求过滤链与准入控制16

1.4声明式API和控制器模式17

1.4.1声明式API17

1.4.2控制器和控制器模式20

1.5本章小结26

第2章Kubernetes项目(17min)27

2.1Kubernetes社区治理27

2.1.1特别兴趣组 29

2.1.2SIG内的子项目组30

2.1.3工作组30

2.2开发人员如何贡献代码31

2.2.1开发流程31

2.2.2代码提交与合并流程32

2.3源代码下载与编译33

2.3.1下载33

2.3.2本地编译与运行34

2.4本章小结35

第二篇源码篇

第3章API Server(46min)39

3.1Kubernetes工程结构39

3.1.1顶层目录39

3.1.2staging目录40

3.1.3pkg目录43

3.2Cobra44

3.2.1命令的格式规范45

3.2.2用Cobra写命令行应用46

3.3整体结构49

3.3.1子Server49

3.3.2再谈聚合器51

... 查看详情

"全面、翔实、有条理:本书涵盖了APIServer全部核心功能的源码实现,同时还包括社区治理、核心功能介绍、工具框架与概念介绍等非源码知识,为理解源码提供充足背景知识,降低理解门槛。不同于其他同类书籍,本书代码讲解粒度较细,各模块关联性体现得更为充分,条理性更强,从而降低阅读门槛。本书着力成为一本易读易懂的Kubernetes源码介绍书籍。
紧密结合实践:软件工程技能的提升离不开实践。本书第三篇专注APIServer的扩展开发,夯实第一篇和第二篇所讲源码知识。所选开发案例具有代表性,并针对同一场景应用不同扩展技术,在对比中体现各自的所长。
源码版本高  Kubernetes版本迭代迅速,本书针对写作时的**版本v1.27编写。相较前序版本,该版本的APIServer部分源码存在较大变化,本书内容考虑了这些变化。
始于源码但不止于源码:Kubernetes项目贡献者以十万计,是史上***的开源项目之一。本书介绍了该社区的治理模式和代码贡献流程,对开源感兴趣的读者必有所悟。同时,Go语言已成为开发者不容忽视的主流开发语言,APIServer使用Go语言开发,其诸多实现细节均流露出这门语言的优雅,这在书中得以体现。
配套资源完善  随书附带开发示例工程源码及微课视频,协助读者更好地理解本书的内容。
"

查看详情