Istio 權威指南(上):雲原生服務網格 Istio 原理與實踐

張超盟//徐中虎//張偉//冷雪著

  • 出版商: 電子工業
  • 出版日期: 2023-04-01
  • 售價: $828
  • 貴賓價: 9.5$787
  • 語言: 簡體中文
  • 頁數: 491
  • 裝訂: 平裝
  • ISBN: 7121448084
  • ISBN-13: 9787121448089
  • 立即出貨

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

商品描述

本書是《Istio權威指南》的上冊,重點講解Istio的原理和實踐,分為原理篇和實踐篇。
原理篇介紹Istio的相關概念、主要架構和工作原理。
其中,第1章通過介紹Istio與微服務、服務網格、Kubernetes這幾個雲原生關鍵技術的聯繫,幫助讀者立體地理解Istio的概念。
第2章概述Istio的工作機制、服務模型、總體架構和主要組件。
第3、4、5章通過較大篇幅介紹Istio提供的非侵入性流量治理、可觀測性和策略控制、服務安全這三大核心特性,
包括其各自解決的問題、實現原理、配置模型、配置定義和典型應用,可以滿足大多數讀者在工作中的具體需求。
第6章重點介紹自動注入和流量攔截的透明代理原理;
第7章介紹Istio正在快速發展的多基礎設施流量管理,包括對各種多集群模型、容器、虛擬機的統一管理等。
 實踐篇通過貫穿全書的一個天氣預報應用來實踐Istio的非侵入能力。其中,第8章介紹如何從零開始搭建環境。
第9章通過Istio的非侵入方式生成指標、拓撲、調用鍊和訪問日誌等;
第10章介紹多種灰度分流方式,帶讀者了解Istio靈活的分流策略;
第11章描述負載均衡、故障轉移、故障注入、超時、重試、重定向、重寫、熔斷、異常點檢查、限流等流量策略的實踐;
第12章講解兩種認證策略及其與授權的配合,以及Istio倡導的零信任網絡的關鍵技術;
第13章講解入口網關和出口網關的流量管理,展示服務網格對東西向流量和南北向流量的管理;
第14章則是對多集群和虛擬機環境下流量治理的實踐。
 本書適合入門級讀者從零開始了解Istio的概念、原理和用法,
也適合有一定基礎的讀者深入了解Istio的設計理念。

作者簡介

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

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

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

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

目錄大綱

原理篇

*1章 你好,Istio  2
1.1 Istio是什麼 2
1.2 Istio能做什麼 3
1.3 Istio與服務治理 5
1.3.1 關於微服務 5
1.3.2 服務治理的形態 7
1.3.3 Istio不只解決微服務問題 9
1.4 Istio與服務網格 11
1.4.1 雲原生選擇服務網格 11
1.4.2 服務網格選擇Istio  14
1.5 Istio與Kubernetes  17
1.5.1 Istio,Kubernetes的好幫手 18
1.5.2 Kubernetes,Istio的好基座 20
1.6 本章小結 23
*2章 Istio的架構概述 25
2.1 Istio的架構及原理 25
2.2 Istio的服務模型 28
2.2.1 Istio的服務 29
2.2.2 Istio的服務版本 30
2.2.3 Istio的服務實例 32
2.3 Istio的主要組件 34
2.3.1 控制面的組件 34
2.3.2 數據面的組件 38
2.3.3 其他組件 43
2.4 本章小結 43
第3章 流量治理的原理 44
3.1 概念和原理 44
3.1.1 負載均衡 46
3.1.2 服務熔斷 48
3.1.3 故障注入 54
3.1.4 灰度發布 55
3.1.5 故障轉移 60
3.1.6 入口流量 63
3.1.7 出口流量 68
3.2 VirtualService(虛擬服務) 71
3.2.1 入門示例 71
3.2.2 配置模型 72
3.2.3 配置定義 73
3.2.4 HTTPRoute(HTTP路由) 75
3.2.5 TLSRoute(TLS路由) 89
3.2.6 TCPRoute(TCP路由) 91
3.2.7 三種協議的路由規則對比 92
3.2.8 典型應用 93
3.3 DestinationRule(目標規則) 101
3.3.1 入門示例 101
3.3.2 配置模型 101
3.3.3 配置定義 103
3.3.4 典型應用 116
3.4 Gateway(服務網關) 120
3.4.1 入門示例 120
3.4.2 配置模型 122
3.4.3 配置定義 122
3.4.4 典型應用 127
3.5 ServiceEntry(服務條目) 138
3.5.1 入門示例 139
3.5.2 配置模型 139
3.5.3 配置定義 140
3.5.4 典型應用 146
3.6 WorkloadEntry(工作負載) 149
3.6.1 入門示例 149
3.6.2 配置模型 150
3.6.3 配置定義 151
3.6.4 典型應用 152
3.7 WorkloadGroup(工作負載組) 154
3.7.1 入門示例 154
3.7.2 配置模型 154
3.7.3 配置定義 155
3.7.4 典型應用 156
3.8 Sidecar(服務網格代理) 157
3.8.1 入門示例 157
3.8.2 配置模型 158
3.8.3 配置定義 158
3.8.4 典型應用 161
3.9 EnvoyFilter(Envoy過濾器) 163
3.9.1 入門示例 164
3.9.2 配置模型 164
3.9.3 配置定義 165
3.9.4 典型應用 177
3.10 WasmPlugin(Wasm插件) 183
3.10.1 入門示例 183
3.10.2 配置模型 184
3.10.3 配置定義 184
3.10.4 典型應用 185
3.11 本章小結 186
第4章 可觀測性和策略控制的原理 188
4.1 概念和原理 188
4.1.1 可觀測性的概念 188
4.1.2 訪問指標(Metrics) 194
4.1.3 調用鏈 198
4.1.4 訪問日誌 202
4.1.5 限流 205
4.2 Istio訪問指標採集 207
4.2.1 指標採集的原理 208
4.2.2 指標採集的配置 211
4.3 Istio調用鏈採集 218
4.3.1 調用鏈採集的原理 218
4.3.2 調用鏈採集的配置 220
4.4 Istio中的訪問日誌採集 226
4.4.1 訪問日誌採集的原理 226
4.4.2 訪問日誌採集的配置 228
4.5 Istio限流 236
4.5.1 限流的原理 236
4.5.2 限流的配置 238
4.6 元數據交換 248
4.6.1 元數據交換的原理 249
4.6.2 元數據交換的配置 250
4.7 本章小結 252
第5章 服務安全的原理 255
5.1 概念和原理 255
5.1.1 對等身份認證 257
5.1.2 服務請求認證 263
5.1.3 服務訪問授權 268
5.2 PeerAuthentication(對等身份認證) 273
5.2.1 入門示例 273
5.2.2 配置模型 274
5.2.3 配置定義 274
5.2.4 典型應用 275
5.3 RequestAuthentication(服務請求認證) 278
5.3.1 入門示例 278
5.3.2 配置模型 279
5.3.3 配置定義 279
5.3.4 典型應用 281
5.4 AuthorizationPolicy(服務授權策略) 283
5.4.1 入門示例 283
5.4.2 配置模型 284
5.4.3 配置定義 284
5.4.4 典型應用 288
5.5 本章小結 293
第6章 服務網格數據面代理Sidecar  294
6.1 Sidecar的透明注入原理 294
6.1.1 Sidecar的注入原理 294
6.1.2 自動注入服務 296
6.1.3 自動注入流程 298
6.2 Sidecar的流量攔截原理 301
6.2.1 iptables的基本原理 302
6.2.2 Sidecar Redirect模式 308
6.2.3 Sidecar Tproxy模式 317
6.2.4 Ingress網關模式 330
6.3 本章小結 334
第7章 異構基礎設施 335
7.1 多集群服務治理的原理 335
7.1.1 Istio多集群相關的概念 335
7.1.2 Istio多集群管理 336
7.2 多集群的服務網格模型 337
7.2.1 扁平網絡單控制面模型 337
7.2.2 非扁平網絡單控制面模型 339
7.2.3 扁平網絡多控制面模型 344
7.2.4 非扁平網絡多控制面模型 346
7.3 多集群的關鍵技術 347
7.3.1 異構環境DNS  347
7.3.2 東西向網關 351
7.4 異構服務治理的原理 352
7.4.1 治理純虛擬機服務 352
7.4.2 治理混合服務 354
7.5 本章小結 355

