注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Kubernetes API Server源碼分析與擴展開發(fā)(微課視頻版)

Kubernetes API Server源碼分析與擴展開發(fā)(微課視頻版)

Kubernetes API Server源碼分析與擴展開發(fā)(微課視頻版)

定 價:¥89.00

作 者: 張海龍
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302670155 出版時間: 2024-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書第一主題為解析 Kubernetes API Server 源代碼;第二主題是結(jié)合源碼知識進行擴展開發(fā)。全書分為3篇12章。第一篇為基礎(chǔ)篇(第1章和第2章)。第1章簡介Kubernetes及其組件,并迅速切入API Server,統(tǒng)一全書使用的概念名詞,介紹其主要設(shè)計模式。第2章介紹Kubernetes項目組織和社區(qū)治理。組織結(jié)構(gòu)對系統(tǒng)的設(shè)計有著直接影響,這部分幫助讀者理解代碼背后的人和組。在第2章讀者也會看到如何參與Kubernetes項目,特別是貢獻代碼的過程。第二篇為源碼篇(第3~8章)是本書的核心篇章。第3章宏觀展示API Server源代碼的組織,總體架構(gòu)設(shè)計等,其中關(guān)于啟動流程的源碼部分與本篇后續(xù)章節(jié)銜接緊密;第4章聚焦整個系統(tǒng)核心對象——Kubernetes API,本章將API分為幾大類并講解為API進行的代碼生成;第5章到第8章分別解析API Server 的各個子 Server 源碼,它們是GenericServer、主Server、擴展Server、聚合器與聚合Server。第三篇為實戰(zhàn)篇(第9~12章)講解三種主流API Server擴展方式。作為輔助理解源碼的手段之一,第9章不借助腳手架開發(fā)一個聚合Server;第10章為后兩章基礎(chǔ),聚焦API Server Builder和Kubebuilder兩款官方開發(fā)腳手架;第11章用 API Server Builder重寫第9章的聚合Server;第12章用Kubebuilder開發(fā)一個操作器(Operator)。本書適合Kubernetes系統(tǒng)運維人員、擴展開發(fā)人員、使用Go的開發(fā)者及希望提升設(shè)計水平的軟件從業(yè)人員閱讀,需具備Go語言和Kubernetes基礎(chǔ)知識。

作者簡介

  張海龍,復(fù)旦大學(xué)軟件工程碩士、數(shù)學(xué)學(xué)士。從事企業(yè)管理軟件開發(fā)16年,專注于軟件生命周期管理領(lǐng)域。參與、管理大型云原生軟件開發(fā)項目多年,具有豐富的大型單體軟件微服務(wù)化經(jīng)驗?,F(xiàn)任外企軟件開發(fā)團隊經(jīng)理,擁有十多年團隊管理經(jīng)驗。

圖書目錄

