注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡網絡與數據通信云原生服務網格Istio:原理、實踐、架構與源碼解析

云原生服務網格Istio:原理、實踐、架構與源碼解析

云原生服務網格Istio:原理、實踐、架構與源碼解析

定 價:¥139.00

作 者: 張超盟,章鑫,徐中虎,徐飛 編
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121366536 出版時間: 2019-07-01 包裝: 平裝
開本: 16開 頁數: 628 字數:  

內容簡介

  《云原生服務網格Istio:原理、實踐、架構與源碼解析》分為原理篇、實踐篇、架構篇和源碼篇,由淺入深地將Istio項目庖丁解牛并呈現給讀者。原理篇介紹了服務網格技術與Istio項目的技術背景、設計理念與功能原理,能夠幫助讀者了解服務網格這一云原生領域的標志性技術,掌握Istio流量治理、策略與遙測和安全功能的使用方法。實踐篇從零開始搭建Istio運行環(huán)境并完成一個真實應用的開發(fā)、交付、上線監(jiān)控與治理的完整過程,能夠幫助讀者熟悉Istio的功能并加深對Istio的理解。架構篇剖析了Istio項目的三大核心子項目Pilot、Mixer、Citadel的詳細架構,幫助讀者熟悉Envoy、Galley、Pilot-agent等相關項目,并挖掘Istio代碼背后的設計與實現思想。源碼篇對Istio各個項目的代碼結構、文件組織、核心流程、主要數據結構及各主要代碼片段等關鍵內容都進行了詳細介紹,讀者只需具備一定的Go語言基礎,便可快速掌握Istio各部分的實現原理,并根據自己的興趣深入了解某一關鍵機制的完整實現。本書提供源碼下載,參見http://github.com/cloudnativebooks/cloud-native-istio。 無論是對于剛入門Istio的讀者,還是對于已經在產品中使用Istio的讀者,本書都極具參考價值。

作者簡介

  張超盟 華為云應用服務網格首席架構師,擁有10年以上軟件研發(fā)經驗,先后負責華為云PaaS容器應用運維、微服務平臺、云服務目錄、服務網格等產品架構設計與開發(fā)工作,在容器服務、微服務架構、大數據、應用性能管理、數據庫中間件及DevOps工具等多個領域有深入的研究與實踐。開源愛好者,Istio社區(qū)成員。曾就職于Trend Micro和中鐵一局。 章鑫 華為云應用服務網格首席系統(tǒng)工程師, 擁有10年以上IT從業(yè)經驗,先后參與華為云PaaS運維平臺、容器自動化運維工 具、服務網格等產品設計與開發(fā),主導了多個服務網格項目的落地與實施工作。Istio社區(qū)成員,對于Pilot、Mixer等多個組 件 的 調 優(yōu) 有 豐 富 的 經 驗。曾 在VIA-Telecom和Nokia擔任研發(fā)專家。 徐中虎 華為云原生開源團隊核心成員,Istio社區(qū)Approver,Kubernetes項目核心貢獻者,現 聚 焦 于Cloud Native、Docker、Kubernetes、Service Mesh等領域,對分布式系統(tǒng)性能優(yōu)化、高可靠、可擴展等有深入的研究。曾就職于網易、Nokia。 徐飛 華為云原生開源團隊核心成員,Istio社區(qū)Approver,Kubernetes、Federation、Kubeflow、Virtual-Kubelet社區(qū)項目成員及核心貢獻者,浙江大學碩士。從2015年開始參與容器平臺的設計與開發(fā),并參與上游社區(qū)的貢獻。 華為云原生團隊 華為云原生團隊創(chuàng)建于2013年,是國內較早參與云原生這一技術領域的團隊之一。作為CNCF(云原生計算基金會)的初創(chuàng)成員和白金會員,華為在容器、服務網格、微服務等云原生技術領域都有著深厚的造詣,擁有10多名CNCF開源項目維護者,在Kubernetes、Istio等核心開源項目上的貢獻位居全球前列。華為云也提供了基于CNCF開源項目所打造的商業(yè)化云原生系列產品,包括云容器引擎、云容器實例、應用服務網格、容器交付流水線等。 華為云原生團隊致力于云原生技術在國內的普及與推廣,通過“容器魔方”官方微信公眾號,以及與CNCF聯(lián)合打造的Cloud Native Days China(CNDC)Meetup、Cloud Native Lives云原生技術在線直播、線下CKA培訓等活動,推動了國內云原生技術的學習與交流熱潮。此次打造的華為云原生技術叢書,內容涵蓋以CNCF項目為主的多個云原生技術熱點,可為廣大云原生技術愛好者提供詳盡、專業(yè)、及時的原理講解與技術剖析。

