注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信云原生服務(wù)網(wǎng)格Istio:原理、實(shí)踐、架構(gòu)與源碼解析

云原生服務(wù)網(wǎng)格Istio:原理、實(shí)踐、架構(gòu)與源碼解析

云原生服務(wù)網(wǎng)格Istio:原理、實(shí)踐、架構(gòu)與源碼解析

定 價(jià):¥139.00

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

ISBN: 9787121366536 出版時(shí)間: 2019-07-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 628 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

原 理 篇
第1章 你好,Istio 2
1.1 Istio是什么 2
1.2 通過(guò)示例看看Istio能做什么 4
1.3 Istio與服務(wù)治理 6
1.3.1 關(guān)于微服務(wù) 6
1.3.2 服務(wù)治理的三種形態(tài) 8
1.3.3 Istio不只解決了微服務(wù)問(wèn)題 10
1.4 Istio與服務(wù)網(wǎng)格 11
1.4.1 時(shí)代選擇服務(wù)網(wǎng)格 11
1.4.2 服務(wù)網(wǎng)格選擇Istio 14
1.5 Istio與Kubernetes 15
1.5.1 Istio,Kubernetes的好幫手 16
1.5.2 Kubernetes,Istio的好基座 18
1.6 本章總結(jié) 20
第2章 Istio架構(gòu)概述 21
2.1 Istio的工作機(jī)制 21
2.2 Istio的服務(wù)模型 23
2.2.1 Istio的服務(wù) 24
2.2.2 Istio的服務(wù)版本 26
2.2.3 Istio的服務(wù)實(shí)例 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 本章總結(jié) 37
第3章 非侵入的流量治理 38
3.1 Istio流量治理的原理 38
3.1.1 負(fù)載均衡 39
3.1.2 服務(wù)熔斷 41
3.1.3 故障注入 48
3.1.4 灰度發(fā)布 49
3.1.5 服務(wù)訪問(wèn)入口 54
3.1.6 外部接入服務(wù)治理 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ī)則的對(duì)比 83
3.2.7 VirtualService的典型應(yīng)用 84
3.3 Istio目標(biāo)規(guī)則配置:DestinationRule 89
3.3.1 DestinationRule配置示例 90
3.3.2 DestinationRule規(guī)則定義 90
3.3.3 DestinationRule的典型應(yīng)用 103
3.4 Istio服務(wù)網(wǎng)關(guān)配置:Gateway 107
3.4.1 Gateway配置示例 108
3.4.2 Gateway規(guī)則定義 109
3.4.3 Gateway的典型應(yīng)用 112
3.5 Istio外部服務(wù)配置:ServiceEntry 120
3.5.1 ServiceEntry配置示例 120
3.5.2 ServiceEntry規(guī)則的定義和用法 121
3.5.3 ServiceEntry的典型應(yīng)用 123
3.6 Istio代理規(guī)則配置:Sidecar 126
3.6.1 Sidecar配置示例 126
3.6.2 Sidecar規(guī)則定義 126
3.7 本章總結(jié) 129
第4章 可擴(kuò)展的策略和遙測(cè) 131
4.1 Istio策略和遙測(cè)的原理 131
4.1.1 應(yīng)用場(chǎng)景 131
4.1.2 工作原理 136
4.1.3 屬性 137
4.1.4 Mixer的配置模型 140
4.2 Istio遙測(cè)適配器配置 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 本章總結(jié) 181
第5章 可插拔的服務(wù)安全 182
5.1 Istio服務(wù)安全的原理 182
5.1.1 認(rèn)證 185
5.1.2 授權(quán) 189
5.1.3 密鑰證書管理 192
5.2 Istio服務(wù)認(rèn)證配置 193
5.2.1 認(rèn)證策略配置示例 193
5.2.2 認(rèn)證策略的定義 194
5.2.3 TLS訪問(wèn)配置 196
5.2.4 認(rèn)證策略的典型應(yīng)用 200
5.3 Istio服務(wù)授權(quán)配置 202
5.3.1 授權(quán)啟用配置 202
5.3.2 授權(quán)策略配置 203
5.3.3 授權(quán)策略的典型應(yīng)用 207
5.4 本章總結(jié) 210
第6章 透明的Sidecar機(jī)制 211
6.1 Sidecar注入 211
6.1.1 Sidecar Injector自動(dòng)注入的原理 214
6.1.2 Sidecar注入的實(shí)現(xiàn) 216
6.2 Sidecar流量攔截 219
6.2.1 iptables的基本原理 220
6.2.2 iptables的規(guī)則設(shè)置 223
6.2.3 流量攔截原理 224
6.3 本章總結(jié) 228
第7章 多集群服務(wù)治理 230
7.1 Istio多集群服務(wù)治理 230
7.1.1 Istio多集群的相關(guān)概念 230
7.1.2 Istio多集群服務(wù)治理現(xiàn)狀 231
7.2 多集群模式1:多控制面 232
7.2.1 服務(wù)DNS解析的原理 233
7.2.2 Gateway連接的原理 237
7.3 多集群模式2:VPN直連單控制面 238
7.4 多集群模式3:集群感知服務(wù)路由單控制面 240
7.5 本章總結(jié) 246

