电子工业出版社精品店店铺主页二维码
电子工业出版社精品店
微信扫描二维码,访问我们的微信店铺

Istio最佳实战

79.00
运费: 免运费
Istio最佳实战 商品图0
Istio最佳实战 商品图1
Istio最佳实战 商品图2
Istio最佳实战 商品图3
Istio最佳实战 商品图4
Istio最佳实战 商品图5
Istio最佳实战 商品缩略图0 Istio最佳实战 商品缩略图1 Istio最佳实战 商品缩略图2 Istio最佳实战 商品缩略图3 Istio最佳实战 商品缩略图4 Istio最佳实战 商品缩略图5

商品详情

书名:Istio*佳实战  
定价:138.0  
ISBN:9787121457395  
作者:(美)Christian Posta(克里斯汀·波斯塔),Rinor Maloku(里诺·马洛库)  
版次:*1版  
出版时间:2023-06  

内容提要:  
Istio作为服务网格技术*具代表性的产品,历经多年发展已日渐成熟,并受到越来越多*发者的青睐。本书以 Istio 服务网格为核心,内容包括基本概念、核心功能、运维、企业级落地四大部分,从基本的安装部署到功能实践,从底层原理分析到故障排查,从进阶操作到企业级实战,由浅入深地介绍了 Istio 服务网格的各个方面。本书适合正在使用或关注 Istio 的开发工程师、运维工程师、架构师等云原生领域从业者阅读。无论你是服务网格技术的初学者,还是该领域的专家,都能从本书中寻找到有借鉴意义的理论及实践指导。  



作者简介:  

Christian Posta@christianposta)是 Solo.io 公司副总裁,全球领域&席技术官。他在云原生社区中以作家、博主、演说家,以及服务网格和云原生生态中各种开源项目的贡献者身份而闻名。Christian 曾在传统企业和大型互联网公司工作过,现在帮助组织创建和部署大规模的、云原生的、弹性的分布式架构。他擅长指导、培训和领导团队在分布式系统概念、微服务、DevOps 和云原生应用程序设计方面取得成功。

 

Rinor Maloku@rinormaloku)是 Solo.io 公司的工程师。他为采用应用网络解决方案(如服务网格)的客户提供咨询服务。此前,他在 Red Hat 公司工作,在那里,他开发了中间件软件,使研发团队能够确保其服务的高可用性。作为一名自由职业者,他服务了多位 DAX 30 成员,以充分利用云计算技术的潜力。

 

译者简介

马若飞,就职于飞维美地(FreeWheel)北京研发中心,担任&席工程师,主要负责微服务架构设计和云原生落地工作。《Istio实战指南》作者,极客时间《Service Mesh实战》专栏作者,《云原生应用架构:微服务开发*佳实践》主要作者,人民邮电出版社IT专业图书专家顾问,ServiceMesher技术社区和云原生社区管理委员会成员。发表、翻译多篇云原生领域前沿技术文章,热衷于技术分享。

 

宋净超(Jimmy Song),Tetrate 布道师,云原生社区创始人,蚂蚁集团前云原生布道师及开源管理负责人,电子工业出版社图书出品人,独立撰稿人。Kubernetes Istio 等开源技术的早期使用及推广者。著有《未来架构:从服务化到云原生》《深入理解Istio:云原生服务网格进阶实战》,参与过多部作品的翻译工作。

 

罗广明,字节跳动服务框架团队架构师,云原生社区管理委员会成员、北京站站长。先后在爱立信、百度从事云原生、微服务及开源相关工作,后加入字节跳动,负责 CloudWeGo 等微服务项目开源相关工作。长期关注云原生 & 微服务领域前沿技术、架构演进及标准化进程。




媒体评论:  

这本书提供了一个清晰的视角来展示如何将应用程序与基础设施解耦。希望你能像我一样喜欢它。

序作者Eric Brewer

基础设施副总裁,Google研究员

 

我真的很喜欢这本书对Istio循序渐进的讲解。我希望把它分享给每一个使用Kubernetes进行开发的人。

Christoph Schubert

SAP

 

这是一份全面的指南,用于深入理解Istio服务网格。

Fotis Stamatelopoulos

Upwork

 

阅读这本书,感觉就像正跟随一位技艺高超的行业专家在学习。

Paolo Antinori

Red Hat




目录:  

第 1 部分 理解 Istio


1 Istio 服务网格......... 2

1.1 快速迭代带来的挑战 ...... 3

1.1.1 不可靠的云基础设施 .......... 5

