华为云原生技术丛书 云原生服务网格Istio 原理、实践、架构与源码解析PDF电子书下载
- 电子书积分:18 积分如何计算积分?
- 作 者:张超盟等编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2019
- ISBN:9787121366536
- 页数:606 页
原理篇 2
第1章 你好,Istio 2
1.1 Istio是什么 2
1.2 通过示例看看Istio能做什么 4
1.3 Istio与服务治理 6
1.3.1 关于微服务 6
1.3.2 服务治理的三种形态 8
1.3.3 Istio不只解决了微服务问题 10
1.4 Istio与服务网格 11
1.4.1 时代选择服务网格 11
1.4.2 服务网格选择Istio 14
1.5 Istio与Kubernetes 15
1.5.1 Istio,Kubernetes的好帮手 16
1.5.2 Kubernetes,Istio的好基座 18
1.6 本章总结 20
第2章 Istio架构概述 21
2.1 Istio的工作机制 21
2.2 Istio的服务模型 23
2.2.1 Istio的服务 24
2.2.2 Istio的服务版本 26
2.2.3 Istio的服务实例 28
2.3 Istio的主要组件 30
2.3.1 istio-pilot 30
2.3.2 istio-telemetry 32
2.3.3 istio-policy 33
2.3.4 istio-citadel 34
2.3.5 istio-galley 34
2.3.6 istio-sidecar-injector 35
2.3.7 istio-proxy 35
2.3.8 istio-ingressgateway 36
2.3.9 其他组件 37
2.4 本章总结 37
第3章 非侵入的流量治理 38
3.1 Istio流量治理的原理 38
3.1.1 负载均衡 39
3.1.2 服务熔断 41
3.1.3 故障注入 48
3.1.4 灰度发布 49
3.1.5 服务访问入口 54
3.1.6 外部接入服务治理 56
3.2 Istio路由规则配置:VirtualService 59
3.2.1 路由规则配置示例 59
3.2.2 路由规则定义 60
3.2.3 HTTP路由(HTTPRoute) 63
3.2.4 TLS路由(TLSRoute) 78
3.2.5 TCP路由(TCPRoute) 81
3.2.6 三种协议路由规则的对比 83
3.2.7 VirtualService的典型应用 84
3.3 Istio目标规则配置:DestinationRule 89
3.3.1 DestinationRule配置示例 90
3.3.2 DestinationRule规则定义 90
3.3.3 DestinationRule的典型应用 103
3.4 Istio服务网关配置:Gateway 107
3.4.1 Gateway配置示例 108
3.4.2 Gateway规则定义 109
3.4.3 Gateway的典型应用 112
3.5 Istio外部服务配置:ServiceEntry 120
3.5.1 ServiceEntry配置示例 120
3.5.2 ServiceEntry规则的定义和用法 121
3.5.3 ServiceEntry的典型应用 123
3.6 Istio代理规则配置:Sidecar 126
3.6.1 Sidecar配置示例 126
3.6.2 Sidecar规则定义 126
3.7 本章总结 129
第4章 可扩展的策略和遥测 131
4.1 Istio策略和遥测的原理 131
4.1.1 应用场景 131
4.1.2 工作原理 136
4.1.3 属性 137
4.1.4 Mixer的配置模型 140
4.2 Istio遥测适配器配置 147
4.2.1 Prometheus适配器 148
4.2.2 Fluentd适配器 155
4.2.3 StatsD适配器 159
4.2.4 Stdio适配器 161
4.2.5 Zipkin适配器 163
4.2.6 厂商适配器 168
4.3 Istio策略适配器配置 169
4.3.1 List适配器 169
4.3.2 Denier适配器 171
4.3.3 Memory Quota适配器 172
4.3.4 Redis Quota适配器 175
4.4 Kubernetes Env适配器配置 178
4.5 本章总结 181
第5章 可插拔的服务安全 182
5.1 Istio服务安全的原理 182
5.1.1 认证 185
5.1.2 授权 189
5.1.3 密钥证书管理 192
5.2 Istio服务认证配置 193
5.2.1 认证策略配置示例 193
5.2.2 认证策略的定义 194
5.2.3 TLS访问配置 196
5.2.4 认证策略的典型应用 200
5.3 Istio服务授权配置 202
5.3.1 授权启用配置 202
5.3.2 授权策略配置 203
5.3.3 授权策略的典型应用 207
5.4 本章总结 210
第6章 透明的Sidecar机制 211
6.1 Sidecar注入 211
6.1.1 Sidecar Injector自动注入的原理 214
6.1.2 Sidecar注入的实现 216
6.2 Sidecar流量拦截 219
6.2.1 iptables的基本原理 220
6.2.2 iptables的规则设置 223
6.2.3 流量拦截原理 224
6.3 本章总结 228
第7章 多集群服务治理 230
7.1 Istio多集群服务治理 230
7.1.1 Istio多集群的相关概念 230
7.1.2 Istio多集群服务治理现状 231
7.2 多集群模式1:多控制面 232
7.2.1 服务DNS解析的原理 233
7.2.2 Gateway连接的原理 237
7.3 多集群模式2:VPN直连单控制面 238
7.4 多集群模式3:集群感知服务路由单控制面 240
7.5 本章总结 246
实践篇 248
第8章 环境准备 248
8.1 在本地搭建Istio环境 248
8.1.1 安装Kubernetes集群 248
8.1.2 安装Helm 249
8.1.3 安装Istio 250
8.2 在公有云上使用Istio 253
8.3 尝鲜Istio命令行 255
8.4 应用示例 257
8.4.1 Weather Forecast简介 257
8.4.2 Weather Forecast部署 258
8.5 本章总结 259
第9章 流量监控 260
9.1 预先准备:安装插件 260
9.2 调用链跟踪 261
9.3 指标监控 265
9.3.1 Prometheus 265
9.3.2 Grafana 268
9.4 服务网格监控 273
9.5 本章总结 277
第10章 灰度发布 278
10.1 预先准备:将所有流量都路由到各个服务的v1版本 278
10.2 基于流量比例的路由 279
10.3 基于请求内容的路由 283
10.4 组合条件路由 284
10.5 多服务灰度发布 286
10.6 TCP服务灰度发布 288
10.7 自动化灰度发布 290
10.7.1 正常发布 291
10.7.2 异常发布 294
第11章 流量治理 296
11.1 流量负载均衡 296
11.1.1 ROUND ROBIN模式 296
11.1.2 RANDOM模式 298
11.2 会话保持 299
11.2.1 实战目标 300
11.2.2 实战演练 300
11.3 故障注入 301
11.3.1 延迟注入 301
11.3.2 中断注入 303
11.4 超时 304
11.5 重试 306
11.6 HTTP重定向 308
11.7 HTTP重写 309
11.8 熔断 310
11.9 限流 313
11.9.1 普通方式 314
11.9.2 条件方式 315
11.10 服务隔离 317
11.10.1 实战目标 317
11.10.2 实战演练 317
11.11 影子测试 319
11.12 本章总结 322
第12章 服务保护 323
12.1 网关加密 323
12.1.1 单向TLS网关 323
12.1.2 双向TLS网关 326
12.1.3 用SDS加密网关 328
12.2 访问控制 331
12.2.1 黑名单 331
12.2.2 白名单 332
12.3 认证 334
12.3.1 实战目标 334
12.3.2 实战演练 334
12.4 授权 336
12.4.1 命名空间级别的访问控制 336
12.4.2 服务级别的访问控制 339
12.5 本章总结 341
第13章 多集群管理 342
13.1 实战目标 342
13.2 实战演练 342
13.3 本章总结 350
架构篇 352
第14章 司令官Pilot 352
14.1 Pilot的架构 352
14.1.1 Istio的服务模型 354
14.1.2 xDS协议 356
14.2 Pilot的工作流程 360
14.2.1 Pilot的启动与初始化 361
14.2.2 服务发现 363
14.2.3 配置规则发现 368
14.2.4 Envoy的配置分发 376
14.3 Pilot的插件 383
14.3.1 安全插件 385
14.3.2 健康检查插件 390
14.3.3 Mixer插件 391
14.4 Pilot的设计亮点 392
14.4.1 三级缓存优化 392
14.4.2 去抖动分发 393
14.4.3 增量EDS 394
14.4.4 资源隔离 395
14.5 本章总结 396
第15章 守护神Mixer 397
15.1 Mixer的整体架构 397
15.2 Mixer的服务模型 398
15.2.1 Template 399
15.2.2 Adapter 401
15.3 Mixer的工作流程 403
15.3.1 启动初始化 403
15.3.2 用户配置信息规则处理 409
15.3.3 访问策略的执行 416
15.3.4 无侵入遥测 421
15.4 Mixer的设计亮点 423
15.5 如何开发Mixer Adapter 424
15.5.1 Adapter实现概述 424
15.5.2 内置式Adapter的开发步骤 425
15.5.3 独立进程式Adapter的开发步骤 430
15.5.4 独立仓库式Adapter的开发步骤 437
15.6 本章总结 438
第16章 安全碉堡Citadel 439
16.1 Citadel的架构 439
16.2 Citadel的工作流程 441
16.2.1 启动初始化 441
16.2.2 证书控制器 442
16.2.3 gRPC服务器 444
16.2.4 证书轮换器 445
16.2.5 SDS服务器 446
16.3 本章总结 449
第17章 高性能代理Envoy 450
17.1 Envoy的架构 450
17.2 Envoy的特性 451
17.3 Envoy的模块结构 452
17.4 Envoy的线程模型 453
17.5 Envoy的内存管理 455
17.5.1 变量管理 455
17.5.2 Buffer管理 456
17.6 Envoy的流量控制 456
17.7 Envoy与Istio的配合 457
17.7.1 部署与交互 457
17.7.2 Envoy API 458
17.3 本章总结 459
第18章 代理守护进程Pilot-agent 460
18.1 为什么需要Pilot-agent 461
18.2 Pilot-agent的工作流程 461
18.2.1 Envoy的启动 462
18.2.2 Envoy的热重启 465
18.2.3 守护Envoy 466
18.2.4 优雅退出 467
18.3 本章总结 468
第19章 配置中心Galley 469
19.1 Galley的架构 469
19.1.1 MCP 470
19.1.2 MCP API 470
19.2 Galley的工作流程 471
19.2.1 启动初始化 471
19.2.2 配置校验 476
19.2.3 配置聚合与分发 479
19.3 本章总结 482
源码篇 484
第20章 Pilot源码解析 484
20.1 进程启动流程 484
20.2 关键代码分析 486
20.2.1 ConfigController 486
20.2.2 ServiceController 490
20.2.3 xDS异步分发 495
20.2.4 配置更新预处理 503
20.2.5 xDS配置的生成及分发 509
20.3 本章总结 514
第21章 Mixer源码解析 515
21.1 进程启动流程 515
21.1.1 runServer通过newServer新建 Server对象 517
21.1.2 启动Mixer gRPC Server 520
21.2 关键代码分析 520
21.2.1 监听用户的配置 520
21.2.2 构建数据模型 524
21.2.3 Check接口 533
21.2.4 Report接口 536
21.2.5 请求分发 539
21.2.6 协程池 541
21.3 本章总结 543
第22章 Citadel源码解析 544
22.1 进程启动流程 544
22.2 关键代码分析 548
22.2.1 证书签发实体IstioCA 548
22.2.2 SecretController的创建和核心原理 551
22.2.3 CA Server的创建和核心原理 556
22.3 本章总结 558
第23章 Envoy源码解析 559
23.1 Envoy的初始化 559
23.1.1 启动参数bootstrap的初始化 559
23.1.2 Admin API的初始化 560
23.1.3 Worker的初始化 562
23.1.4 CDS的初始化 562
23.1.5 LDS的初始化 563
23.1.6 GuardDog的初始化 564
23.2 Envoy的运行和建立新连接 564
23.2.1 启动worker 565
23.2.2 Listener的加载 565
23.2.3 接收连接 566
23.3 Envoy对数据的读取、接收及处理 567
23.3.1 读取数据 568
23.3.2 接收数据 568
23.3.3 处理数据 569
23.4 Envoy发送数据到服务端 570
23.4.1 匹配路由 571
23.4.2 获取连接池 572
23.4.3 选择上游主机 572
23.5 本章总结 573
第24章 Galley源码解析 574
24.1 进程启动流程 574
24.1.1 RunServer的启动流程 577
24.1.2 RunValidation Server的启动流程 578
24.2 关键代码分析 580
24.2.1 配置校验 580
24.2.2 配置监听 584
24.2.3 配置分发 585
24.3 本章总结 589
结语 590
附录A 源码仓库介绍 592
附录B 实践经验和总结 598
- 《物联网系统架构》解运洲 2019
- 《云架构操作系统基础 Red Hat Enterprise Linux 7》李贺华 2018
- 《Java微服务架构实战》李兴华编著 2020
- 《Spring Cloud微服务架构实战》陈韶健著 2020
- 《品质课程实验研究丛书 学校课程框架的建构 HOME课程的旨趣与架构》林青荻,刘佳责任编辑;(中国)周丽霞 2019
- 《SPRING BOOT技术内幕 架构设计与实现原理》朱智胜著 2020
- 《5G标准之网络架构:构建万物互联的智能世界》谭仕勇 2020
- 《云计算解决方案架构设计》(美)凯文·L.杰克逊(Kevin L. Jackson) 2020
- 《私有云架构设计与实践》尤永康 2019
- 《从企业级开发到云原生微服务 SPRING BOOT实战》汪云飞 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017