關于我們
書單推薦
新書推薦
|
深入理解Istio:云原生服務網格進階實戰(zhàn) 讀者對象:服務網格技術愛好者,云原生從業(yè)者,微服務開發(fā)者和架構師
本書是云原生社區(qū)多位服務網格技術專家的鼎力之作。全書共 10 章,內容涉及 Service Mesh 概述、核心功能、架構解析、安裝與部署、流量控制、可觀察性、安全、進階實戰(zhàn)、故障排查、Service Mesh 生態(tài),分別從概念、實踐和生態(tài)擴展 3 個層面為讀者系統(tǒng)介紹了 Istio 的相關知識,著重介紹了 Istio 在 1.5 版本以后的重大變化,從底層深入剖析了 Istio 的各項核心功能。本書能為云計算領域的從業(yè)者,尤其是微服務領域的開發(fā)者在落地 Istio 時提供理論指導和實際借鑒。
云原生社區(qū)服務于云原生終端用戶,由宋凈超和其他幾位云原生技術意見領袖共同發(fā)起,成立于2020年5月。云原生社區(qū)的前身是ServiceMesher社區(qū),該社區(qū)成立于2018年5月,是國內推廣服務網格技術的先驅陣地。云原生社區(qū)自成立以來,圍繞Kubernetes、Istio、邊緣計算、Dapr等云原生相關技術,與從業(yè)人員分享優(yōu)質內容,秉承 “共識、共治、共建、共享” 的原則,組織了多場豐富多彩的線上和線下活動。要想了解更多,請訪問云原生社區(qū)官方網站,或關注云原生社區(qū)微信公眾號Cloud Native Community。
第 1 章 Service Mesh 概述 ............................................................................................................ 1
1.1 Service Mesh 基本概念 ............................................................................................... 2 1.2 后 Kubernetes 時代的微服務 ....................................................................................... 5 1.2.1 重要觀點 ......................................................................................................... 6 1.2.2 Kubernetes 與 Service Mesh .............................................................................. 6 1.2.3 kube-proxy 組件 ............................................................................................... 8 1.2.4 Kubernetes Ingress 與 Istio Gateway .................................................................. 8 1.2.5 xDS 協議 ......................................................................................................... 9 1.2.6 Envoy ............................................................................................................ 11 1.2.7 Istio Service Mesh .......................................................................................... 12 1.3 什么是 Istio .............................................................................................................. 12 1.3.1 為什么使用 Istio ............................................................................................ 13 1.3.2 Istio 的平臺支持 ............................................................................................ 13 1.4 本章小結 .................................................................................................................. 14 第 2 章 核心功能 .......................................................................................................................... 15 2.1 流量控制 .................................................................................................................. 15 2.1.1 請求路由和流量轉移 ..................................................................................... 16 2.1.2 彈性功能 ....................................................................................................... 17 2.1.3 調試能力 ....................................................................................................... 18 2.1.4 實現流量控制的自定義資源 .......................................................................... 19 2.2 安全 ......................................................................................................................... 20 2.2.1 認證 .............................................................................................................. 20 2.2.2 授權 .............................................................................................................. 21 2.3 可觀察性 .................................................................................................................. 21 2.4 本章小結 .................................................................................................................. 23 第 3 章 架構解析 .......................................................................................................................... 24 3.1 Istio 的架構組成 ....................................................................................................... 24 3.2 Istio 的設計目標 ....................................................................................................... 25 3.3 Istio 的架構變遷 ....................................................................................................... 26 3.4 控制平面 .................................................................................................................. 27 3.4.1 Pilot ............................................................................................................... 27 3.4.2 Citadel ........................................................................................................... 37 3.4.3 Galley ............................................................................................................ 40 3.5 數據平面 .................................................................................................................. 45 3.5.1 數據平面的概念 ............................................................................................ 45 3.5.2 Sidecar 注入及透明流量劫持 ......................................................................... 47 3.5.3 Sidecar 流量路由機制分析 ............................................................................. 57 3.5.4 Envoy ............................................................................................................ 86 3.5.5 MOSN ........................................................................................................... 93 3.6 本章小結 .................................................................................................................. 98 第 4 章 安裝與部署 ...................................................................................................................... 99 4.1 安裝 ......................................................................................................................... 99 4.1.1 環(huán)境準備 ....................................................................................................... 99 4.1.2 安裝 Kubernetes 集群 ................................................................................... 100 4.1.3 安裝 Istio ..................................................................................................... 100 4.2 升級 ....................................................................................................................... 102 4.2.1 金絲雀升級 ................................................................................................. 102 4.2.2 熱升級 ......................................................................................................... 104 4.3 Bookinfo 實例 ......................................................................................................... 104 4.3.1 環(huán)境準備 ..................................................................................................... 105 4.3.2 部署應用 ..................................................................................................... 106 4.3.3 啟動應用服務 .............................................................................................. 106 4.3.4 確定 Ingress 的 IP 地址和端口 ..................................................................... 107 4.3.5 集群外部訪問應用 ....................................................................................... 108 4.4 本章小結 ................................................................................................................ 108 第 5 章 流量控制 ........................................................................................................................ 109 5.1 流量控制 CRD ........................................................................................................ 109 5.1.1 VirtualService ............................................................................................... 110 5.1.2 DestinationRule ............................................................................................ 111 5.1.3 Gateway ....................................................................................................... 112 5.1.4 ServiceEntry ................................................................................................. 114 5.1.5 Sidecar ......................................................................................................... 115 5.2 路由 ....................................................................................................................... 116 5.2.1 VirtualService ............................................................................................... 116 5.2.2 路由規(guī)則 ..................................................................................................... 118 5.2.3 DestinationRule ............................................................................................ 120 5.2.4 Gateway ....................................................................................................... 122 5.2.5 ServiceEntry ................................................................................................. 123 5.3 流量鏡像 ................................................................................................................ 127 5.3.1 流量鏡像能夠做什么 ................................................................................... 127 5.3.2 流量鏡像的實現原理 ................................................................................... 128 5.3.3 流量鏡像的配置 .......................................................................................... 130 5.3.4 流量鏡像實踐 .............................................................................................. 132 5.4 Ingress/Egress ......................................................................................................... 141 5.4.1 Ingress ......................................................................................................... 142 5.4.2 Egress .......................................................................................................... 158 5.5 超時 ....................................................................................................................... 174 5.6 重試 ....................................................................................................................... 178 5.7 熔斷 ....................................................................................................................... 181 5.8 故障注入 ................................................................................................................ 184 5.8.1 HTTPFaultInjection.Abort ............................................................................. 185 5.8.2 HTTPFaultInjection.Delay ............................................................................. 186 5.9 本章小結 ................................................................................................................ 189 第 6 章 可觀察性 ........................................................................................................................ 190 6.1 指標監(jiān)控 ................................................................................................................ 190 6.1.1 Prometheus .................................................................................................. 191 6.1.2 Prometheus 配置解析 ................................................................................... 195 6.1.3 Prometheus-Istio 指標 ................................................................................... 200 6.2 可視化 .................................................................................................................... 202 6.2.1 Grafana ........................................................................................................ 203 6.2.2 Kiali ............................................................................................................ 221 6.3 日志 ....................................................................................................................... 235 6.3.1 傳統(tǒng)日志 ..................................................................................................... 235 6.3.2 云原生日志 ................................................................................................. 236 6.3.3 Istio 日志 ..................................................................................................... 236 6.3.4 ELK ............................................................................................................ 236 6.3.5 EFK ............................................................................................................. 250 6.4 分布式追蹤 ............................................................................................................ 264 6.4.1 Jaeger .......................................................................................................... 265 6.4.2 Zipkin .......................................................................................................... 272 6.4.3 SkyWalking .................................................................................................. 277 6.5 本章小結 ................................................................................................................ 293 第 7 章 安全 ............................................................................................................................... 294 7.1 認證 ....................................................................................................................... 294 7.1.1 對等認證 ..................................................................................................... 296 7.1.2 請求認證 ..................................................................................................... 307 7.2 授權 ....................................................................................................................... 312 7.2.1 授權策略 ..................................................................................................... 313 7.2.2 全局策略 ..................................................................................................... 314 7.2.3 局部策略 ..................................................................................................... 315 7.2.4 Match label .................................................................................................. 316 7.2.5 匹配算法 ..................................................................................................... 317 7.2.6 規(guī)則詳解 ..................................................................................................... 318 7.2.7 操作實例 ..................................................................................................... 320 7.2.8 JWT 授權 .................................................................................................... 325 7.3 本章小結 ................................................................................................................ 337 第 8 章 進階實戰(zhàn) ........................................................................................................................ 338 8.1 集成服務注冊中心 .................................................................................................. 338 8.1.1 Istio 服務模型 .............................................................................................. 338 8.1.2 Pilot 服務模型源碼分析 ............................................................................... 339 8.1.3 第三方服務注冊表集成 ............................................................................... 341 8.2 對接 API 網關 ........................................................................................................ 342 8.2.1 Envoy .......................................................................................................... 343 8.2.2 預備工作 ..................................................................................................... 343 8.2.3 開始監(jiān)聽 ..................................................................................................... 344 8.2.4 一條路由 ..................................................................................................... 346 8.2.5 一個服務 ..................................................................................................... 348 8.3 分布式追蹤增強 ..................................................................................................... 352 8.3.1 OpenTracing ................................................................................................ 352 8.3.2 OpenTracing 概念模型 ................................................................................. 352 8.3.3 OpenTracing 數據模型 ................................................................................. 353 8.3.4 跨進程調用信息傳播 ................................................................................... 354 8.4 實現方法級別的調用跟蹤 ....................................................................................... 356 8.4.1 Istio 的分布式追蹤 ...................................................................................... 356 8.4.2 使用 OpenTracing 傳遞分布式跟蹤上下文 ................................................... 359 8.4.3 在 Istio 中加入方法級別的調用跟蹤 ............................................................ 360 8.5 實現 Kafka 消息跟蹤 .............................................................................................. 363 8.5.1 eshop 實例程序結構 .................................................................................... 363 8.5.2 將 Kafka 消息處理加入調用鏈路跟蹤 .......................................................... 364 8.5.3 安裝 Kafka 集群 .......................................................................................... 365 8.5.4 部署實例應用 .............................................................................................. 365 8.5.5 將調用跟蹤上下文從 Kafka 傳遞到 REST 服務 ............................................ 367 8.6 部署模型 ................................................................................................................ 371 8.6.1 集群模型與控制平面模型 ............................................................................ 371 8.6.2 網絡模型 ..................................................................................................... 374 8.6.3 網格模型 ..................................................................................................... 374 8.6.4 身份和信任模型 .......................................................................................... 375 8.6.5 租戶模型 ..................................................................................................... 376 8.7 多集群部署與管理 .................................................................................................. 377 8.7.1 多控制平面 ................................................................................................. 377 8.7.2 單控制平面 ................................................................................................. 382 8.8 智能 DNS ............................................................................................................... 387 8.8.1 待解決問題 ................................................................................................. 388 8.8.2 功能開啟 ..................................................................................................... 389 8.8.3 訪問外部服務 .............................................................................................. 390 8.8.4 自動地址分配 .............................................................................................. 391 8.8.5 跨集群訪問 ................................................................................................. 391 8.9 本章小結 ................................................................................................................ 392 第 9 章 故障排查 ........................................................................................................................ 393 9.1 常見使用問題 ......................................................................................................... 393 9.1.1 Service 端口命名約束 .................................................................................. 394 9.1.2 流量控制規(guī)則下發(fā)順序問題 ........................................................................ 395 9.1.3 請求中斷分析 .............................................................................................. 396 9.1.4 Sidecar 和 user container 的啟動順序 ............................................................ 399 9.1.5 Ingress Gateway 和 Service 端口聯動 ............................................................ 400 9.1.6 VirtualService 作用域 ................................................................................... 401 9.1.7 VirtualService 不支持 host fragment .............................................................. 402 9.1.8 全鏈路跟蹤并非完全透明接入 ..................................................................... 403 9.1.9 mTLS 導致連接中斷 .................................................................................... 404 9.2 診斷工具 ................................................................................................................ 405 9.2.1 istioctl 命令行工具安裝 ............................................................................... 406 9.2.2 使用 proxy-status 命令進行診斷 ................................................................... 408 9.2.3 使用 proxy-config 命令進行診斷 .................................................................. 412 9.2.4 使用 analyze 命令診斷 ................................................................................. 415 9.2.5 啟用 Galley 自動配置分析診斷 .................................................................... 420 9.2.6 采用 describe 命令驗證并理解網格配置 ....................................................... 422 9.2.7 ControlZ 自檢工具 ....................................................................................... 427 9.3 本章小結 ................................................................................................................ 429 第 10 章 Service Mesh 生態(tài) ...................................................................................................... 430 10.1 開源項目 .............................................................................................................. 430 10.1.1 Linkerd ..................................................................................................... 430 10.1.2 Envoy ....................................................................................................... 431 10.1.3 Istio .......................................................................................................... 431 10.1.4 Consul Connect ......................................................................................... 432 10.1.5 MOSN ...................................................................................................... 432 10.1.6 Kong Kuma ............................................................................................... 433 10.1.7 Aeraki ....................................................................................................... 433 10.2 商業(yè)化項目 ........................................................................................................... 434 10.2.1 AWS ......................................................................................................... 434 10.2.2 Google ...................................................................................................... 434 10.2.3 Microsoft .................................................................................................. 435 10.2.4 Red Hat ..................................................................................................... 435 10.2.5 Aspen Mesh .............................................................................................. 435 10.2.6 國內項目 .................................................................................................. 436 10.3 標準 ..................................................................................................................... 436 10.3.1 xDS .......................................................................................................... 437 10.3.2 SMI .......................................................................................................... 445 10.3.3 UDPA ....................................................................................................... 449 10.4 擴展 ..................................................................................................................... 450 10.4.1 WebAssembly ............................................................................................ 451 10.4.2 Contour ..................................................................................................... 454 10.5 本章小結 .............................................................................................................. 470
你還可能感興趣
我要評論
|