1.1.2 服务通信需要弹性 .............. 6

1.1.3 实时可观测性 ...... 6

1.2 使用应用程序库解决问题 .............. 7

1.3 基础设施的解决思路 ...... 9

1.3.1 应用程序感知服务代理 ...... 9

1.3.2 认识 Envoy 代理  10

1.4 什么是服务网格 . 11

1.5 Istio 服务网格简介 ........ 13

1.5.1 服务网格与企业服务总线的关系 .... 14

1.5.2 服务网格与 API 网关的关系 ............ 16

1.5.3 在非微服务架构中使用 Istio ............ 17

1.5.4 在分布式架构中使用 Istio  18

1.5.5 使用服务网格的缺点 ........ 19

本章小结 ...... 19


2 Istio 的*一步.......21

2.1 在 Kubernetes 上部署 Istio ............ 21

2.1.1 使用 Docker Desktop 来演示样例 .... 22

2.1.2 获取 Istio 发行版 ............... 22

2.1.3 将 Istio 组件安装到 Kubernetes 中 ... 24

2.2 了解 Istio 控制平面 ....... 25

2.2.1 istiod 简介 .......... 26

2.2.2 入口网关和出口网关 ........ 30

2.3 在服务网格中部署你的*一个应用程序 .... 31

2.4 Istio 的可观测性、弹性和流量路由 ............ 36

2.4.1 Istio 与可观测性  37

2.4.2 Istio 与弹性 ........ 44

2.4.3 Istio 与流量路由  46

本章小结 ...... 50


3 Istio 的数据平面 :Envoy .......51

3.1 什么是 Envoy 代理 ........ 51

3.1.1 Envoy 的核心功能 ............. 53

3.1.2 Envoy 与其他代理的比较 . 58

3.2 配置 Envoy .......... 58

3.2.1 静态配置 . 58

3.2.2 动态配置 . 60

3.3 Envoy 实战 .......... 61

3.3.1 Envoy 的 Admin API ......... 65

3.3.2 Envoy 的请求重试 ............. 66

3.4 Envoy 与 Istio 的融合 .... 67

本章小结 ...... 69


第 2 部分 保护、观察和控制服务网格中的流量


4 Istio 网关 :将流量导入集群....72

4.1 流量入口概念 ..... 73

4.1.1 虚拟 IP 地址 :简化服务访问 ........... 73

4.1.2 虚拟主机 :来自单个接入点的多个服务 ........ 75

4.2 Istio 入口网关 ..... 75

4.2.1 声明 Gateway 资源 ............ 77

4.2.2 虚拟服务的网关路由 ........ 79

4.2.3 流量整体视图 .... 82

4.2.4 对比 Istio 入口网关与 Kubernetes Ingress ....... 82

4.2.5 对比 Istio 入口网关与 API 网关 ....... 83

4.3 保护网关流量 ..... 83

4.3.1 使用 TLS 的 HTTP 流量 ... 84

4.3.2 将 HTTP 重定向到 HTTPS ............... 88

4.3.3 使用 mTLS 的 HTTP 通信  89

4.3.4 为多个虚拟主机提供 TLS 服务 ....... 92

4.4 TCP 流量 ............. 93

4.4.1 在 Istio 网关上暴露 TCP 端口 .......... 94

4.4.2 使用 SNI 直通的流量路由  96

4.5 网关使用建议 ..... 99

4.5.1 拆分网关的职能  99

4.5.2 网关注入 .......... 101

4.5.3 入口网关访问日志 .......... 102

4.5.4 减少网关配置 .. 103

本章小结 .... 104


5 流量控制 :细粒度流量路由 .. 105

5.1 减少部署新代码带来的风险 ...... 105

5.2 Istio 的请求路由 .......... 109

5.2.1 清理工作空间 .. 109

5.2.2 部署 catalog 服务的 v1 版本 ........... 110

5.2.3 部署 catalog 服务的 v2 版本 ............111

5.2.4 将所有流量路由到 catalog 服务的 v1 版本 ... 112

5.2.5 将特定请求路由到 v2 版本 ............ 114

5.2.6 在调用链路内部进行路由 .............. 115

5.3 流量迁移 ........... 117

5.4 进一步降低风险 :流量镜像 ...... 125

5.5 使用 Istio 的服务发现路由到集群外部的服务 ......... 127

本章小结 .... 131


6 弹性 :应对应用程序的网络挑战............ 132

6.1 实现应用程序的弹性 .. 132

6.1.1 为应用程序库构建弹性能力 .......... 133

