资源详情

Istio服务网格实例精解

Istio服务网格实例精解-电子书下载

🚀 掌握Istio服务网格,开启微服务新纪元!🌐


出版社: 清华大学出版社
ISBN:9787302668596
品牌:清华大学
包装:平装开本:16开
出版时间:2024-08-01

下载次数:116


本站推荐

在数字化浪潮的推动下,微服务架构已经成为企业构建高效、可扩展应用的首选。而服务网格作为微服务架构中的核心技术之一,其重要性不言而喻。今天,我要和大家分享一本由清华大学出版社精心打造的专业书籍——《Istio服务网格实例精解》,它不仅是技术爱好者的宝典,更是每一位开发者的得力助手。📚


《Istio服务网格实例精解》以其深入浅出的讲解和丰富的实例,带领读者走进Istio的世界。这本书从服务网格的基本概念讲起,逐步深入到Istio的核心组件和工作原理。🔍


首先,书中对服务网格进行了全面的介绍,让读者对这一技术有一个清晰的认识。紧接着,作者带领我们快速入门Istio,通过实际操作让理论知识得以落地。🛠️


在理解了Istio的控制平面和数据平面之后,书中进一步探讨了如何管理应用程序的流量,这对于确保服务的高可用性和负载均衡至关重要。🚦


面对微服务架构中的弹性管理问题,本书提供了一系列的解决方案,帮助读者掌握如何在不同环境下保持应用的稳定性和弹性。🌟


安全性是微服务通信中不可忽视的一环,本书特别强调了确保微服务通信安全的重要性,并提供了相应的策略和实践方法。🔒


服务网格的可观察性是监控和诊断微服务健康状态的关键,书中详细介绍了如何实现服务网格的可观察性,让读者能够实时掌握服务状态。🔎


随着技术的发展,跨Kubernetes的多集群部署已经成为常态。本书不仅讲解了如何将Istio扩展到这种复杂的部署环境,还探讨了如何扩展Istio数据平面,以适应不断变化的技术需求。🌐


对于那些非Kubernetes工作负载,本书也提供了部署Istio服务网格的方案,确保不同环境下的服务网格部署都能得到有效支持。🛡️


最后,书中还包含了Istio的故障排除和操作,这是每一个运维人员都必须掌握的技能。通过这些内容,读者可以快速定位问题并解决,保障服务网格的稳定运行。🛠️


《Istio服务网格实例精解》不仅适合作为高等院校计算机及相关专业的教材和教学参考书,也非常适合作为开发人员的自学用书和参考手册。🎓


每一章节都配有精心设计的示例和代码,让读者在实践中学习,加深对Istio服务网格的理解。💻


在这个快速发展的技术时代,掌握Istio服务网格技术,无疑会为你的职业生涯增添亮点。《Istio服务网格实例精解》就是你开启这一旅程的金钥匙。🗝️


让我们一起探索服务网格的奥秘,提升技术能力,构建更加健壮、灵活的微服务架构。🚀🌟

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录
《Istio服务网格实例精解》详细阐述了与Istio服务网格相关的基本解决方案,主要包括服务网格简介、Istio入门、理解Istio控制平面和数据平面、管理应用程序流量、管理应用程序弹性、确保微服务通信的安全、服务网格可观察性、将Istio扩展到跨Kubernetes的多集群部署、扩展Istio数据平面、为非Kubernetes工作负载部署Istio服务网格、Istio故障排除和操作等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。

Anand Rai在为各种组织(包括技术提供商和消费企业)提供信息技术服务方面拥有18年以上的经验。他在这些组织中担任过各种行政和技术高级职务,但始终对技术采取亲身实践的态度。这段经历让他对信息技术的发展如何提高生产力和改善我们的日常生活有了全新的认识。他的专业涵盖应用程序集成、API管理、微服务架构、云、DevOps和Kubernetes。他喜欢解决问题、设想新的解决方案,并帮助组织利用技术来实现业务成果。
第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.

.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