Istio 服務網格實例精解 Bootstrapping Service Mesh Implementations with Istio: Build reliable, scalable, and secure microservices on Kubernetes with Service Mesh

[印]阿南德·拉伊 著 黃永強 譯 黃永強 譯

  • Istio 服務網格實例精解-preview-1
  • Istio 服務網格實例精解-preview-2
  • Istio 服務網格實例精解-preview-3
Istio 服務網格實例精解-preview-1

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

相關主題

商品描述

"《Istio服務網格實例精解》詳細闡述了與Istio服務網格相關的基本解決方案,主要包括服務網格簡介、Istio入門、理解Istio控制平面和數據平面、管理應用程序流量、管理應用程序彈性、確保微服務通信的安全、服務網格可觀察性、將Istio擴展到跨Kubernetes的多集群部署、擴展Istio數據平面、為非Kubernetes工作負載部署Istio服務網格、Istio故障排除和操作等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。"

目錄大綱

目    錄

第1篇  基 礎 知 識

第1章  服務網格簡介 3

1.1  雲計算基礎知識 3

1.1.1  雲計算的選項和分類 3

1.1.2  雲計算的優勢 6

1.2  瞭解微服務架構 8

1.3  瞭解Kubernetes 13

1.4  關於服務網格 16

1.4.1  使用服務網格的理由 16

1.4.2  Kubernetes實例解析 18

1.4.3  重試機制、斷路、超時和截止時間 24

1.4.4  藍/綠部署和金絲雀部署 25

1.5  小結 29

第2章  Istio入門 31

2.1  Istio簡介 31

2.2  探索Istio的替代方案 32

2.2.1  Kuma 32

2.2.2  Linkerd 32

2.2.3  Consul 33

2.2.4  AWS App Mesh 33

2.2.5  OpenShift Service Mesh 33

2.2.6  F5 NGINX Service Mesh 34

2.3  準備工作站以安裝Istio 34

2.3.1  系統和硬件需求 34

2.3.2  安裝minikube和Kubernetes命令行工具 35

2.4  安裝Istio 38

2.4.1  下載安裝文件 38

2.4.2  查看安裝包 39

2.4.3  使用istioctl執行安裝 39

2.4.4  檢查安裝結果 40

2.4.5  為示例應用程序啟用Istio 41

2.4.6  Sidecar註入 43

2.4.7  Istio網關 48

2.5  可觀察性工具 53

2.5.1  kiali 54

2.5.2  Jaeger 56

2.5.3  Prometheus 57

2.5.4  Grafana 58

2.6  Istio架構 59

2.7  小結 60

第3章  理解Istio控制平面和數據平面 63

3.1  探索Istio控制平面的組件 63

3.1.1  istiod 64

3.1.2  Istio operator和istioctl 67

3.1.3  Istio agent 71

3.2  Istio控制平面的部署模型 72

3.2.1  具有本地控制平面的單個集群 73

3.2.2  具有單一控制平面的主集群和遠程集群 74

3.2.3  具有外部控制平面的單個集群 75

3.3  Envoy探索 76

3.3.1  Envoy的顯著特徵 76

3.3.2  HTTP過濾器 79

3.3.3  偵聽器過濾器 84

3.3.4  通過xDS API進行動態配置 85

3.3.5  可擴展性 87

3.4  小結 88

 

第2篇  Istio實戰

第4章  管理應用程序流量 91

4.1  技術要求 91

4.1.1  設置環境 92

4.1.2  創建EKS集群 92

4.1.3  設置kubeconfig和kubectl 94

4.1.4  部署Sockshop應用程序 94

4.2  使用Kubernetes Ingress資源管理入口流量 95

4.2.1  瞭解Kubernetes Ingress資源管理機制 95

4.2.2  使用Istio網關控制器處理Ingress資源 98

4.2.3  添加Ingress規則 100

4.3  使用Istio網關管理Ingress 102

4.3.1  創建網關 102

4.3.2  創建虛擬服務 103

4.4  流量路由和金絲雀版本 107

4.4.1  流量路由 107

4.4.2  定義目的地規則 108

4.5  流量鏡像 111

4.6  將流量路由到集群外部的服務 113

4.7  通過HTTPS公開入口 115

4.7.1  創建證書 115

4.7.2  配置Istio網關 116

4.7.3  允許HTTP重定向到HTTPS 118

4.7.4  為多個主機啟用HTTPS 119

4.7.5  為CNAME和通配符記錄啟用HTTPS 121

4.8  使用Istio管理出口流量 123

4.8.1  使用ServiceEntry 123

4.8.2  使用Egress網關 124

4.9  小結 127

第5章  管理應用程序彈性 129

5.1  使用故障註入實現應用程序彈性 129

5.1.1  HTTP延遲 130

5.1.2  HTTP中止 134

5.2  使用超時和重試實現應用程序彈性 137

5.2.1  超時 137

5.2.2  重試 140

5.3  使用負載均衡構建應用程序彈性 143

5.3.1  循環 143

5.3.2  RANDOM 144

5.3.3  LEAST_REQUEST 145

5.3.4  定義多個負載均衡規則 146

5.4  速率限制 147

5.5  斷路器和異常值檢測 150

5.6  小結 152

第6章  確保微服務通信的安全 155

6.1  理解Istio安全架構 155

6.2  使用雙向TLS進行身份驗證 158

6.2.1  服務到服務的身份驗證 159

6.2.2  使用網格外的客戶端進行身份驗證 164

