Kubernetes源碼剖析

Kubernetes源碼剖析 pdf epub mobi txt 電子書 下載2025

出版者:電子工業齣版社
作者:鄭東旭
出品人:
頁數:376
译者:
出版時間:2020-6
價格:89
裝幀:
isbn號碼:9787121389146
叢書系列:
圖書標籤:
  • 計算機與信息
  • kubernetes
  • 程序設計
  • 工作學習
  • 雲原生
  • Kubernetes
  • Kubernetes
  • 容器化
  • 雲原生
  • 源碼分析
  • Go語言
  • 分布式係統
  • 架構設計
  • 運維
  • Docker
  • 技術深度
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

《Kubernetes源碼剖析 》主要分析瞭Kubernetes核心功能的實現原理,是一本幫助讀者瞭解Kubernetes架構設計及內部原理實現的書。由於Kubernetes代碼量較大,源碼不容易理解,所以本書將梳理相關知識點,幫助讀者快速學習。 本書共分為8章,第1章簡要介紹瞭Kubernetes架構的核心組件,以及每個核心組件在架構中的作用;第2章主要介紹瞭Kubernetes構建過程中的源碼實現;第3章主要介紹瞭Kubernetes的核心數據結構定義及圍繞資源展開的核心功能;第4章主要介紹瞭kubectl命令行交互工具的實現機製;第5章主要介紹瞭client-go編程式交互工具的實現機製;第6章主要介紹瞭Etcd存儲的核心實現;第7章主要介紹瞭kube-apiserver組件的核心實現;第8章主要介紹瞭kube-scheduler組件的核心實現。

著者簡介

