会员   密码 您忘记密码了吗?
1,505,731 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > Istio權威指南(下):雲原生服務網格Istio架構與源碼
Istio權威指南(下):雲原生服務網格Istio架構與源碼
上一张
下一张
prev next

Istio權威指南(下):雲原生服務網格Istio架構與源碼

作者: 張超盟,徐中虎,張偉,冷雪
出版社: 電子工業出版社
出版日期: 2023-05-01
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT768.00
市场价格: RM138.07
本店售价: RM122.88
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

本書是《Istio權威指南》的下冊,重點講解Istio的架構與源碼,分為架構篇和源碼篇。架構篇從架構的視角分別介紹Istio各元件的設計思想、資料模型和核心工作流程。在Istio1.16中,Istiod以原有的Pilot為基礎框架構建了包含Pilot、Citadel、Galley等元件的統一控制面。本書第15、16、17章會分別介紹以上三個組件各自的架構、模型和流程機制;第18、19、20章依次講解服務網格資料面上Pilot-agent、Envoy和Istio-proxy的架構和流程,包括三者的結合關係,配合Istio控制面組件實現流量管理功能,特別是Envoy的架構、模型和關鍵流程。

源碼篇包括第21~26章,和《Istio權威指南(上)》中架構篇的6章對應,分別介紹Istio管理面組件Pilot、Citadel、Galley與資料面Pilot-agent、Envoy和Istio-proxy的主要代碼結構、代碼流程及關鍵代碼片段。本篇配合架構篇中每個元件的架構和機制,對Istio重要元件的實現進行了更詳細的講解和剖析,為讀者深入研讀Istio相關代碼,以及在生產環境中進行相應代碼的調試和修改提供指導。


作者介紹

張超盟,華為雲應用服務網格架構師,擁有15年以上的開發經驗,先後負責過華為雲容器應用運維、微服務平臺、雲服務目錄、雲服務可靠性、服務網格等雲原生產品的架構設計與開發工作,主導過多個重大專案的雲原生和微服務化生產落地。在服務網格、Kubernetes容器服務、微服務架構、應用性能管理、大資料、DevOps工具等方面有深入的研究與實踐。Istio社區成員,KubeCon、IstioCon及ServiceMeshCon等會議的演講者,技術圖書作者。早期曾在中鐵一局從事路橋建設工作。

徐中虎,華為云云原生團隊核心成員,開源技術專家,服務網格Istio核心維護者,Istio社區指導委員會成員,Kubernetes專案核心貢獻者,批量計算項目Volcano的核心維護者,擁有豐富的開源工作經驗。主要研究方向有微服務架構、服務網格、容器編排平臺Kubernetes和未來的分散式雲原生架構等。在分散式系統的性能優化、高可靠和可擴展方面研究深入、經驗豐富。

張偉,華為雲服務網格資料面資深專家,擁有18年架構設計與開發經驗,先後就職于億陽信通、加拿大北電網路(中國)、甲骨文、Polycom、阿裡巴巴及華為等公司。作為核心開發人員開發過傳輸網管系統、Tuxedo交易中介軟體、ts-server多媒體轉碼服務、GTS高性能事務雲服務、sc高性能註冊中心、ASM資料面等多個產品,現主要負責華為雲ASM服務網格資料面代理產品的設計與開發工作。

冷雪,西安電子科技大學杭州研究院菁英副教授,浙江大學工學博士。主要研究方向有雲原生安全、性能優化和智慧運維等,致力於解決雲網環境下的關鍵問題。曾參與並主持多項科研專案,在國際會議和期刊上發表多篇論文並獲得多項授權專利。


目錄

架 構 篇

第15章 Pilot的架構 2
15.1 Pilot的基本架構 2
15.1.1 Istio的服務模型 4
15.1.2 xDS協議 6
15.2 Pilot的原理 12
15.2.1 xDS伺服器 13
15.2.2 服務發現 24
15.2.3 配置規則發現 29
15.2.4 xDS的生成和分發 35
15.3 安全外掛程式 42
15.3.1 認證外掛程式 43
15.3.2 授權外掛程式 46
15.4 Pilot的關鍵設計 48
15.4.1 三級緩存模型 48
15.4.2 去抖動分發 50
15.4.3 防過度分發 51
15.4.4 增量EDS 51
15.4.5 資源隔離 53
15.4.6 自動管理虛擬機工作負載 54
15.5 本章小結 55

第16章 Citadel的架構 56
16.1 Istio的證書和身份管理 56
16.2 Citadel的基本架構 59
16.3 Citadel的核心原理 60
16.3.1 核心組件的初始化 61
16.3.2 CA伺服器 62
16.3.3 證書簽發 63
16.3.4 證書輪轉器 65
16.4 本章小結 67

第17章 Galley的架構 68
17.1 簡化的Galley 68
17.2 Galley的整體架構 69
17.2.1 早期的MCP 70
17.2.2 基於xDS的MCP 72
17.3 Galley的核心工作原理 72
17.3.1 啟動初始化 72
17.3.2 API校驗 75
17.3.3 對API配置的管理 78
17.4 本章小結 79

第18章 Pilot-agent的架構 80
18.1 Pilot-agent的用途 81
18.2 Pilot-agent的核心架構 81
18.3 Pilot-agent的原理 83
18.3.1 Envoy的啟動 84
18.3.2 優雅退出 85
18.3.3 xDS代理 87
18.3.4 證書管理 90
18.3.5 DNS伺服器 91
18.3.6 應用健康檢查 92
18.4 本章小結 93