6.3  配置RequestAuthentication 165

6.4  配置RequestAuthorization 172

6.5  小結 178

第7章  服務網格可觀察性 179

7.1  理解可觀察性 179

7.2  使用Prometheus抓取指標 181

7.2.1  安裝Prometheus 182

7.2.2  部署示例應用程序 183

7.3  自定義Istio指標 187

7.3.1  Istio指標、維度和值 187

7.3.2  向Istio指標添加維度 189

7.3.3  創建新的Istio指標 192

7.4  使用Grafana可視化遙測信息 194

7.4.1  安裝Grafana 194

7.4.2  創建警報 196

7.5  實現分佈式跟蹤 201

7.5.1  Jaeger簡介 201

7.5.2  安裝和配置Jaeger 202

7.5.3  檢查跟蹤信息 203

7.6  小結 208

第3篇  縮放、擴展和優化

第8章  將Istio擴展到跨Kubernetes的多集群部署 213

8.1  技術要求 213

8.1.1  設置Kubernetes集群 214

8.1.2  設置OpenSSL 215

8.1.3  其他Google Cloud步驟 215

8.2  在多集群部署中建立互信 216

8.3  多網絡上的primary-remote配置 219

8.3.1  建立兩個集群之間的信任 220

8.3.2  部署Envoy虛擬應用程序 228

8.3.3  測試虛擬應用程序的流量分佈 229

8.4  同一網絡上的primary-remote配置 230

8.5  不同網絡上的primary-primary配置 234

8.5.1  構建多個主集群 235

8.5.2  通過Envoy虛擬服務進行部署和測試 237

8.6  同一網絡上的primary-primary配置 238

8.6.1  執行清理操作 239

8.6.2  在兩個集群上安裝Istio 240

8.7  小結 242

第9章  擴展Istio數據平面 243

9.1  技術要求 243

9.2  關於可擴展性 244

9.3  使用EnvoyFilter自定義數據平面 246

9.4  Wasm基礎 249

9.5  使用Wasm擴展Istio數據平面 253

9.5.1  Proxy-Wasm簡介 253

9.5.2  Proxy-Wasm ABI規範 254

9.5.3  Proxy-Wasm SDK 256

9.5.4  在Istio中部署Wasm 261

9.6  小結 265

第10章  為非Kubernetes工作負載部署Istio服務網格 267

10.1  技術要求 267

10.2  瞭解混合架構 270

10.3  為混合架構設置服務網格 272

10.3.1  設置概述 272

10.3.2  在虛擬機上設置演示應用程序 275

10.3.3  在集群中設置Istio 277

10.3.4  配置Kubernetes集群 277

10.3.5  在虛擬機上設置Istio 280

10.3.6  將虛擬機工作負載納入網格中 282

10.4  小結 285

第11章  Istio故障排除和操作 287

11.1  理解Istio組件之間的交互 287

11.1.1  探索Istiod埠 287

11.1.2  探索Envoy埠 289

11.2  檢查和分析Istio配置 290

11.3  使用訪問日誌排除錯誤 294

11.3.1  啟用訪問日誌 294

11.3.2  訪問日誌的內容解析 296

11.3.3  使用響應標志 297

11.4  使用調試日誌排除錯誤 299

11.4.1  更改Istio數據平面的調試日誌 299

11.4.2  更改Istio控制平面的日誌級別 300

11.5  調試Istio代理 302

11.6  瞭解Istio的最佳實踐 303

11.6.1  檢查控制平面的攻擊媒介 304

11.6.2  檢查數據平面的攻擊媒介 304

11.6.3  保護服務網格 304

11.7  使用OPA Gatekeeper自動執行最佳實踐 306

11.7.1  安裝和配置OPA Gatekeeper 307

11.7.2  配置約束 308

11.7.3  定義強制執行埠命名約定的約束 311

11.8  小結 314

第12章  總結和展望 317

12.1  技術要求 317

12.2  使用OPA Gatekeeper實施工作負載部署最佳實踐 319

12.3  將本書知識應用到Online Boutique示例應用程序中 320

12.3.1  為示例應用程序啟用服務網格 321

12.3.2  配置Istio來管理應用程序流量 323

12.3.3  配置Istio來管理應用程序彈性 327

12.3.4 配置Istio來管理應用程序安全 330

12.4  Istio的認證和學習資源 336

12.5  瞭解eBPF 338

12.6  小結 340

附錄A  其他服務網格技術 343

A.1  Consul Connect 343

A.1.1  在minikube上安裝Consul Connect 343

A.1.2  部署示例應用程序 347

A.1.3  零信任網絡 348

A.1.4  流量管理和路由 350

A.2  Gloo Mesh 357

A.3  Kuma 359

A.3.1  下載並安裝Kuma 359

A.3.2  在Kuma網格中部署envoydemo和curl 361

A.3.3  使用Kuma GUI查看網格狀態 362

A.3.4  啟用mTLS 362

A.3.5  創建流量控制策略 364

A.3.6  流量管理和路由 365

A.3.7  通過加權路由策略實現負載均衡 368

A.3.8  創建新網格 368

A.3.9  創建Kuma內置網關 369

A.3.10  定義網關路由 370

A.4  Linkerd 374

A.4.1  安裝Linkerd 374

A.4.2  在Linkerd中部署envoydummy和curl 376

A.4.3  零信任網絡 377

A.4.4  通過策略實現細粒度的訪問控制 380

A.4.5  Linkerd其他功能簡介 381