鄭東旭(Derek Zheng),BFE(萬億流量轉發引擎,https://github.com/baiidu/bfe)開源項目的作者之一,擅長Linux下高性能服務器的開發,對雲計算、區塊鏈相關技術領域有深刻的理解。

圖書目錄

第1章 Kubernetes架構 1
1.1 Kubernetes的發展曆史 1
1.2 Kubernetes架構圖 2
1.3 Kubernetes各組件的功能 4
1.3.1 kubectl 5
1.3.2 client-go 5
1.3.3 kube-apiserver 5
1.3.4 kube-controller-manager 6
1.3.5 kube-scheduler 7
1.3.6 kubelet 7
1.3.7 kube-proxy 8
1.4 Kubernetes Project Layout設計 9
第2章 Kubernetes構建過程 13
2.1 構建方式 13
2.2 本地環境構建 15
2.2.1 一切都始於Makefile 16
2.2.2 本地構建過程 17
2.3 容器環境構建 18
2.4 Bazel環境構建 22
2.4.1 使用Bazel構建和測試Kubernetes源碼 23
2.4.2 Bazel的工作原理 25
2.5 代碼生成器 26
2.5.1 Tags 27
2.5.2 deepcopy-gen代碼生成器 29
2.5.3 defaulter-gen代碼生成器 30
2.5.4 conversion-gen代碼生成器 32
2.5.5 openapi-gen代碼生成器 34
2.5.6 go-bindata代碼生成器 36
2.6 代碼生成過程 37
2.7 gengo代碼生成核心實現 40
2.7.1 代碼生成邏輯與編譯器原理 41
2.7.2 收集Go包信息 42
2.7.3 代碼解析 45
2.7.4 類型係統 48
2.7.5 代碼生成 51
第3章 Kubernetes核心數據結構 57
3.1 Group、Version、Resource核心數據結構 57
3.2 ResourceList 59
3.3 Group 62
3.4 Version 63
3.5 Resource 65
3.5.1 資源外部版本與內部版本 66
3.5.2 資源代碼定義 68
3.5.3 將資源注冊到資源注冊錶中 71
3.5.4 資源首選版本 71
3.5.5 資源操作方法 72
3.5.6 資源與命名空間 75
3.5.7 自定義資源 77
3.5.8 資源對象描述文件定義 78
3.6 Kubernetes內置資源全圖 79
3.7 runtime.Object類型基石 83
3.8 Unstructured數據 85
3.9 Scheme資源注冊錶 87
3.9.1 Scheme資源注冊錶數據結構 87
3.9.2 資源注冊錶注冊方法 91
3.9.3 資源注冊錶查詢方法 92
3.10 Codec編解碼器 92
3.10.1 Codec編解碼實例化 94
3.10.2 jsonSerializer與yamlSerializer序列化器 95
3.10.3 protobufSerializer序列化器 98
3.11 Converter資源版本轉換器 100
3.11.1 Converter轉換器數據結構 101
3.11.2 Converter注冊轉換函數 102
3.11.3 Converter資源版本轉換原理 104
第4章 kubectl命令行交互 111
4.1 kubectl命令行參數詳解 111
4.2 Cobra命令行參數解析 114
4.3 創建資源對象的過程 119
4.3.1 編寫資源對象描述文件 120
4.3.2 實例化Factory接口 120
4.3.3 Builder構建資源對象 121
4.3.4 Visitor多層匿名函數嵌套 122
第5章 client-go編程式交互 128
5.1 client-go源碼結構 128
5.2 Client客戶端對象 129
5.2.1 kubeconfig配置管理 130
5.2.2 RESTClient客戶端 134
5.2.3 ClientSet客戶端 137
5.2.4 DynamicClient客戶端 139
5.2.5 DiscoveryClient客戶端 141
5.3 Informer機製 144
5.3.1 Informer機製架構設計 145
5.3.2 Reflector 149
5.3.3 DeltaFIFO 154
5.3.4 Indexer 158
5.4 WorkQueue 162
5.4.1 FIFO隊列 163
5.4.2 延遲隊列 165
5.4.3 限速隊列 166
5.5 EventBroadcaster事件管理器 170
5.6 代碼生成器 176
5.6.1 client-gen代碼生成器 176
5.6.2 lister-gen代碼生成器 180
5.6.3 informer-gen代碼生成器 182
5.7 其他客戶端 185
第6章 Etcd存儲核心實現 187
6.1 Etcd存儲架構設計 187
6.2 RESTStorage存儲服務通用接口 189
6.3 RegistryStore存儲服務通用操作 190
6.4 Storage.Interface通用存儲接口 192
6.5 CacherStorage緩存層 194
6.5.1 CacherStorage緩存層設計 195
6.5.2 ResourceVersion資源版本號 199
6.5.3 watchCache緩存滑動窗口 201
6.6 UnderlyingStorage底層存儲對象 204
6.7 Codec編解碼數據 206
6.8 Strategy預處理 209
6.8.1 創建資源對象時的預處理操作 209
6.8.2 更新資源對象時的預處理操作 211
6.8.3 刪除資源對象時的預處理操作 212
6.8.4 導齣資源對象時的預處理操作 213
第7章 kube-apiserver核心實現 214
7.1 熱身概念 215
7.1.1 go-restful核心原理 215
7.1.2 一次HTTP請求的完整生命周期 218
7.1.3 OpenAPI/Swagger核心原理 219
7.1.4 HTTPS核心原理 222
7.1.5 gRPC核心原理 224
7.1.6 go-to-protobuf代碼生成器 225
7.2 kube-apiserver命令行參數詳解 231
7.3 kube-apiserver架構設計詳解 243
7.4 kube-apiserver啓動流程 244
7.4.1 資源注冊 245
7.4.2 Cobra命令行參數解析 248
7.4.3 創建APIServer通用配置 249
7.4.4 創建APIExtensionsServer 257
7.4.5 創建KubeAPIServer 261
7.4.6 創建AggregatorServer 266
7.4.7 創建GenericAPIServer 269
7.4.8 啓動HTTP服務 270
7.4.9 啓動HTTPS服務 272
7.5 權限控製 272
7.6 認證 273
7.6.1 BasicAuth認證 276
7.6.2 ClientCA認證 277
7.6.3 TokenAuth認證 278
7.6.4 BootstrapToken認證 279
7.6.5 RequestHeader認證 281
7.6.6 WebhookTokenAuth認證 282
7.6.7 Anonymous認證 284
7.6.8 OIDC認證 285
7.6.9 ServiceAccountAuth認證 288
7.7 授權 291
7.7.1 AlwaysAllow授權 295
7.7.2 AlwaysDeny授權 296
7.7.3 ABAC授權 297
7.7.4 Webhook授權 298
7.7.5 RBAC授權 300
7.7.6 Node授權 309
7.8 準入控製器 310
7.8.1 AlwaysPullImages準入控製器 315
7.8.2 PodNodeSelector準入控製器 316
7.9 進程信號處理機製 318
7.9.1 常駐進程實現 318
7.9.2 進程的優雅關閉 319
7.9.3 嚮systemd報告進程狀態 320
第8章 kube-scheduler核心實現 321
8.1 kube-scheduler命令行參數詳解 321
8.2 kube-scheduler架構設計詳解 324
8.3 kube-scheduler組件的啓動流程 326
8.3.1 內置調度算法的注冊 327
8.3.2 Cobra命令行參數解析 328
8.3.3 實例化Scheduler對象 329
8.3.4 運行EventBroadcaster事件管理器 331
8.3.5 運行HTTP或HTTPS服務 331
8.3.6 運行Informer同步資源 332
8.3.7 領導者選舉實例化 332
8.3.8 運行sched.Run調度器 333
8.4 優先級與搶占機製 333
8.5 親和性調度 335
8.5.1 NodeAffinity 336
8.5.2 PodAffinity 337
8.5.3 PodAntiAffinity 338
8.6 內置調度算法 339
8.6.1 預選調度算法 339
8.6.2 優選調度
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

直接讀源碼更好,這本書主要講的是k8s的組件的基本邏輯,但是其實要理解更多的還是得自己多寫一點單元測試和邏輯,自己prove的,不然感覺就不是很make sense, 而且這個版本的k8和現在的版本有點距離瞭,比如leader election闆塊這些

评分

k8s太復雜瞭……

评分

直接讀源碼更好,這本書主要講的是k8s的組件的基本邏輯,但是其實要理解更多的還是得自己多寫一點單元測試和邏輯,自己prove的,不然感覺就不是很make sense, 而且這個版本的k8和現在的版本有點距離瞭,比如leader election闆塊這些

评分

直接讀源碼更好,這本書主要講的是k8s的組件的基本邏輯,但是其實要理解更多的還是得自己多寫一點單元測試和邏輯,自己prove的,不然感覺就不是很make sense, 而且這個版本的k8和現在的版本有點距離瞭,比如leader election闆塊這些

评分

直接讀源碼更好,這本書主要講的是k8s的組件的基本邏輯,但是其實要理解更多的還是得自己多寫一點單元測試和邏輯,自己prove的,不然感覺就不是很make sense, 而且這個版本的k8和現在的版本有點距離瞭,比如leader election闆塊這些

相關圖書

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有