圖書目錄

原 理 篇
第1章 你好,Istio 2
1.1 Istio是什么 2
1.2 通過示例看看Istio能做什么 4
1.3 Istio與服務治理 6
1.3.1 關于微服務 6
1.3.2 服務治理的三種形態(tài) 8
1.3.3 Istio不只解決了微服務問題 10
1.4 Istio與服務網格 11
1.4.1 時代選擇服務網格 11
1.4.2 服務網格選擇Istio 14
1.5 Istio與Kubernetes 15
1.5.1 Istio,Kubernetes的好幫手 16
1.5.2 Kubernetes,Istio的好基座 18
1.6 本章總結 20
第2章 Istio架構概述 21
2.1 Istio的工作機制 21
2.2 Istio的服務模型 23
2.2.1 Istio的服務 24
2.2.2 Istio的服務版本 26
2.2.3 Istio的服務實例 28
2.3 Istio的主要組件 30
2.3.1 istio-pilot 30
2.3.2 istio-telemetry 32
2.3.3 istio-policy 33
2.3.4 istio-citadel 34
2.3.5 istio-galley 34
2.3.6 istio-sidecar-injector 35
2.3.7 istio-proxy 35
2.3.8 istio-ingressgateway 36
2.3.9 其他組件 37
2.4 本章總結 37
第3章 非侵入的流量治理 38
3.1 Istio流量治理的原理 38
3.1.1 負載均衡 39
3.1.2 服務熔斷 41
3.1.3 故障注入 48
3.1.4 灰度發(fā)布 49
3.1.5 服務訪問入口 54
3.1.6 外部接入服務治理 56
3.2 Istio路由規(guī)則配置:VirtualService 59
3.2.1 路由規(guī)則配置示例 59
3.2.2 路由規(guī)則定義 60
3.2.3 HTTP路由(HTTPRoute) 63
3.2.4 TLS路由(TLSRoute) 78
3.2.5 TCP路由(TCPRoute) 81
3.2.6 三種協(xié)議路由規(guī)則的對比 83
3.2.7 VirtualService的典型應用 84
3.3 Istio目標規(guī)則配置:DestinationRule 89
3.3.1 DestinationRule配置示例 90
3.3.2 DestinationRule規(guī)則定義 90
3.3.3 DestinationRule的典型應用 103
3.4 Istio服務網關配置:Gateway 107
3.4.1 Gateway配置示例 108
3.4.2 Gateway規(guī)則定義 109
3.4.3 Gateway的典型應用 112
3.5 Istio外部服務配置:ServiceEntry 120
3.5.1 ServiceEntry配置示例 120
3.5.2 ServiceEntry規(guī)則的定義和用法 121
3.5.3 ServiceEntry的典型應用 123
3.6 Istio代理規(guī)則配置:Sidecar 126
3.6.1 Sidecar配置示例 126
3.6.2 Sidecar規(guī)則定義 126
3.7 本章總結 129
第4章 可擴展的策略和遙測 131
4.1 Istio策略和遙測的原理 131
4.1.1 應用場景 131
4.1.2 工作原理 136
4.1.3 屬性 137
4.1.4 Mixer的配置模型 140
4.2 Istio遙測適配器配置 147
4.2.1 Prometheus適配器 148
4.2.2 Fluentd適配器 155
4.2.3 StatsD適配器 159
4.2.4 Stdio適配器 161
4.2.5 Zipkin適配器 163
4.2.6 廠商適配器 168
4.3 Istio策略適配器配置 169
4.3.1 List適配器 169
4.3.2 Denier適配器 171
4.3.3 Memory Quota適配器 172
4.3.4 Redis Quota適配器 175
4.4 Kubernetes Env適配器配置 178
4.5 本章總結 181
第5章 可插拔的服務安全 182
5.1 Istio服務安全的原理 182
5.1.1 認證 185
5.1.2 授權 189
5.1.3 密鑰證書管理 192
5.2 Istio服務認證配置 193
5.2.1 認證策略配置示例 193
5.2.2 認證策略的定義 194
5.2.3 TLS訪問配置 196
5.2.4 認證策略的典型應用 200
5.3 Istio服務授權配置 202
5.3.1 授權啟用配置 202
5.3.2 授權策略配置 203
5.3.3 授權策略的典型應用 207
5.4 本章總結 210
第6章 透明的Sidecar機制 211
6.1 Sidecar注入 211
6.1.1 Sidecar Injector自動注入的原理 214
6.1.2 Sidecar注入的實現 216
6.2 Sidecar流量攔截 219
6.2.1 iptables的基本原理 220
6.2.2 iptables的規(guī)則設置 223
6.2.3 流量攔截原理 224
6.3 本章總結 228
第7章 多集群服務治理 230
7.1 Istio多集群服務治理 230
7.1.1 Istio多集群的相關概念 230
7.1.2 Istio多集群服務治理現狀 231
7.2 多集群模式1:多控制面 232
7.2.1 服務DNS解析的原理 233
7.2.2 Gateway連接的原理 237
7.3 多集群模式2:VPN直連單控制面 238
7.4 多集群模式3:集群感知服務路由單控制面 240
7.5 本章總結 246

