●章服務網格1
1.1服務端架構的發展——從單體應用到微服務1
1.1.1單體應用1
1.1.2多層結構3
1.1.3面向服務的架構4
1.1.4微服務架構5
1.2微服務架構的痛點6
1.3服務網格的發展7
1.3.1耦合階段7
1.3.2封裝公用庫8
1.3.3Sidecar模式9
1.3.4服務網格出現11
1.4什麼是服務網格12
1.4.1基本概念12
1.4.2服務網格的功能12
1.5服務網格產品介紹14
1.5.1Linkerd14
1.5.2Envoy14
1.5.3Istio15
1.5.4其他16
1.6小結17
第2章 Istio入門18
2.1什麼是Istio18
2.2Istio的架構19
2.3Istio的核心控件20
2.3.1Envoy20
2.3.2Pilot21
2.3.3Mixer22
2.3.4Citadel23
2.3.5Galley23
2.4Istio的主要功能23
2.4.1流量管理23
2.4.2策略和遙測27
2.4.3可視化28
2.4.4安全28
2.5小結30
第3章Istio的安裝和部署32
3.1準備工作32
3.1.1安裝Go語言32
3.1.2安裝Docker35
3.1.3Kubernetes平臺搭建37
3.2安裝Istio42
3.2.1安裝包43
3.2.2安裝Helm43
3.2.3使用Helm安裝Istio44
3.2.4確認安裝結果47
3.2.5問題處理49
3.3小結50
第4章Bookinfo應用51
4.1什麼是Bookinfo應用51
4.2部署Bookinfo應用53
4.2.1安裝和部署53
4.2.2默認目標規則61
4.3小結61
第5章流量管理63
5.1流量管理中的規則配置63
5.1.1VirtualService64
5.1.2DestinationRule67
5.1.3ServiceEntry68
5.1.4Gateway69
5.2流量轉移70
5.2.1藍綠部署70
5.2.2金絲雀發布76
5.2.3A/B測試79
5.3超時和重試80
5.3.1超時81
5.3.2重試83
5.4控制入口流量84
5.4.1確定入口IP和端口85
5.4.2配置網關86
5.5控制出口流量89
5.5.1啟動Sleep服務89
5.5.2配置外部服務90
5.5.3配置外部HTTPS服務92
5.5.4為外部服務設置路由規則93
5.6熔斷94
5.6.1熔斷簡介94
5.6.2設置後端服務95
5.6.3設置客戶端96
5.6.4觸發熔斷機制97
5.7小結99
第6章策略與遙測100
6.1Mixer的工作原理100
6.2限流策略103
6.2.1Mixer配置項104
6.2.2客戶端配置項105
6.2.3有條件的限流106
6.3黑名單和白名單策略107
6.3.1初始化路由規則107
6.3.2用Denier適配器實現黑名單108
6.3.3用List適配器實現黑白名單109
6.4遙測111
6.4.1收集新的指標數據111
6.4.2指標配置解析113
6.4.3日志配置解析114
6.4.4用Prometheus查看指標114
6.5小結115
第7章可視化工具117
7.1分布式追蹤117
7.1.1啟動Jaeger118
7.1.2生成追蹤數據119
7.1.3追蹤原理120
7.2使用Prometheus查詢指標121
7.2.1Prometheus簡介121
7.2.2查詢Istio指標122
7.3用Grafana監控指標數據124
7.3.1Grafana簡介124
7.3.2安裝Grafana124
7.3.3指標數據展示125
7.4服務網格可視化工具——Kiali127
7.4.1Kiali簡介127
7.4.2安裝和啟動Kiali128
7.4.3使用Kiali觀測服務網格129
7.5使用EFK收集和查看日志132
7.5.1集中式日志架構132
7.5.2安裝EFK133
7.5.3用Kibana查看生成的日志140
7.6小結142
第8章安全144
8.1認證144
8.1.1Istio中的認證方式144
8.1.2認證策略146
8.2授權149
8.2.1啟用授權149
8.2.2授權策略150
8.3HTTP服務的訪問控制152
8.3.1準備工作152
8.3.2命名空間的訪問控制154
8.3.3服務級別的訪問控制155
8.4TCP服務的訪問控制157
8.4.1準備工作157
8.4.2啟動訪問控制160
8.5外部密鑰和證書162
8.5.1插入密鑰和證書162
8.5.2檢查新證書163
8.6小結163
第9章進階165
9.1雲平臺集成165
9.1.1在Google Cloud GKE上啟用Istio165
9.1.2使用阿裡雲Kubernetes容器服務169
9.2不錯流量控制171
9.2.1故障注入171
9.2.2流量鏡像174
9.3調試和故障排查179
9.3.1Istio組件的日志180
9.3.2調試181
9.3.3故障排查183
9.4小結186
附錄187
附錄AHelm安裝選項187
A.1certmanager選項187
A.2galley選項188
A.3gateways選項188
A.4global選項191
A.5grafana選項194
A.6Istio_cni選項196
A.7Istiocoredns選項196
A.8kiali選項196
A.9mixer選項197
A.10nodeagent選項198
A.11pilot選項198
A.12prometheus選項199
A.13security選項200
A.14servicegraph選項200
A.15sidecarInjectorWebhook選項200
A.16tracing選項201
附錄B屬性詞彙表202
附錄C表達式語言205
附錄D適配器列表206
附錄E命令行工具istioctl207
E.1istioctl authn207
E.2istioctl create207
E.3istioctl delete208
E.4istioctl deregister208
E.5istioctl gen-deploy208
E.6istioctl get209
E.7istioctl kube-inject209
E.8istioctl proxy-config210
E.9istioctl register210
E.10istioctl replace210
E.11istioctl version210
內容簡介
《Istio實戰指南》是Istio服務網格技術的入門圖書。全書共分為9章,深入淺出地介紹了Istio的相關知識,結合大量的示例,清晰而詳細地闡述了Istio的主要特性。《Istio實戰指南》的章介紹了服務網格的起源和發展,第2~4章介紹了Istio的基本概念和安裝。第5~8章,采用實例練習的方式詳細地介紹了Istio的流量管理、策略和遙測的配置、可視化工具的集成以及安全相關的特性。這部分是《Istio實戰指南》的重點,可以幫助讀者學以致用,把Istio應用到真實的項目開發中。第9章是進階內容,介紹了在雲平臺集成Istio的方式、不錯流量控制以及調試和故障排除的內容。《Istio實戰指南》的附錄部分列舉了安裝選項、屬性詞彙表、表達式語言、適配器列表和istioctl命令,供讀者查閱參考。《Istio實戰指南》適合有一定Kubernetes基礎,對服務網格和Istio技術感興趣的開發人員和運維......