由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版图书 Kubernetes API Server源码分析与扩展开发(微课视频版) 张海龙 清华大学出版社 Kuber
¥ ×1
书名: | Kubernetes API Server源码分析与扩展开发(微课视频版) |
出版社: | 清华大学出版社 |
出版日期 | 2024 |
ISBN号: | 9787302670155 |
本书第一主题为解析 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年,专注于软件生命周期管理领域。参与、管理大型云原生软件开发项目多年,具有丰富的大型单体软件微服务化经验。现任外企软件开发团队经理,拥有十多年团队管理经验。 |
|
全面、翔实、有条理:本书涵盖了APIServer全部核心功能的源码实现,同时还包括社区治理、核心功能介绍、工具框架与概念介绍等非源码知识,为理解源码提供充足背景知识,降低理解门槛。不同于其他同类书籍,本书代码讲解粒度较细,各模块关联性体现得更为充分,条理性更强,从而降低阅读门槛。本书着力成为一本易读易懂的Kubernetes源码介绍书籍。 紧密结合实践:软件工程技能的提升离不开实践。本书第三篇专注APIServer的扩展开发,夯实第一篇和第二篇所讲源码知识。所选开发案例具有代表性,并针对同一场景应用不同扩展技术,在对比中体现各自的所长。 源码版本高 Kubernetes版本迭代迅速,本书针对写作时的最高版本v1.27编写。相较前序版本,该版本的APIServer部分源码存在较大变化,本书内容考虑了这些变化。 始于源码但不止于源码:Kubernetes项目贡献者以十万计,是史上最优秀的开源项目之一。本书介绍了该社区的治理模式和代码贡献流程,对开源感兴趣的读者必有所悟。同时,Go语言已成为开发者不容忽视的主流开发语言,APIServer使用Go语言开发,其诸多实现细节均流露出这门语言的优雅,这在书中得以体现。 配套资源完善 随书附带开发示例工程源码及微课视频,协助读者更好地理解本书的内容。 |
|
目录 第一篇基础篇 第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 3.4API Server的创建与启动51 3.4.1创建Cobra命令52 3.4.2命令的核心逻辑54 3.4.3CreateServerChain()函数56 3.4.4总结与展望58 3.5本章小结59 第4章Kubernetes API(44min)60 4.1Kubernetes API源代码61 4.1.1内部版本和外部版本62 4.1.2API的属性64 4.1.3API的方法与函数68 4.1.4API定义与实现的约定73 4.2内置API75 4.3核心API77 4.4代码生成80 4.4.1代码生成工作原理80 4.4.2代码生成举例91 4.4.3触发代码生成93 4.5本章小结95 第5章Generic Server(83min)96 5.1Go语言实现Web Server96 5.2gorestful 99 5.2.1gorestful简介99 5.2.2gorestful中的核心概念100 5.2.3使用gorestful102 5.3OpenAPI102 5.3.1什么是OpenAPI102 5.3.2Kubernetes使用OpenAPI规格说明103 5.3.3生成API OpenAPI规格说明105 5.3.4Generic Server与OpenAPI108 5.4Scheme机制110 5.4.1注册表的内容111 5.4.2注册表的构建112 5.5Generic Server的构建119 5.5.1准备Server运行配置119 5.5.2创建Server实例120 5.5.3构建请求处理链121 5.5.4添加启动和关闭钩子函数128 5.6Generic Server的启动129 5.6.1启动准备129 5.6.2启动130 5.7API 的注入与请求响应138 5.7.1注入处理流程139 5.7.2WebService及其Route生成过程142 5.7.3响应对Kubernetes API的HTTP请求146 5.8准入控制机制153 5.8.1什么是准入控制153 5.8.2准入控制器155 5.8.3动态准入控制159 5.9一个HTTP请求的处理过程163 5.10本章小结165 第6章主Server(54min)166 6.1主Server的实现166 6.1.1填充注册表167 6.1.2准备Server运行配置168 6.1.3创建主Server171 6.2主Server的几个控制器174 6.2.1ReplicaSet 控制器175 6.2.2Deployment 控制器177 6.2.3StatefulSet 控制器180 6.2.4Service Account 控制器182 6.3主Server的准入控制186 6.3.1运行选项和命令行参数186 6.3.2从运行选项到运行配置188 6.3.3从运行配置到Generic Server190 6.4API Server的登录验证机制191 6.4.1API Server登录验证基础192 6.4.2API Server的登录验证策略195 6.4.3API Server中构建登录认证机制199 6.5本章小结204 第7章扩展Server(34min)205 7.1CustomResourceDefinition介绍205 7.1.1CRD的属性206 7.1.2客制化API属性的定义与校验209 7.1.3启用Status和Scale子资源212 7.1.4版本转换的Webhook213 7.2扩展Server的实现215 7.2.1独立模块215 7.2.2准备Server运行配置216 7.2.3创建扩展Server217 7.2.4启动扩展Server226 7.3扩展Server中控制器的实现228 7.3.1发现控制器228 7.3.2名称控制器231 7.3.3非结构化规格控制器232 7.3.4API审批控制器234 7.3.5CRD 清理控制器235 7.4本章小结236 第8章聚合器和聚合Server(32min)237 8.1聚合器与聚合Server介绍237 8.1.1背景与目的237 8.1.2再谈API Server结构238 8.2聚合器的实现240 8.2.1APIService简介241 8.2.2准备Server运行配置 243 8.2.3创建聚合器243 8.2.4启动聚合器247 8.2.5聚合器代理转发HTTP请求256 8.3聚合器中控制器的实现258 8.3.1自动注册控制器与CRD注册控制器258 8.3.2APIService注册控制器260 8.3.3APIService状态监测控制器264 8.4聚合Server266 8.4.1最灵活的扩展方式267 8.4.2聚合Server的结构269 8.4.3委派登录认证270 8.4.4委派权限认证273 8.5本章小结277 第三篇实战篇 第9章开发聚合Server(32min) 281 9.1目标281 9.2聚合Server的开发282 9.2.1创建工程283 9.2.2设计API284 9.2.3生成代码287 9.2.4填充注册表291 9.2.5资源存取293 9.2.6编写准入控制299 9.2.7添加Web Server301 9.2.8部署与测试307 9.3相关控制器的开发317 9.3.1设计318 9.3.2实现318 9.3.3如何启动322 9.3.4测试324 9.4本章小结325 第10章API Server Builder与Kubebuilder(14min)326 10.1controllerruntime 326 10.1.1核心概念326 10.1.2工作机制328 10.2API Server Builder329 10.2.1概览330 10.2.2Builder用法331 10.3Kubebuilder334 10.3.1概览334 10.3.2功能335 10.3.3开发步骤335 10.4本章小结339 第11章API Server Builder开发聚合Server(17min)340 11.1目标340 11.2聚合Server的开发341 11.2.1工程初始化341 11.2.2创建v1alpha1版API并实现342 11.2.3添加v1版本API并实现346 11.3相关控制器的开发349 11.4部署与测试350 11.4.1准备工作350 11.4.2制作镜像351 11.4.3向集群提交353 11.4.4测试353 11.5本章小结356 第12章Kubebuilder开发Operator(15min)357 12.1目标357 12.2定义CRD357 12.2.1项目初始化357 12.2.2添加客制化API358 12.3相关控制器的开发360 12.3.1实现控制器360 12.3.2本地测试控制器361 12.4准入控制Webhook的开发362 12.4.1引入准入控制Webhook362 12.4.2实现控制逻辑363 12.5部署至集群并测试364 12.5.1制作镜像364 12.5.2部署certmanager365 12.5.3部署并测试366 12.6本章小结367 |
|
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格