實 踐 篇
第8章 環(huán)境準備 248
8.1 在本地搭建Istio環(huán)境 248
8.1.1 安裝Kubernetes集群 248
8.1.2 安裝Helm 249
8.1.3 安裝Istio 250
8.2 在公有云上使用Istio 253
8.3 嘗鮮Istio命令行 255
8.4 應用示例 257
8.4.1 Weather Forecast簡介 257
8.4.2 Weather Forecast部署 258
8.5 本章總結 259
第9章 流量監(jiān)控 260
9.1 預先準備:安裝插件 260
9.2 調用鏈跟蹤 261
9.3 指標監(jiān)控 265
9.3.1 Prometheus 265
9.3.2 Grafana 268
9.4 服務網格監(jiān)控 273
9.5 本章總結 277
第10章 灰度發(fā)布 278
10.1 預先準備:將所有流量都路由到各個服務的v1版本 278
10.2 基于流量比例的路由 279
10.3 基于請求內容的路由 283
10.4 組合條件路由 284
10.5 多服務灰度發(fā)布 286
10.6 TCP服務灰度發(fā)布 288
10.7 自動化灰度發(fā)布 290
10.7.1 正常發(fā)布 291
10.7.2 異常發(fā)布 294
第11章 流量治理 296
11.1 流量負載均衡 296
11.1.1 ROUND_ROBIN模式 296
11.1.2 RANDOM模式 298
11.2 會話保持 299
11.2.1 實戰(zhàn)目標 300
11.2.2 實戰(zhàn)演練 300
11.3 故障注入 301
11.3.1 延遲注入 301
11.3.2 中斷注入 303
11.4 超時 304
11.5 重試 306
11.6 HTTP重定向 308
11.7 HTTP重寫 309
11.8 熔斷 310
11.9 限流 313
11.9.1 普通方式 314
11.9.2 條件方式 315
11.10 服務隔離 317
11.10.1 實戰(zhàn)目標 317
11.10.2 實戰(zhàn)演練 317
11.11 影子測試 319
11.12 本章總結 322
第12章 服務保護 323
12.1 網關加密 323
12.1.1 單向TLS網關 323
12.1.2 雙向TLS網關 326
12.1.3 用SDS加密網關 328
12.2 訪問控制 331
12.2.1 黑名單 331
12.2.2 白名單 332
12.3 認證 334
12.3.1 實戰(zhàn)目標 334
12.3.2 實戰(zhàn)演練 334
12.4 授權 336
12.4.1 命名空間級別的訪問控制 336
12.4.2 服務級別的訪問控制 339
12.5 本章總結 341
第13章 多集群管理 342
13.1 實戰(zhàn)目標 342
13.2 實戰(zhàn)演練 342
13.3 本章總結 350

