Istio服务网格实例精解 版权信息
- ISBN:9787302668596
- 条形码:9787302668596 ; 978-7-302-66859-6
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
Istio服务网格实例精解 本书特色
Istio是应用广泛的网格服务技术之一。它用于管理应用程序网络,可为微服务提供安全性和运营效率。本书逐层探索Istio,解释如何使用它来管理应用程序网络、弹性、可观察性和安全性。通过各种实践示例,读者将了解Istio Service Mesh的安装、架构及其各种组件,还将执行Istio的多集群安装,并将其集成部署在虚拟机的陈旧工作负载上。
Istio服务网格实例精解 内容简介
本书详细阐述了与Istio服务网格相关的基本解决方案,主要包括服务网格简介、Istio入门、理解Istio控制平面和数据平面、管理应用程序流量、管理应用程序弹性、确保微服务通信的安全、服务网格可观察性、将Istio扩展到跨Kubernetes的多集群部署、扩展Istio数据平面、为非Kubernetes工作负载部署Istio服务网格、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
展开全部
Istio服务网格实例精解 作者简介
[印]阿南德·拉伊(Anand Rai)在为各种组织(包括技术提供商和消费企业)提供信息技术服务方面拥有18年以上的经验。他在这些组织中担任过各种行政和技术高级职务,但始终对技术采取亲身实践的态度。这段经历让他对信息技术的发展如何提高生产力和改善我们的日常生活有了全新的认识。他的专业涵盖应用程序集成、API管理、微服务架构、云、DevOps和Kubernetes。他喜欢解决问题、设想新的解决方案,并帮助组织利用技术来实现业务成果。