注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡家庭與辦公軟件Kubernetes源碼剖析

Kubernetes源碼剖析

Kubernetes源碼剖析

定 價:¥89.00

作 者: 鄭東旭 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787121389146 出版時間: 2020-06-01 包裝: 平裝
開本: 16開 頁數(shù): 376 字數(shù):  

內(nèi)容簡介

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

作者簡介

  鄭東旭(Derek Zheng),BFE(萬億流量轉(zhuǎn)發(fā)引擎,https://github.com/baidu/bfe)開源項目的作者之一,擅長Linux下高性能服務器的開發(fā),對云計算、區(qū)塊鏈相關(guān)技術(shù)領(lǐng)域有深刻的理解。

圖書目錄

第1章Kubernetes架構(gòu)1
1.1Kubernetes的發(fā)展歷史1
1.2Kubernetes架構(gòu)圖2
1.3Kubernetes各組件的功能4
1.3.1kubectl5
1.3.2client-go5
1.3.3kube-apiserver5
1.3.4kube-controller-manager6
1.3.5kube-scheduler7
1.3.6kubelet7
1.3.7kube-proxy8
1.4KubernetesProjectLayout設計9
第2章Kubernetes構(gòu)建過程13
2.1構(gòu)建方式13
2.2本地環(huán)境構(gòu)建15
2.2.1一切都始于Makefile16
2.2.2本地構(gòu)建過程17
2.3容器環(huán)境構(gòu)建18
2.4Bazel環(huán)境構(gòu)建22
2.4.1使用Bazel構(gòu)建和測試Kubernetes源碼23
2.4.2Bazel的工作原理25
2.5代碼生成器26
2.5.1Tags27
2.5.2deepcopy-gen代碼生成器29
2.5.3defaulter-gen代碼生成器30
2.5.4conversion-gen代碼生成器32
2.5.5openapi-gen代碼生成器34
2.5.6go-bindata代碼生成器36
2.6代碼生成過程37
2.7gengo代碼生成核心實現(xiàn)40
2.7.1代碼生成邏輯與編譯器原理41
2.7.2收集Go包信息42
2.7.3代碼解析45
2.7.4類型系統(tǒng)48
2.7.5代碼生成51
第3章Kubernetes核心數(shù)據(jù)結(jié)構(gòu)57
3.1Group、Version、Resource核心數(shù)據(jù)結(jié)構(gòu)57
3.2ResourceList59
3.3Group62
3.4Version63
3.5Resource65
3.5.1資源外部版本與內(nèi)部版本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.6Kubernetes內(nèi)置資源全圖79
3.7runtime.Object類型基石83
3.8Unstructured數(shù)據(jù)85
3.9Scheme資源注冊表87
3.9.1Scheme資源注冊表數(shù)據(jù)結(jié)構(gòu)87
3.9.2資源注冊表注冊方法91
3.9.3資源注冊表查詢方法92
3.10Codec編解碼器92
3.10.1Codec編解碼實例化94
3.10.2jsonSerializer與yamlSerializer序列化器95
3.10.3protobufSerializer序列化器98
3.11Converter資源版本轉(zhuǎn)換器100
3.11.1Converter轉(zhuǎn)換器數(shù)據(jù)結(jié)構(gòu)101
3.11.2Converter注冊轉(zhuǎn)換函數(shù)102
3.11.3Converter資源版本轉(zhuǎn)換原理104
第4章kubectl命令行交互111
4.1kubectl命令行參數(shù)詳解111
4.2Cobra命令行參數(shù)解析114
4.3創(chuàng)建資源對象的過程119
4.3.1編寫資源對象描述文件120
4.3.2實例化Factory接口120
4.3.3Builder構(gòu)建資源對象121
4.3.4Visitor多層匿名函數(shù)嵌套122
第5章client-go編程式交互128
5.1client-go源碼結(jié)構(gòu)128
5.2Client客戶端對象129
5.2.1kubeconfig配置管理130
5.2.2RESTClient客戶端134
5.2.3ClientSet客戶端137
5.2.4DynamicClient客戶端139
5.2.5DiscoveryClient客戶端141
5.3Informer機制144
5.3.1Informer機制架構(gòu)設計145
5.3.2Reflector149
5.3.3DeltaFIFO154
5.3.4Indexer158
5.4WorkQueue162
5.4.1FIFO隊列163
5.4.2延遲隊列165
5.4.3限速隊列166
5.5EventBroadcaster事件管理器170
5.6代碼生成器176
5.6.1client-gen代碼生成器176
5.6.2lister-gen代碼生成器180
5.6.3informer-gen代碼生成器182
5.7其他客戶端185
第6章Etcd存儲核心實現(xiàn)187
6.1Etcd存儲架構(gòu)設計187
6.2RESTStorage存儲服務通用接口189
6.3RegistryStore存儲服務通用操作190
6.4Storage.Interface通用存儲接口192
6.5CacherStorage緩存層194
6.5.1CacherStorage緩存層設計195
6.5.2ResourceVersion資源版本號199
6.5.3watchCache緩存滑動窗口201
6.6UnderlyingStorage底層存儲對象204
6.7Codec編解碼數(shù)據(jù)206
6.8Strategy預處理209
6.8.1創(chuàng)建資源對象時的預處理操作209
6.8.2更新資源對象時的預處理操作211
6.8.3刪除資源對象時的預處理操作212
6.8.4導出資源對象時的預處理操作213
第7章kube-apiserver核心實現(xiàn)214
7.1熱身概念215
7.1.1go-restful核心原理215
7.1.2一次HTTP請求的完整生命周期218
7.1.3OpenAPI/Swagger核心原理219
7.1.4HTTPS核心原理222
7.1.5gRPC核心原理224
7.1.6go-to-protobuf代碼生成器225
7.2kube-apiserver命令行參數(shù)詳解231
7.3kube-apiserver架構(gòu)設計詳解243
7.4kube-apiserver啟動流程244
7.4.1資源注冊245
7.4.2Cobra命令行參數(shù)解析248
7.4.3創(chuàng)建APIServer通用配置249
7.4.4創(chuàng)建APIExtensionsServer257
7.4.5創(chuàng)建KubeAPIServer261
7.4.6創(chuàng)建AggregatorServer266
7.4.7創(chuàng)建GenericAPIServer269
7.4.8啟動HTTP服務270
7.4.9啟動HTTPS服務272
7.5權(quán)限控制272
7.6認證273
7.6.1BasicAuth認證276
7.6.2ClientCA認證277
7.6.3TokenAuth認證278
7.6.4BootstrapToken認證279
7.6.5RequestHeader認證281
7.6.6WebhookTokenAuth認證282
7.6.7Anonymous認證284
7.6.8OIDC認證285
7.6.9ServiceAccountAuth認證288
7.7授權(quán)291
7.7.1AlwaysAllow授權(quán)295
7.7.2AlwaysDeny授權(quán)296
7.7.3ABAC授權(quán)297
7.7.4Webhook授權(quán)298
7.7.5RBAC授權(quán)300
7.7.6Node授權(quán)309
7.8準入控制器310
7.8.1AlwaysPullImages準入控制器315
7.8.2PodNodeSelector準入控制器316
7.9進程信號處理機制318
7.9.1常駐進程實現(xiàn)318
7.9.2進程的優(yōu)雅關(guān)閉319
7.9.3向systemd報告進程狀態(tài)320
第8章kube-scheduler核心實現(xiàn)321
8.1kube-scheduler命令行參數(shù)詳解321
8.2kube-scheduler架構(gòu)設計詳解324
8.3kube-scheduler組件的啟動流程326
8.3.1內(nèi)置調(diào)度算法的注冊327
8.3.2Cobra命令行參數(shù)解析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領(lǐng)導者選舉實例化332
8.3.8運行sched.Run調(diào)度器333
8.4優(yōu)先級與搶占機制333
8.5親和性調(diào)度335
8.5.1NodeAffinity336
8.5.2PodAffinity337
8.5.3PodAntiAffinity338
8.6內(nèi)置調(diào)度算法339
8.6.1預選調(diào)度算法339
8.6.2優(yōu)選調(diào)度算法340
8.7調(diào)度器核心實現(xiàn)342
8.7.1調(diào)度器運行流程342
8.7.2調(diào)度過程343
8.7.3Preempt搶占機制351
8.7.4bind綁定機制356
8.8領(lǐng)導者選舉機制357
8.8.1資源鎖358
8.8.2領(lǐng)導者選舉過程360

本目錄推薦

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