-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
深入理解Kubernetes源碼 版權信息
- ISBN:9787121483233
- 條形碼:9787121483233 ; 978-7-121-48323-3
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
深入理解Kubernetes源碼 本書特色
·專家力薦:業內專家曹偉(鳴嵩)、劉君傾情力薦。 ·深入解析:以Kubernetes 1.25.0源碼為基礎,詳解核心組件和實現原理,帶你全面掌握容器編排技術。 ·提升競爭力:通過學習Kubernetes源碼,提升在云計算領域的專業能力,增強職業競爭力。 ·實用指南:幫助開發者、運維工程師及架構師高效管理大規模多容器集群,應對生產環境中的復雜編排需求。 ·技術精髓:適合對容器技術和云計算感興趣的讀者,深入了解Kubernetes,掌握前沿技術,邁向技術巔峰。 從一個云數據庫從業者的角度來看,Kubernetes正在撬動云計算的基石。Kubernetes可以屏蔽多云、混合云laaS層面的差異,可以向業務提供Pod、Service、Deployment、StatefulSet等更高層次的統一抽象。在Kubernetes的基礎上,企業可以借助生態搭建各種PaaS服務,如管理數據庫的KubeBlocks。Kubernetes已經是云時代的Linux了,云計算的從業者、使用者都必須知曉Kubernetes的理念、原理及如何擴展Kubernetes的功能。這本書可以幫助讀者從源碼角度切入,深入掌握Kubernetes,走在技術前沿。 ——曹 偉(鳴嵩) 云猿生數據CEO,阿里云前數據庫總經理,PolarDB創始人 《深入理解Kubemetes源碼》一書從多維度、深入淺出地剖析了Kubernetes架構及源碼運行機制,非常值得學習。同時,作者在一線互聯網大廠有超大規模容器云服務開發和運維等實踐經驗,在這本書中他們給出了自己非常獨到的見解和分析。 ——劉 君 快手SRE負責人
深入理解Kubernetes源碼 內容簡介
在過去幾年中,容器技術的廣泛應用推動了容器編排技術的迅猛發展,尤其是Kubernetes的興起。作為當前非常受歡迎的容器編排系統,Kubemetes能夠有效應對生產環境中復雜的編排需求,幫助企業實現大規模多容器集群的高效管理。本書將Kubemetes 1.25.0版本源碼作為剖析對象,深入探討其核心組件和實現原理。通過學習Kubernetes源碼,讀者不僅能掌握容器編排技術的精髓,還能提升自身在云計算領域的競爭力。
本書適合對容器技術和云計算感興趣的開發者、運維工程師及架構師參考和閱讀。
深入理解Kubernetes源碼 目錄
1.1 Kubernetes發展歷史 1
1.2 Kubernetes架構 2
1.3 Kubernetes各組件功能 3
1.3.1 kubectl 4
1.3.2 client-go 4
1.3.3 kube-apiserver 4
1.3.4 kube-controller-manager 4
1.3.5 kube-scheduler 5
1.3.6 kubelet 5
1.3.7 kube-proxy 6
1.3.8 Container Runtime 6
1.4 Kubernetes Project Layout設計 7
第2章 Kubernetes構建過程 10
2.1 構建方式 10
2.2 一切都始于Makefile 12
2.3 本地環境構建 13
2.3.1 本地環境構建命令 13
2.3.2 本地環境構建過程 14
2.4 容器環境構建 16
2.4.1 容器環境構建命令 16
2.4.2 容器環境構建過程 16
第3章 Kubernetes核心數據結構 19
3.1 初識數據結構 19
3.2 基本概念 19
3.2.1 API的層次結構 19
3.2.2 版本控制 20
3.2.3 組 21
3.2.4 API術語 22
3.2.5 API資源組成 25
3.2.6 版本化資源與未版本化資源 26
3.2.7 內部版本與外部版本 27
3.3 Kubernetes API的數據結構 28
3.3.1 APIGroup、APIVersions 28
3.3.2 APIResource 30
3.3.3 GVK和GVR 32
3.3.4 內置資源全景圖 33
3.4 Kubernetes資源定義 35
3.4.1 內部版本定義 35
3.4.2 外部版本定義 36
3.5 將資源注冊到Scheme中 36
3.5.1 資源類型注冊入口 37
3.5.2 Scheme的數據結構 38
3.5.3 Scheme的初始化 40
3.5.4 SchemeBuilder資源注冊 41
3.5.5 資源外部版本注冊 43
3.5.6 資源內部版本注冊 44
3.5.7 所有資源的注冊入口 45
3.5.8 資源注冊表的查詢方法 47
3.5.9 資源對象的創建 48
3.5.10 資源對象的轉換 48
3.5.11 資源對象默認值的設置 49
3.5.12 資源字段的轉換 49
3.6 對象體系設計 49
3.6.1 資源對象的基本信息 49
3.6.2 對象體系類圖 50
3.6.3 runtime.Object 51
3.6.4 metav1.TypeMeta 52
3.6.5 metav1.ObjectMeta 52
3.6.6 Unstructured 53
3.7 runtime.Codec資源編/解碼 55
3.7.1 編/解碼數據結構 56
3.7.2 CodecFactory實例化 57
3.7.3 codec編/解碼實現類 60
3.7.4 json.Serializer編/解碼 64
3.7.5 protobuf.Serializer編/解碼 65
3.7.6 UnstructuredJSONScheme實現類 67
3.7.7 NegotiatedSerializer 67
3.7.8 ParameterCodec 69
3.7.9 runtime包下的Codec相關函數 71
3.7.10 Codec核心調用鏈路 72
3.7.11 Codec的使用方式 74
3.8 Converter資源版本轉換器 75
3.8.1 Converter的數據結構 76
3.8.2 Converter轉換函數的注冊 77
3.8.3 Converter的初始化 77
3.8.4 Converter資源版本轉換的實現 78
3.9 使用RESTMapper管理GVR和GVK映射 79
3.9.1 RESTMapper的數據結構 80
3.9.2 RESTMapper實現類 81
3.9.3 DefaultRESTMapper默認實現類 82
3.9.4 PriorityRESTMapper優先級映射 83
3.9.5 DeferredDiscoveryRESTMapper實現類 84
3.9.6 RESTMapper的使用 85
3.9.7 RESTMapping的數據結構及典型用法 85
第4章 Kubernetes核心資源對象 87
4.1 初識Kubernetes資源對象 87
4.2 metav1.ObjectMeta屬性元數據 88
4.2.1 Name 88
4.2.2 GenerateName 89
4.2.3 Annotation 89
4.2.4 Generation 89
4.2.5 ResourceVersion 90
4.2.6 OwnerReference 91
4.2.7 Finalizers 92
4.2.8 ManagedFields 94
4.3 Pod資源對象 99
4.3.1 PodSpec字段詳解 100
4.3.2 Container字段詳解 110
4.3.3 Pod創建流程 114
4.3.4 Pause容器及創建流程 115
4.3.5 PodSpec生成容器參數 122
4.3.6 容器的通用創建流程 124
4.3.7 資源配額與cgroup 126
4.3.8 QoS與驅逐順序 131
4.3.9 靜態Pod 135
4.3.10 健康檢查 137
4.3.11 Pod的狀態 140
4.3.12 原地升級 144
4.4 工作負載資源 146
4.4.1 Deployment 146
4.4.2 ReplicaSet 153
4.4.3 StatefulSet 156
4.4.4 DaemonSet 160
4.4.5 Job 163
4.4.6 CronJob 166
4.5 發現和負載均衡資源 169
4.5.1 Service 169
4.5.2 Ingress 175
4.5.3 Endpoints 177
4.5.4 EndpointSlice 178
4.5.5 NetworkPolicy 182
4.6 配置和存儲資源 185
4.6.1 卷 185
4.6.2 PV與PVC 186
4.6.3 StorageClass 191
4.7 自定義資源 194
4.7.1 概述 194
4.7.2 Operator 196
4.7.3 controller-runtime 197
4.7.4 Kubebuilder 198
第5章 client-go編程式交互 200
5.1 初識client-go 200
5.2 客戶端 200
5.2.1 kubeconfig配置管理 201
5.2.2 RESTClient客戶端 204
5.2.3 ClientSet客戶端 207
5.2.4 DynamicClient客戶端 210
5.2.5 DiscoveryClient發現客戶端 212
5.3 Informer機制 214
5.3.1 Informer使用示例 214
5.3.2 Informer架構 216
5.3.3 Reflector數據同步 217
5.3.4 DeltaFIFO操作隊列 223
5.3.5 Indexer資源緩存 226
5.3.6 processor資源處理 230
5.3.7 workqueue工作隊列 233
5.4 常用工具類 240
5.4.1 事件管理機制 240
5.4.2 Leader選舉機制 247
第6章 kubectl命令式交互 256
6.1 初識kubectl 256
6.2 kubectl執行流程 256
6.2.1 初始化命令對象 257
6.2.2 補全命令參數 257
6.2.3 校驗命令參數 258
6.2.4 執行命令輸出結果 258
6.3 kubectl緩存機制 263
6.3.1 緩存數據結構 264
6.3.2 緩存機制詳解 265
6.3.3 緩存使用場景 269
6.4 kubectl變更比對策略 272
6.4.1 變更比對策略介紹 272
6.4.2 服務端應用和客戶端應用 272
6.4.3 策略比對器和JSON比對器 274
6.4.4 雙路合并和三路合并 275
6.5 kubectl擴展命令 277
6.5.1 擴展命令介紹 277
6.5.2 擴展命令實現原理 277
6.5.3 擴展命令管理器Krew 278
第7章 etcd存儲核心實現 280
7.1 初識etcd存儲 280
7.2 etcd存儲架構設計 280
7.3 RESTStorage資源存儲接口 282
7.4 genericregistry.Store通用操作封裝 283
7.4.1 標準存儲實現 283
7.4.2 版本沖突檢測 284
7.4.3 通用鉤子函數 284
7.4.4 DryRun實現原理 287
7.5 storage.Interface通用存儲接口 288
7.6 Cacher Storage緩存層 290
7.6.1 Cacher Storage緩存架構 291
7.6.2 ResourceVersion資源版本號 295
7.6.3 watchCache緩存滑動窗口 297
7.7 Underlying Storage底層存儲對象 300
7.8 Codec數據編/解碼 301
7.9 Strategy預處理 304
7.9.1 Create Strategy預處理 304
7.9.2 Update Strategy預處理 307
7.9.3 Delete Strategy預處理 308
第8章 kube-apiserver核心實現 310
8.1 初識kube-apiserver 310
8.2 網絡通信框架 311
8.2.1 go-restful框架 311
8.2.2 Protobuf序列化 314
8.3 kube-apiserver架構設計 319
8.4 kube-apiserver啟動流程 321
8.4.1 Scheme資源注冊 322
8.4.2 Cobra命令行參數解析 324
8.4.3 創建API Server通用配置 325
8.4.4 創建APIExtensionsServer 336
8.4.5 創建KubeAPIServer 345
8.4.6 創建AggregatorServer 353
8.4.7 GenericAPIServer初始化 360
8.4.8 準備和啟動HTTPS服務 362
8.5 請求處理流程 367
8.6 權限控制體系 368
8.7 認證 369
8.7.1 RequestHeader認證 370
8.7.2 ClientCA認證 372
8.7.3 TokenAuth認證 373
8.7.4 ServiceAccountAuth認證 374
8.7.5 BootstrapToken認證 377
8.7.6 OIDC認證 379
8.7.7 WebhookTokenAuth認證 381
8.7.8 Anonymous認證 383
8.8 授權 383
8.8.1 AlwaysAllow授權 386
8.8.2 AlwaysDeny授權 387
8.8.3 ABAC授權 388
8.8.4 Webhook授權 389
8.8.5 RBAC授權 391
8.8.6 Node授權 396
8.9 準入控制器 397
8.9.1 內置插件介紹 398
8.9.2 內部實現原理 401
8.9.3 MutatingAdmissionWebhook準入控制器 404
8.9.4 ValidatingAdmissionWebhook準入控制器 411
8.10 信號處理機制 416
8.10.1 常駐進程實現 416
8.10.2 進程的優雅關閉 417
8.10.3 向systemd報告進程狀態 419
8.11 List-Watch的實現原理 420
8.11.1 長連接通信協議 420
8.11.2 List-Watch的核心原理 425
第9章 kube-scheduler核心實現 430
9.1 初識kube-scheduler 430
9.1.1 kube-scheduler調度模型 430
9.1.2 kube-scheduler內部架構 431
9.1.3 kube-scheduler事件驅動 434
9.2 kube-scheduler啟動流程 437
9.2.1 Cobra命令行參數解析 438
9.2.2 實例化Scheduler對象 439
9.2.3 運行EventBroadcaster事件管理器 442
9.2.4 運行HTTPS Server 442
9.2.5 運行Informer同步資源 443
9.2.6 執行Leader選舉 444
9.2.7 運行調度器 445
9.3 Scheduling Framework 445
9.3.1 誕生背景 445
9.3.2 核心架構 446
9.4 調度器運行流程 452
9.4.1 整體運行流程 452
9.4.2 Scheduling Cycle 454
9.4.3 Binding Cycle 462
9.5 優先級與搶占機制 464
9.5.1 Pod優先級 465
9.5.2 Pod驅逐搶占機制 466
深入理解Kubernetes源碼 作者簡介
鄭東旭(Derek Zheng),BFE(萬億流量轉發引擎)開源項目的作者之一,擅長Linux下高性能服務器的開發,對云計算、區塊鏈相關技術領域有深刻的理解。邱世達,云原生技術專家,熱愛開源事業,長期參與Kubernetes社區貢獻,Kubernetes Contributor Top 30,Sig Cluster Lifecycle成員,Kubeadm項目維護者之一,具備多年云計算領域研究工作經驗。冀超,曾在百度等多家互聯網公司任職,參與過公有云和公司內的云原生平臺建設,具有多年Kubernetes使用和開發經驗。李晉林,長期致力于云原生領域,對Kubernetes有深入理解和研究。在金融交易系統中擁有多年的Kubernetes使用和二次開發經驗,主要主導公司業務上云、線上流量遷移等工作。楊川胡(陽明),云原生愛好者,k8s技術圈社區作者,云原生學習網站優點知識創始人。周世偉,資深碼農,云原生愛好者和踐行者,擅長Kubernetes、服務網格開發,技術宅。
- >
二體千字文
- >
月亮虎
- >
詩經-先民的歌唱
- >
苦雨齋序跋文-周作人自編集
- >
小考拉的故事-套裝共3冊
- >
龍榆生:詞曲概論/大家小書
- >
有舍有得是人生
- >
【精裝繪本】畫給孩子的中國神話