第19章 Envoy的架構 94
19.1 Envoy的整體架構 95
19.1.1 Envoy的內部架構 96
19.1.2 Envoy的通信架構 100
19.2 Envoy的記憶體管理 110
19.2.1 堆記憶體管理 110
19.2.2 Buffer管理 111
19.3 Envoy篩檢程式的架構 114
19.3.1 篩檢程式的註冊 115
19.3.2 篩檢程式的回檔方法 117
19.3.3 篩檢程式的掛起與恢復 118
19.4 Envoy的初始化流程 119
19.4.1 靜態配置 120
19.4.2 動態配置 121
19.4.3 Envoy的創建及初始化流程 124
19.4.4 Envoy的運行流程 128
19.4.5 目標服務Cluster的創建 129
19.4.6 監聽器的創建 131
19.5 Envoy的網路及執行緒模型 133
19.5.1 Server主執行緒 134
19.5.2 Accesslog執行緒 136
19.5.3 工作執行緒 138
19.5.4 GuardDog執行緒 139
19.5.5 執行緒間的同步 139
19.6 Envoy的熱升級流程 141
19.7 Envoy的新連接處理流程 144
19.8 Envoy的請求及回應數據處理流程 145
19.8.1 對下游請求數據的接收及處理 146
19.8.2 對上游請求數據的處理及發送 149
19.8.3 對上游回應數據的接收及發送 151
19.9 xDS的原理及工作流程 153
19.10 安全證書處理 155
19.11 WASM虛擬機器的原理 158
19.12 本章小結 161

第20章 Istio-proxy的架構 162
20.1 Istio-proxy的基本架構 162
20.2 Istio-proxy的原理 163
20.2.1 Istio-proxy的整體工作流程 163
20.2.2 L4 metadata_exchange的工作流程 164
20.2.3 L7 metadata_exchange擴展的工作流程 169
20.2.4 Stats的工作流程 170
20.3 本章小結 173

源 碼 篇

第21章 Pilot源碼解析 175
21.1 啟動流程 175
21.2 關鍵代碼解析 177
21.2.1 ConfigController 178
21.2.2 ServiceController 186
21.2.3 xDS的非同步分發 194
21.2.4 對xDS更新的預處理 202
21.2.5 xDS配置的生成及分發 208
21.3 本章小結 211

第22章 Citadel源碼解析 212
22.1 啟動流程 212
22.1.1 Istio CA的創建 213
22.1.2 SDS伺服器的初始化 214
22.1.3 Istio CA的啟動 215
22.2 關鍵代碼解析 216
22.2.1 CA 伺服器的核心原理 216
22.2.2 證書簽發實體IstioCA 218
22.2.3 CredentialsController的創建和核心原理 222
22.3 本章小結 224

第23章 Galley源碼解析 225
23.1 啟動流程 225
23.1.1 Galley WebhookServer的初始化 226
23.1.2 ValidatingWebhookConfiguration控制器的初始化 226
23.2 關鍵代碼解析 228
23.2.1 配置校驗 228
23.2.2 Validating控制器的實現 232
23.3 本章小結 235

第24章 Pilot-agent源碼解析 236
24.1 整體架構 236
24.2 啟動及監控 238
24.3 xDS轉發服務 243
24.4 SDS證書服務 248
24.5 健康檢查 255
24.5.1 應用容器的LivenessProbe探測 255
24.5.2 應用容器的ReadinessProbe探測 257
24.5.3 Envoy進程的ReadinessProbe探測 258
24.5.4 Pilot-agent進程的LivenessProbe探測 262
24.6 本章小結 265

第25章 Envoy源碼解析 266
25.1 Envoy的初始化 266
25.1.1 啟動參數bootstrap的初始化 267
25.1.2 初始化觀測指標 268
25.1.3 篩檢程式註冊及資訊補齊 269
25.1.4 Envoy自身資訊解析 273
25.1.5 Admin API的初始化 273
25.1.6 Worker的初始化 276
25.1.7 Dispatcher記憶體延遲析構 279
25.1.8 CDS的初始化 283
25.1.9 LDS的初始化 286
25.1.10 初始化觀測管理系統 287
25.1.11 啟動Stats定期刷新 292
25.1.12 GuardDog的初始化 292
25.2 熱重啟的流程 296
25.3 Envoy的運行和連接創建 298
25.3.1 啟動Worker工作執行緒 299
25.3.2 監聽器的載入 301
25.3.3 接收連接 304
25.4 Envoy接收及處理數據 309
25.4.1 讀取數據 310
25.4.2 接收數據 311
25.4.3 處理數據 312
25.5 Envoy發送數據到服務端 317
25.5.1 路由匹配 317
25.5.2 獲取連接池 320
25.5.3 創建上游請求 325
25.6 Envoy收到服務端響應 333
25.6.1 接收回應數據 333
25.6.2 發送回應數據 335
25.7 xDS流程解析 337
25.7.1 xDS公共訂閱 337
25.7.2 xDS推送 342
25.7.3 LDS更新 343
25.7.4 SDS訂閱 350
25.8 遙測元數據存儲 352
25.8.1 創建遙測元數據 352
25.8.2 收集Stats觀測數據 360
25.8.3 定義靜態指標 361
25.9 WASM擴展 363
25.9.1 WASM虛擬機器的啟動 363
25.9.2 WASM虛擬機器的運行 374
25.10 本章小結 387

第26章 Istio-proxy源碼解析 388
26.1 metadata_exchange 388
26.2 遙測數據Stats的上報 395
26.3 源碼地址 406
26.4 本章小結 408

附錄A 源碼倉庫介紹 409
附錄B 實踐問題總結 416
附錄C 服務網格術語表 432

結 語 447