前言
第1章 服務網格與Istio 1
1.1 服務網格簡介 1
1.1.1 服務網格的概念與特點 2
1.1.2 服務網格的優(yōu)勢 3
1.2 Istio簡介 4
1.3 Istio的架構設計 5
1.3.1 數據平面 6
1.3.2 控制平面 7
1.4 Istio的功能特性 9
1.5 本章小結 10
第2章 實驗說明 11
2.1 實驗的環(huán)境 11
2.1.1 基礎環(huán)境 11
2.1.2 命令說明 12
2.1.3 問題及解決方案 13
2.2 實驗的應用 16
2.2.1 應用架構說明 16
2.2.2 應用詳細說明 17
2.3 應用的構建 26
2.4 本章小結 31
第3章 使用Vagrant管理虛擬機 32
3.1 Vagrant簡介 32
3.2 Vagrant常用命令 33
3.3 模擬實驗時的場景 38
3.4 本章小結 47
第4章 創(chuàng)建Kubernetes集群 48
4.1 安裝Docker 48
4.2 安裝Kubeadm 51
4.3 配置基礎環(huán)境 52
4.4 創(chuàng)建Kubernetes集群的步驟 55
4.5 測試集群的正確性 61
4.6 注意事項與技巧 65
4.7 本章小結 67
第5章 Istio部署與常用命令 68
5.1 部署Istio 68
5.2 常用資源類型 77
5.2.1 流量控制 77
5.2.2 請求配額 80
5.2.3 mTLS認證策略 81
5.2.4 RBAC訪問權限 81
5.3 常用的kubectl命令 83
5.4 常用的istioctl命令 83
5.4.1 通用參數說明 84
5.4.2 常用命令 84
5.5 注意事項與技巧 85
5.6 本章小結 89
第6章 微服務應用的部署 90
6.1 微服務應用架構 90
6.2 部署服務 94
6.3 訪問服務 98
6.4 在Istio中部署微服務 102
6.5 本章小結 105
第7章 讓服務流量控制更簡單 106
7.1 整體介紹 106
7.2 管理集群的入口流量 110
7.3 把請求路由到服務的指定版本 111
7.4 根據服務版本權重拆分流量 113
7.5 根據請求信息路由到服務的不同版本 114
7.6 流量鏡像 115
7.7 管理集群的出口流量 117
7.8 實現服務A/B測試 126
7.9 實現服務灰度發(fā)布 128
7.10 灰度發(fā)布與A/B測試結合 132
7.11 本章小結 135
第8章 讓服務更具彈性 136
8.1 整體介紹 136
8.2 負載均衡 138
8.3 連接池 141
8.4 健康檢測 144
8.5 熔斷 145
8.6 超時 149
8.7 重試 151
8.8 限流 153
8.9 本章小結 165
第9章 讓服務故障檢測更容易 166
9.1 整體介紹 166
9.2 給服務增加時延 168
9.3 給服務注入錯誤 169
9.4 時延與錯誤配合使用 171
9.5 本章小結 173
第10章 讓服務通信更安全可控 174
10.1 整體介紹 174
10.2 Denier適配器 176
10.3 黑白名單 177
10.4 服務與身份認證 180
10.5 RBAC訪問控制 194
10.6 本章小結 205
第11章 讓服務更易觀測與監(jiān)控 206
11.1 整體介紹 206
11.2 指標收集 209
11.3 日志收集 216
11.4 調用鏈追蹤 224
11.5 服務指標可視化 230
11.6 服務調用樹 235
11.7 本章小結 239
第12章 Istio維護 240
12.1 整體介紹 240
12.2 Istio服務網格儀表板 241
12.3 升級Istio 245
12.4 使用Helm定制部署Istio 253
12.5 故障排除 257
12.6 一個請求的完整過程分析 272
12.7 本章小結 282
第13章 雜項 283
13.1 CORS 284
13.2 URL重定向 287
13.3 URL重寫 289
13.4 TCP路由 290
13.5 TLS路由 292
13.6 mTLS遷移 295
13.7 EnvoyFilter 297
13.8 添加請求頭 299
13.9 在Gateway上使用HTTPS 300
13.10 在HTTPS服務上開啟mTLS 304
13.11 網格中的服務健康檢查 306
13.12 Envoy代理Ingressgateway 308
13.13 Mixer與Adapter模型 311
13.14 本章小結 312