架 構 篇
第14章 司令官Pilot 352
14.1 Pilot的架構 352
14.1.1 Istio的服務模型 354
14.1.2 xDS協(xié)議 356
14.2 Pilot的工作流程 360
14.2.1 Pilot的啟動與初始化 361
14.2.2 服務發(fā)現 363
14.2.3 配置規(guī)則發(fā)現 368
14.2.4 Envoy的配置分發(fā) 376
14.3 Pilot的插件 383
14.3.1 安全插件 385
14.3.2 健康檢查插件 390
14.3.3 Mixer插件 391
14.4 Pilot的設計亮點 392
14.4.1 三級緩存優(yōu)化 392
14.4.2 去抖動分發(fā) 393
14.4.3 增量EDS 394
14.4.4 資源隔離 395
14.5 本章總結 396
第15章 守護神Mixer 397
15.1 Mixer的整體架構 397
15.2 Mixer的服務模型 398
15.2.1 Template 399
15.2.2 Adapter 401
15.3 Mixer的工作流程 403
15.3.1 啟動初始化 403
15.3.2 用戶配置信息規(guī)則處理 409
15.3.3 訪問策略的執(zhí)行 416
15.3.4 無侵入遙測 421
15.4 Mixer的設計亮點 423
15.5 如何開發(fā)Mixer Adapter 424
15.6 本章總結 438
第16章 安全碉堡Citadel 439
16.1 Citadel的架構 439
16.2 Citadel的工作流程 441
16.3 本章總結 449
第17章 高性能代理Envoy 450
17.1 Envoy的架構 450
17.2 Envoy的特性 451
17.3 Envoy的模塊結構 452
17.4 Envoy的線程模型 453
17.5 Envoy的內存管理 455
17.6 Envoy的流量控制 456
17.7 Envoy與Istio的配合 457
17.3 本章總結 459
第18章 代理守護進程Pilot-agent 460
18.1 為什么需要Pilot-agent 461
18.2 Pilot-agent的工作流程 461
18.3 本章總結 468
第19章 配置中心Galley 469
19.1 Galley的架構 469
19.2 Galley的工作流程 471
19.3 本章總結 482

源 碼 篇
第20章 Pilot源碼解析 484
20.1 進程啟動流程 484
20.2 關鍵代碼分析 486
20.3 本章總結 514
第21章 Mixer源碼解析 515
21.1 進程啟動流程 515
21.2 關鍵代碼分析 5201
21.3 本章總結 543
第22章 Citadel源碼解析 544
22.1 進程啟動流程 544
22.2 關鍵代碼分析 548
22.3 本章總結 558
第23章 Envoy源碼解析 559
23.1 Envoy的初始化 559
23.2 Envoy的運行和建立新連接 564
23.3 Envoy對數據的讀取、接收及處理 567
23.4 Envoy發(fā)送數據到服務端 570
23.5 本章總結 573
第24章 Galley源碼解析 574
24.1 進程啟動流程 574
24.2 關鍵代碼分析 580
24.3 本章總結 589
結語 590
附錄A 源碼倉庫介紹 592
附錄B 實踐經驗和總結 598

**篇幅限制,完整目錄請見本書**

本目錄推薦

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