Kubernetes Operator 開發進階

胡濤(Daniel Hu) 著

  • 出版商: 機械工業
  • 出版日期: 2023-01-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 224
  • 裝訂: 平裝
  • ISBN: 7111716159
  • ISBN-13: 9787111716150
  • 相關分類: Kubernetes
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書詳細講解Operator開發過程中所涉及的各個知識點,從簡單的Operator示例應用入手,
幫助讀者快速上手Operator的開發流程,接著深入分析client-go、Deployment控制器等的源碼,
通過一個進階應用的開發過程詳細介紹Operator開發的各方面知識。
通過本書的學習,讀者能夠輕鬆掌握Operator的開發技巧,深入理解Operator的底層原理,
進而在日常工作中更好地利用Operator實現各種複雜的應用治理邏輯的開發。

目錄大綱

目錄
推薦序1
推薦序2
前言
第一篇入門
第1章了解Kubernetes 2
1.1 初識Kubernetes 2
1.2 Kubernetes集群的部署3
1.2.1 Docker的安裝4
1.2.2 Kind工具介紹6
1.2.3 使用Kind快速搭建Kubernetes環境6
1.2.4 使用Kind搭建多節點Kubernetes集群環境7
1.2.5 Kind用法進階10
1.3 Kubernetes集群的基本操作12
1.3.1 示例項目介紹12
1.3.2 基礎操作演示13
1.3.3 小結18
1.4 Kubernetes的核心概念18
1.4.1 節點18
1.4.2 命名空間19
1.4.3 容器組21
1.4.4 副本集22
1.4.5 部署23
1.4.6 服務24
1.5 Kubernetes的發展歷史26
1.6 本章小結27
第2章開始Operator開發28
2.1 理解控制器模式28
2.1.1 生活中的控制器28
2.1.2 Kubernetes中的控制器29
2.2 理解Operator模式30
2.3 Operator開發環境準備31
2.4 Kubebuilder的安裝配置31
2.5 從Application Operator Demo開始32
2.5.1 創建項目33
2.5.2 添加API 35
2.5.3 CRD實現38
2.5.4 CRD部署39
2.5.5 CR部署40
2.5.6 Controller實現41
2.5.7 啟動Controller 42
2.5.8 部署Controller 44
2.5.9 資源清理46
2.6 Operator的發展歷史46
2.6.1 Operator概念的提出46
2.6.2 第一個Operator程序47
2.6.3 Operator的崛起47
2.7 本章小結48
第二篇進階
第3章Kubernetes API介紹50
3.1 認識Kubernetes API 50
3.2 使用Kubernetes API 50
3.2.1 Curl方式訪問API 50
3.2.2 kubectl raw方式訪問API 53
3.3 理解GVK:組、版本與類型54
3.4 本章小結54
第4章理解client-go 55
4.1 client-go項目介紹55
4.1.1 client-go的代碼庫55
4.1.2 client-go的包結構56
4.1.3 client-go的版本規則56
4.1.4 獲取client-go 57
4.2 client-go使用示例57
4.2.1 client-go集群內認證配置57
4.2.2 client-go集群外認證配置60
4.2.3 client-go操作Deployment 63
4.3 本章小結67


第5章client-go源碼分析68
5.1 client-go源碼概覽68
5.1.1 關於client-go源碼版本68
5.1.2 client-go模塊概覽69
5.2 WorkQueue源碼分析71
5.2.1 普通隊列Queue的實現71
5.2.2 延時隊列DelayingQueue的實現74
5.2.3 限速隊列RateLimitingQueue的實現79
5.2.4 小結82
5.3 DeltaFIFO源碼分析83
5.3.1 Queue接口與DeltaFIFO的實現83
5.3.2 queueActionLocked()方法的邏輯85
5.3.3 Pop()方法和Replace()方法的邏輯86
5.4 Indexer和ThreadSafeStore 89
5.4.1 Indexer接口和cache的實現89
5.4.2 ThreadSafeStore的實現91
5.4.3 各種Index方法的實現94
5.5 ListerWatcher 95
5.5.1 ListWatch對象的初始化95
5.5.2 ListerWatcher接口97
5.5.3 List-Watch與HTTP chunked 98
5.6 Reflector 102
5.6.1 Reflector的啟動過程102
5.6.2 核心方法:Reflector.ListAndWatch() 102
5.6.3 核心方法:Reflector.watchHandler() 106
5.6.4 Reflector的初始化108
5.6.5 小結108
5.7 Informer 109
5.7.1 Informer就是Controller 109
5.7.2 SharedIndexInformer對象113
5.7.3 sharedProcessor對象116
5.7.4 關於SharedInformerFactory 119
5.7.5 小結121
5.8 本章小結122
第6章項目核心依賴包分析123
6.1 API項目123
6.2 apimachinery項目124
6.3 controller-runtime項目125
6.4 本章小結126


第7章Operator開發進階127
7.1 進階項目設計127
7.2 準備application-operator項目127
7.2.1 創建新項目127
7.2.2 項目基礎結構分析128
7.3 定義Application資源132
7.3.1 添加新API 132
7.3.2 自定義新API 133
7.4 實現Application Controller 134
7.4.1 實現主調諧流程134
7.4.2 實現Deployment調諧流程137
7.4.3 實現Service調諧流程140
7.4.4 設置RBAC權限142
7.4.5 過濾調諧事件146
7.4.6 資源別名150
7.5 使用Webhook 151
7.5.1 Kubernetes API訪問控制151
7.5.2 Admission Webhook介紹152
7.5.3 Admission Webhook的實現152
7.5.4 cert-manager部署154
7.5.5 Webhook部署運行155
7.5.6 Webhook測試157
7.6 API多版本支持159
7.6.1 實現V2版本API 159
7.6.2 多版本API部署