實踐篇
第8章 環境準備 358
8.1 在本地搭建Istio環境 358
8.1.1 部署Kubernetes集群 358
8.1.2 安裝Istio  359
8.2 嚐鮮Istio命令行 361
8.3 應用示例 362
8.3.1 Weather Forecast簡介 362
8.3.2 部署Weather Forecast  363
8.4 本章小結 364
第9章 可觀測性實踐 365
9.1 預先準備 365
9.2 調用鏈跟踪 366
9.3 指標監控 368
9.3.1 指標配置 369
9.3.2 指標採集:Prometheus  372
9.3.3 指標管理:Grafana  374
9.4 服務網格應用拓撲 379
9.5 訪問日誌 383
9.6 本章小結 384
*10章 灰度發布實踐 385
10.1 預先準備 385
10.2 基於流量比例的路由 386
10.3 基於請求內容的路由 389
10.4 組合條件路由 391
10.5 多服務灰度發布 393
10.6 本章小結 395
*11章 流量治理實踐 396
11.1 ROUND_ROBIN負載均衡 396
11.2 RANDOM負載均衡 397
11.3 地域負載均衡 399
11.3.1 基於權重的地域負載均衡 399
11.3.2 用於故障轉移的地域負載均衡 402
11.4 會話保持 407
11.5 故障注入 409
11.5.1 延遲注入 409
11.5.2 中斷注入 410
11.6 超時 411
11.7 重試 413
11.8 HTTP重定向 415
11.9 HTTP重寫 416
11.10 熔斷與連接池 417
11.11 熔斷異常點檢測 420
11.12 限流 423
11.12.1 全局限流 423
11.12.2 本地限流 426
11.13 服務隔離 429
11.14 流量鏡像 431
11.15 本章小結 433
*12章 服務安全實踐 434
12.1 雙向認證 434
12.2 JWT認證 437
12.3 特定命名空間的訪問授權 440
12.4 特定源地址的授權 442
12.5 本章小結 444
*13章 網關流量實踐 445
13.1 入口網關 445
13.2 單向TLS網關 447
13.3 雙向TLS網關 450
13.4 訪問服務網格外部服務 452
13.5 出口網關 454
13.6 本章小結 456
*14章 異構基礎設施實踐 457
14.1 多集群灰度發布 457
14.2 多集群非扁平網絡負載均衡 461
14.3 多集群非扁平網絡故障轉移 464
14.4 管理虛擬機應用 469
14.5 本章小結 472
附錄A Istio訪問日誌的應答標記案例 473
結語 491