深入淺出 Istio : Service Mesh 快速入門與實踐

崔秀龍

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

商品描述

在微服務浪潮的推動之下,微服務的治理成為了新的技術熱點,從Linkerd提出Service Mesh(服務網格)概念開始,這一理念的幾個相關產品經過一番短暫較量,Google/IBM/Lyft合作推出的 Istio 系統成為了目前服務網格技術的事實標準。本書試圖從基本概念開始,結合實際工作場景和企業試點採納步驟,來對這一新生系統做一個相對完整的應用指南。

作者簡介

崔秀龍HPE軟件分析師;Istio、Kubernetes項目成員;Istio.io主要貢獻者之一;《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸》作者;《Kubernetes權威指南:企業級容器雲實戰》作者;自動化、馬拉松愛好者。  

目錄大綱

第1章  服務網格的歷史    1
1.1  Spring Cloud    3
1.2  Linkerd    4
1.3  Istio    6
1.4  國內服務網格的興起    6
第2章  服務網格的基本特性    8
2.1  連接    9
2.2  安全    12
2.3  策略    13
2.4  觀察    13
第3章  Istio基本介紹    15
3.1  Istio的核心組件及其功能    16
3.1.1  Pilot    16
3.1.2  Mixer    18
3.1.3  Citadel    20
3.1.4  Sidecar(Envoy)    20
3.2  核心配置對象    21
3.2.1  networking.istio.io    22
3.2.2  config.istio.io    24
3.2.3  authentication.istio.io    27
3.2.4  rbac.istio.io    28
3.3  小結    28
第4章  Istio快速入門    29
4.1  環境介紹    30
4.2  快速部署Istio    31
4.3  部署兩個版本的服務    33
4.4  部署客戶端服務    37
4.5  驗證服務    39
4.6  創建目標規則和默認路由    39
4.7  小結    42
第5章  用Helm部署Istio    43
5.1  Istio Chart概述    44
5.1.1  Chart.yaml    44
5.1.2  values-*.yaml    45
5.1.3  requirements.yaml    46
5.1.4  templates/_affinity.tpl    47
5.1.5  templates/sidecar-injector-configmap.yaml    47
5.1.6  templates/configmap.yaml    48
5.1.7  templates/crds.yaml    48
5.1.8  charts    48
5.2  全局變量介紹    49
5.2.1  hub和tag    49
5.2.2  ingress.enabled    50
5.2.3  Proxy相關的參數    51
5.2.4  proxy_init.image    53
5.2.5  imagePullPolicy    53
5.2.6  controlPlaneSecurityEnabled    53
5.2.7  disablePolicyChecks    53
5.2.8  enableTracing    53
5.2.9  mtls.enabled    53
5.2.10  imagePullSecrets    54
5.2.11  arch    54
5.2.12  oneNamespace    54
5.2.13  configValidation    54
5.2.14  meshExpansion    55
5.2.15  meshExpansionILB    55
5.2.16  defaultResources    55
5.2.17  hyperkube    55
5.2.18  priorityClassName    55
5.2.19  crds    56
5.2.20  小結    56
5.3  Istio安裝清單的生成和部署    56
5.3.1  編輯values.yaml    56
5.3.2  生成部署清單    58
5.3.3  部署Istio    58
5.4  小結    59
第6章  Istio的常用功能    60
6.1  在網格中部署應用    61
6.1.1  對工作負載的要求    63
6.1.2  使用自動註入    64
6.1.3  準備測試應用    69
6.2  修改Istio配置    69
6.3  使用Istio Dashboard    70
6.3.1  啟用Grafana    70
6.3.2  訪問Grafana    71
6.3.3  開放Grafana服務    73
6.3.4  學習和定制    74
6.4  使用Prometheus    76
6.4.1  訪問Prometheus    76
6.4.2  開放Prometheus服務    77
6.4.3  學習和定制    77
6.5  使用Jaeger    77
6.5.1  啟用Jaeger    78
6.5.2  訪問Jaeger    78
6.5.3  跟蹤參數的傳遞    81
6.5.4  開放Jaeger服務    86
6.6  使用Kiali    87
6.6.1  啟用Kiali    87
6.6.2  訪問Kiali    88
6.6.3  開放Kiali服務    92
6.7  小結    92
第7章  HTTP流量管理    93
7.1  定義目標規則    94
7.2  定義默認路由    98
7.3  流量的拆分和遷移    101
7.4  金絲雀部署    105
7.5  根據來源服務進行路由    108
7.6  對URI進行重定向    110
7.7  通信超時控制    115
7.8  故障重試控制    116
7.9  入口流量管理    120
7.9.1  使用Gateway開放服務    121
7.9.2  為Gateway添加證書支持    123
7.9.3  為Gateway添加多個證書支持    124
7.9.4  配置入口流量的路由    126
7.10  出口流量管理    127
7.10.1  設置Sidecar的流量劫持範圍    128
7.10.2  設置ServiceEntry    129
7.11  新建Gateway控制器    131
7.12  設置服務熔斷    134
7.13  故障註入測試    136
7.13.1  註入延遲    137
7.13.2  註入中斷    138
7.14  流量覆制    139
第8章  Mixer適配器的應用    142
8.1  Mixer適配器簡介    143
8.2  基於Denier適配器的訪問控制    144
8.3  基於Listchecker適配器的訪問控制    146
8.4  使用MemQuota適配器進行服務限流    150
8.4.1  Mixer對象的定義    150
8.4.2  客戶端對象定義    152
8.4.3  測試限流功能    153
8.4.4  註意事項    154
8.5  使用RedisQuota適配器進行服務限流    155
8.5.1  啟動Redis服務    155
8.5.2  定義限流相關對象    156
8.5.3  測試限流功能    158
8.6  為Prometheus定義監控指標    158
8.6.1  默認監控指標    159
8.6.2  自定義監控指標    162
8.7  使用stdio輸出自定義日誌    165
8.7.1  默認的訪問日誌    167
8.7.2  定義日誌對象    169
8.7.3  測試輸出    170
8.8  使用Fluentd輸出日誌    171
8.8.1  部署Fluentd    171
8.8.2  定義日誌對象    173
8.8.3  測試輸出    174
8.9  小結    175
第9章  Istio的安全加固    176
9.1  Istio安全加固概述    177
9.2  啟用mTLS    179
9.3  設置RBAC    183
9.4  RBAC的除錯過程    189
第10章  Istio的試用建議    192
10.1  Istio自身的突出問題    193
10.2  確定功能範圍    194
10.3  選擇試用業務    196
10.4  試用過程    197
10.4.1  制定目標    197
10.4.2  方案部署    198
10.4.3  測試驗證    200
10.4.4  切換演練    201
10.4.5  試點上線    201