Kubernetes API Server源碼分析與擴展開發(微課視頻版)
張海龍
- 出版商: 清華大學
- 出版日期: 2024-08-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- ISBN: 7302670153
- ISBN-13: 9787302670155
-
相關分類:
Kubernetes
下單後立即進貨 (約4週~6週)
相關主題
商品描述
目錄大綱
目錄
第一篇基礎篇
第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