實(shí) 踐 篇
第8章 環(huán)境準(zhǔ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 應(yīng)用示例 257
8.4.1 Weather Forecast簡(jiǎn)介 257
8.4.2 Weather Forecast部署 258
8.5 本章總結(jié) 259
第9章 流量監(jiān)控 260
9.1 預(yù)先準(zhǔn)備:安裝插件 260
9.2 調(diào)用鏈跟蹤 261
9.3 指標(biāo)監(jiān)控 265
9.3.1 Prometheus 265
9.3.2 Grafana 268
9.4 服務(wù)網(wǎng)格監(jiān)控 273
9.5 本章總結(jié) 277
第10章 灰度發(fā)布 278
10.1 預(yù)先準(zhǔn)備:將所有流量都路由到各個(gè)服務(wù)的v1版本 278
10.2 基于流量比例的路由 279
10.3 基于請(qǐng)求內(nèi)容的路由 283
10.4 組合條件路由 284
10.5 多服務(wù)灰度發(fā)布 286
10.6 TCP服務(wù)灰度發(fā)布 288
10.7 自動(dòng)化灰度發(fā)布 290
10.7.1 正常發(fā)布 291
10.7.2 異常發(fā)布 294
第11章 流量治理 296
11.1 流量負(fù)載均衡 296
11.1.1 ROUND_ROBIN模式 296
11.1.2 RANDOM模式 298
11.2 會(huì)話保持 299
11.2.1 實(shí)戰(zhàn)目標(biāo) 300
11.2.2 實(shí)戰(zhàn)演練 300
11.3 故障注入 301
11.3.1 延遲注入 301
11.3.2 中斷注入 303
11.4 超時(shí) 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 服務(wù)隔離 317
11.10.1 實(shí)戰(zhàn)目標(biāo) 317
11.10.2 實(shí)戰(zhàn)演練 317
11.11 影子測(cè)試 319
11.12 本章總結(jié) 322
第12章 服務(wù)保護(hù) 323
12.1 網(wǎng)關(guān)加密 323
12.1.1 單向TLS網(wǎng)關(guān) 323
12.1.2 雙向TLS網(wǎng)關(guān) 326
12.1.3 用SDS加密網(wǎng)關(guān) 328
12.2 訪問(wèn)控制 331
12.2.1 黑名單 331
12.2.2 白名單 332
12.3 認(rèn)證 334
12.3.1 實(shí)戰(zhàn)目標(biāo) 334
12.3.2 實(shí)戰(zhàn)演練 334
12.4 授權(quán) 336
12.4.1 命名空間級(jí)別的訪問(wèn)控制 336
12.4.2 服務(wù)級(jí)別的訪問(wèn)控制 339
12.5 本章總結(jié) 341
第13章 多集群管理 342
13.1 實(shí)戰(zhàn)目標(biāo) 342
13.2 實(shí)戰(zhàn)演練 342
13.3 本章總結(jié) 350

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

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

**篇幅限制,完整目錄請(qǐng)見本書**

本目錄推薦

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