第一篇基礎(chǔ)篇
第1章Kubernetes與API Server概要(30min)3
1.1Kubernetes組件3
1.1.1控制面上的組件3
1.1.2節(jié)點上的組件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服務(wù)于API13
1.3.3請求過濾鏈與準(zhǔn)入控制16
1.4聲明式API和控制器模式17
1.4.1聲明式API17
1.4.2控制器和控制器模式20
1.5本章小結(jié)26
第2章Kubernetes項目(17min)27
2.1Kubernetes社區(qū)治理27
2.1.1特別興趣組 29
2.1.2SIG內(nèi)的子項目組30
2.1.3工作組30
2.2開發(fā)人員如何貢獻代碼31
2.2.1開發(fā)流程31
2.2.2代碼提交與合并流程32
2.3源代碼下載與編譯33
2.3.1下載33
2.3.2本地編譯與運行34
2.4本章小結(jié)35
第二篇源碼篇
第3章API Server(46min)39
3.1Kubernetes工程結(jié)構(gòu)39
3.1.1頂層目錄39
3.1.2staging目錄40
3.1.3pkg目錄43
3.2Cobra44
3.2.1命令的格式規(guī)范45
3.2.2用Cobra寫命令行應(yīng)用46
3.3整體結(jié)構(gòu)49
3.3.1子Server49
3.3.2再談聚合器51
3.4API Server的創(chuàng)建與啟動51
3.4.1創(chuàng)建Cobra命令52
3.4.2命令的核心邏輯54
3.4.3CreateServerChain()函數(shù)56
3.4.4總結(jié)與展望58
3.5本章小結(jié)59
第4章Kubernetes API(44min)60
4.1Kubernetes API源代碼61
4.1.1內(nèi)部版本和外部版本62
4.1.2API的屬性64
4.1.3API的方法與函數(shù)68
4.1.4API定義與實現(xiàn)的約定73
4.2內(nèi)置API75
4.3核心API77
4.4代碼生成80
4.4.1代碼生成工作原理80
4.4.2代碼生成舉例91
4.4.3觸發(fā)代碼生成93
4.5本章小結(jié)95
第5章Generic Server(83min)96
5.1Go語言實現(xiàn)Web Server96
5.2gorestful 99
5.2.1gorestful簡介99
5.2.2gorestful中的核心概念100
5.2.3使用gorestful102
5.3OpenAPI102
5.3.1什么是OpenAPI102
5.3.2Kubernetes使用OpenAPI規(guī)格說明103
5.3.3生成API OpenAPI規(guī)格說明105
5.3.4Generic Server與OpenAPI108
5.4Scheme機制110
5.4.1注冊表的內(nèi)容111
5.4.2注冊表的構(gòu)建112
5.5Generic Server的構(gòu)建119
5.5.1準(zhǔn)備Server運行配置119
5.5.2創(chuàng)建Server實例120
5.5.3構(gòu)建請求處理鏈121
5.5.4添加啟動和關(guān)閉鉤子函數(shù)128
5.6Generic Server的啟動129
5.6.1啟動準(zhǔn)備129
5.6.2啟動130
5.7API 的注入與請求響應(yīng)138
5.7.1注入處理流程139
5.7.2WebService及其Route生成過程142
5.7.3響應(yīng)對Kubernetes API的HTTP請求146
5.8準(zhǔn)入控制機制153
5.8.1什么是準(zhǔn)入控制153
5.8.2準(zhǔn)入控制器155
5.8.3動態(tài)準(zhǔn)入控制159
5.9一個HTTP請求的處理過程163
5.10本章小結(jié)165
第6章主Server(54min)166
6.1主Server的實現(xiàn)166
6.1.1填充注冊表167
6.1.2準(zhǔn)備Server運行配置168
6.1.3創(chuàng)建主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的準(zhǔn)入控制186
6.3.1運行選項和命令行參數(shù)186
6.3.2從運行選項到運行配置188
6.3.3從運行配置到Generic Server190
6.4API Server的登錄驗證機制191
6.4.1API Server登錄驗證基礎(chǔ)192
6.4.2API Server的登錄驗證策略195
6.4.3API Server中構(gòu)建登錄認證機制199
6.5本章小結(jié)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版本轉(zhuǎn)換的Webhook213
7.2擴展Server的實現(xiàn)215
7.2.1獨立模塊215
7.2.2準(zhǔn)備Server運行配置216
7.2.3創(chuàng)建擴展Server217
7.2.4啟動擴展Server226
7.3擴展Server中控制器的實現(xiàn)228
7.3.1發(fā)現(xiàn)控制器228
7.3.2名稱控制器231
7.3.3非結(jié)構(gòu)化規(guī)格控制器232
7.3.4API審批控制器234
7.3.5CRD 清理控制器235
7.4本章小結(jié)236
第8章聚合器和聚合Server(32min)237
8.1聚合器與聚合Server介紹237
8.1.1背景與目的237
8.1.2再談API Server結(jié)構(gòu)238
8.2聚合器的實現(xiàn)240
8.2.1APIService簡介241
8.2.2準(zhǔn)備Server運行配置 243
8.2.3創(chuàng)建聚合器243
8.2.4啟動聚合器247
8.2.5聚合器代理轉(zhuǎn)發(fā)HTTP請求256
8.3聚合器中控制器的實現(xiàn)258
8.3.1自動注冊控制器與CRD注冊控制器258
8.3.2APIService注冊控制器260
8.3.3APIService狀態(tài)監(jiān)測控制器264
8.4聚合Server266
8.4.1最靈活的擴展方式267
8.4.2聚合Server的結(jié)構(gòu)269
8.4.3委派登錄認證270
8.4.4委派權(quán)限認證273
8.5本章小結(jié)277
第三篇實戰(zhàn)篇
第9章開發(fā)聚合Server(32min) 281
9.1目標(biāo)281
9.2聚合Server的開發(fā)282
9.2.1創(chuàng)建工程283
9.2.2設(shè)計API284
9.2.3生成代碼287
9.2.4填充注冊表291
9.2.5資源存取293
9.2.6編寫準(zhǔn)入控制299
9.2.7添加Web Server301
9.2.8部署與測試307
9.3相關(guān)控制器的開發(fā)317
9.3.1設(shè)計318
9.3.2實現(xiàn)318
9.3.3如何啟動322
9.3.4測試324
9.4本章小結(jié)325
第10章API Server Builder與Kubebuilder(14min)326
10.1controllerruntime 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開發(fā)步驟335
10.4本章小結(jié)339
第11章API Server Builder開發(fā)聚合Server(17min)340
11.1目標(biāo)340
11.2聚合Server的開發(fā)341
11.2.1工程初始化341
11.2.2創(chuàng)建v1alpha1版API并實現(xiàn)342
11.2.3添加v1版本API并實現(xiàn)346
11.3相關(guān)控制器的開發(fā)349
11.4部署與測試350
11.4.1準(zhǔn)備工作350
11.4.2制作鏡像351
11.4.3向集群提交353
11.4.4測試353
11.5本章小結(jié)356
第12章Kubebuilder開發(fā)Operator(15min)357
12.1目標(biāo)357
12.2定義CRD357
12.2.1項目初始化357
12.2.2添加客制化API358
12.3相關(guān)控制器的開發(fā)360
12.3.1實現(xiàn)控制器360
12.3.2本地測試控制器361
12.4準(zhǔn)入控制Webhook的開發(fā)362
12.4.1引入準(zhǔn)入控制Webhook362
12.4.2實現(xiàn)控制邏輯363
12.5部署至集群并測試364
12.5.1制作鏡像364
12.5.2部署certmanager365
12.5.3部署并測試366
12.6本章小結(jié)367

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號