6.1.2 使用 Istio 解决弹性问题 . 134

6.1.3 实现去中心化的弹性能力 .............. 134

6.2 客户端负载均衡 .......... 135

6.2.1 开始使用客户端负载均衡 .............. 136

6.2.2 构建应用场景 .. 138

6.2.3 测试不同的客户端负载均衡策略 .. 139

6.2.4 理解负载均衡算法的差异 .............. 144

6.3 位置感知负载均衡 ...... 144

6.3.1 位置感知负载均衡实验 .. 145

6.3.2 利用加权分布对位置感知负载均衡进行更多的控制 .. 149

6.4 透明的超时和重试 ...... 152

6.4.1 超时 ....... 152

6.4.2 重试 ....... 154

6.4.3 *级重试 .......... 160

6.5 Istio 中的熔断 ... 162

6.5.1 利用连接池设置防止服务过慢 ...... 163

6.5.2 利用异常点检测剔除不健康的服务 .............. 169

本章小结 .... 172


7 可观测性 :理解服务的行为 .. 174

7.1 什么是可观测性 .......... 175

7.1.1 可观测性与监控 .............. 175

7.1.2 Istio 如何帮助实现可观测性 .......... 176

7.2 探索 Istio 的指标 ......... 176

7.2.1 数据平面指标 .. 177

7.2.2 控制平面指标 .. 182

7.3 使用 Prometheus 抓取 Istio 指标  184

7.3.1 安装 Prometheus 和 Grafana ........... 186

7.3.2 配置 Prometheus Operator 抓取 Istio 控制平面和工作负载的指标 ... 187

7.4 自定义 Istio 标准指标 . 190

7.4.1 配置现有的指标 .............. 193

7.4.2 创建新指标 ...... 197

7.4.3 使用新属性分组调用 ...... 199

本章小结 .... 201


8 可观测性 :使用 Grafana、Jaeger 和 Kiali 观察网络行为........... 202

8.1 使用 Grafana 观察 Istio 服务和控制平面指标 .......... 202

8.1.1 安装 Istio 的 Grafana 仪表板 .......... 203

8.1.2 查看控制平面指标 .......... 205

8.1.3 查看数据平面指标 .......... 206

8.2 分布式追踪 ....... 206

8.2.1 分布式追踪是怎么工作的 .............. 207

8.2.2 安装分布式追踪系统 ...... 209

8.2.3 配置 Istio 实现分布式追踪 ............. 210

8.2.4 查看分布式追踪数据 ...... 213

8.2.5 追踪采样、强制追踪和自定义标签 .............. 214

8.3 使用 Kiali 观察服务网格 ............ 220

8.3.1 安装 Kiali ......... 220

8.3.2 结论 ....... 225

本章小结 .... 225


9 确保微服务通信安全............227

9.1 应用程序网络安全需求 .............. 227

9.1.1 服务间认证 ...... 228

9.1.2 终端用户认证 .. 228

9.1.3 授权 ....... 228

9.1.4 单体和微服务应用的安全比较 ...... 228

9.1.5 Istio 如何实现 SPIFFE .... 230

9.1.6 Istio 安全简述 .. 230

9.2 自动 mTLS ........ 231

9.2.1 安装环境 .......... 232

9.2.2 理解 Istio 的对等认证 ..... 233

9.3 授权服务间流量 .......... 238

9.3.1 了解 Istio 中的授权 ......... 239

9.3.2 设置工作区 ...... 240

9.3.3 当策略被应用于工作负载时行为的变化 ...... 241

9.3.4 默认使用一个全局策略拒绝所有请求 .......... 242

9.3.5 允许来自单一命名空间的请求 ...... 243

9.3.6 允许来自非认证的工作负载的请求 .............. 244

9.3.7 允许来自单一服务账户的请求 ...... 245

9.3.8 策略的条件匹配 .............. 246

9.3.9 了解值匹配表达式 .......... 246

9.3.10 了解评估授权策略的顺序 ............ 248

9.4 终端用户的认证和授权 .............. 249

9.4.1 什么是 JWT ..... 249

9.4.2 入口网关的终端用户认证和授权 .. 251

9.4.3 使用 RequestAuthentication 验证 JWT ........... 252

9.5 与自定义的外部授权服务集成 .. 256

9.5.1 外部授权实践 .. 257

9.5.2 配置 ExtAuthz .. 258

9.5.3 使用自定义的 AuthorizationPolicy 资源 ........ 259

本章小结 .... 260


第 3 部分 Istio 运维


10 数据平面的故障排查......... 262

10.1 *常见错误 :数据平面配置错误 ............ 263

10.2 识别数据平面的问题  265

10.2.1 如何验证数据平面是*新的 ........ 265

10.2.2 使用 Kiali 发现配置错误 .............. 266

10.2.3 通过 istioctl 发现配置错误 ........... 268

10.3 从 Envoy 配置中发现错误 ........ 270

10.3.1 Envoy 管理界面 ............. 270

10.3.2 使用 istioctl 查询代理配置 ........... 270

10.3.3 应用程序的故障排查 .... 276

10.3.4 使用 ksniff 检查网络流量 ............. 282

10.4 通过 Envoy 的遥测能力了解应用程序 .... 285

10.4.1 在 Grafana 中查看请求失败率 ..... 286

10.4.2 使用 Prometheus 查询受影响的 Pod ............ 287

本章小结 .... 288


11 控制平面性能优化 .............290

11.1 控制平面的主要目标  290

11.1.1 了解数据平面同步的步骤 ............ 291

11.1.2 决定性能的因素 ............ 292

11.2 监控控制平面 . 293

11.3 性能调整 ......... 298

11.3.1 设置工作区 .... 299

11.3.2 测量优化前的性能 ........ 299

11.3.3 忽略事件 :使用发现选择器缩小发现的范围 ............ 303

11.3.4 事件批处理和推送节流特性 ........ 305

11.4 性能优化准则 . 308

本章小结 .... 310


第 4 部分 在组织中落地 Istio


12 在组织中扩展 Istio............312

12.1 多集群服务网格的好处 ............ 312

12.2 多集群服务网格概述  313

12.2.1 Istio 多集群部署模型 .... 314

12.2.2 在多集群部署中如何发现工作负载 ............ 316

12.2.3 跨集群的工作负载连接  317

12.2.4 集群间互信 .... 318

12.3 多集群、多网络、多控制平面的服务网格 ............ 319

12.3.1 选择多集群部署模型 .... 320

12.3.2 建立云基础设施 ............ 320

12.3.3 配置插件式 CA 证书 ..... 321

12.3.4 在每个集群中安装控制平面 ........ 322

12.3.5 启用跨集群的工作负载发现 ........ 325

12.3.6 设置跨集群连接 ............ 327

12.3.7 跨集群的负载均衡 ........ 334

本章小结 .... 339


13 将虚拟机工作负载纳入网格 340

13.1 Istio 的虚拟机支持 .... 341

13.1.1 简化虚拟机中 sidecar 代理的安装与配置 ... 341

13.1.2 虚拟机的高可用性 ........ 343

13.1.3 网格内服务的 DNS 解析 .............. 346

13.2 设置基础设施 . 348

13.2.1 设置服务网格  349

13.2.2 配置虚拟机 .... 350

13.3 将网格扩展到虚拟机  352

13.3.1 向虚拟机暴露 istiod 和集群服务 . 352

13.3.2 使用 WorkloadGroup 表示一个工作负载组  353

13.3.3 在虚拟机中安装与配置 istio-agent .............. 356

13.3.4 将流量路由到集群服务  359

13.3.5 将流量路由到 WorkloadEntry ....... 360

13.3.6 虚拟机是由控制平面配置的 :强制执行双向认证 .... 363

13.4 揭开 DNS 代理的神秘面纱 ...... 364

13.4.1 DNS 代理如何解析集群内主机名 ............... 364

13.4.2 DNS 代理知道哪些主机名 ........... 366

13.5 自定义代理的行为 .... 367

13.6 将 WorkloadEntry 从网格中删除 .............. 368

本章小结 .... 369


14 在请求路径上扩展 Istio ..... 370

14.1 Envoy 的扩展能力 ..... 371

14.1.1 了解 Envoy 的过滤器链  371

14.1.2 用于扩展的过滤器 ........ 374

14.1.3 定制 Istio 的数据平面 ... 374

14.2 使用 EnvoyFilter 资源配置 Envoy 过滤器 ............... 374

14.3 调用外部的限流请求  379

14.4 使用 Lua 扩展 Istio 的数据平面 ............... 384

14.5 使用 WebAssembly 扩展 Istio 的数据平面 .............. 387

14.5.1 WebAssembly 简介 ........ 387

14.5.2 为什么使用 WebAssembly ....

电子工业出版社精品店店铺主页二维码
电子工业出版社精品店
扫描二维码,访问我们的微信店铺

Istio最佳实战

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