描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115515735
1.Service Mesher社区成员作品,作为Service Mesh的布道者,该社区成员对于Istio的了解和认知都具备一定的权-威性。 2.本书基于*-新的Istio 1.1版本写作。 3.本书配套代码可供读者下载。 服务网格技术为现有的微服务架构带来了巨大的变革,开发人员只需要专注于核心业务逻辑相关的设 计开发工作,而不需要自己手动实现各种复杂的服务治理功能。作者结合自己在公司微服务化过程中的实践经验,以浅显易懂的方式介绍了 Istio 服务网格的重要知识点,并用大量实例展示了 Istio 的常用和重要的特点。作为一本 Istio 实用入门图书,本书可以为初学的读者提供快捷的入门和实践指导。 —王强 FreeWheel 研发副总裁 服务网格技术的出现很好地解决了微服务架构中通信层面临的痛点,而Istio 已然成为其中翘楚并得到开发人员的认可。本书以解决微服务的通信问题作为切入点,引入服务网格的概念,并通过一系列循序渐进的示例展示了 Istio 的主要功能和特性,可作为开发人员的入门参考。 —徐昊 Thoughtworks 中国区 CTO 服务网格技术是近两年的前沿技术,其中的代表之作 Istio 一经推出就深受社区和开发人员的追捧。 本书面向对网格技术感兴趣并想要入门的开发人员。通过阅读本书,读者可以了解到与服务网格相关的理论知识以及 Istio 的架构和技术特点,并通过书中大量的实例练习来掌握 Istio 丰富和实用的功能。 —白伯纯 前人人网架构师
《Istio实战指南》是Istio服务网格技术的入门图书。全书共分为9章,深入浅出地介绍了Istio的相关知识,结合大量的示例,清晰而详细地阐述了Istio的主要特性。 《Istio实战指南》的第1章介绍了服务网格的起源和发展,第2~4章介绍了Istio的基本概念和安装。第5~8章,采用实例练习的方式详细地介绍了Istio的流量管理、策略和遥测的配置、可视化工具的集成以及安全相关的特性。这部分是《Istio实战指南》的重点,可以帮助读者学以致用,把Istio应用到真实的项目开发中。第9章是进阶内容,介绍了在云平台集成Istio的方式、高级流量控制以及调试和故障排除的内容。《Istio实战指南》的附录部分列举了安装选项、属性词汇表、表达式语言、适配器列表和istioctl命令,供读者查阅参考。 《Istio实战指南》适合有一定Kubernetes基础,对服务网格和Istio技术感兴趣的开发人员和运维人员阅读。
第 1章 服务网格 1
1.1 服务端架构的发展——从单体应用到微服务 1
1.1.1 单体应用 1
1.1.2 多层结构 3
1.1.3 面向服务的架构 4
1.1.4 微服务架构 5
1.2 微服务架构的痛点 6
1.3 服务网格的发展 7
1.3.1 耦合阶段 7
1.3.2 封装公用库 8
1.3.3 Sidecar模式 9
1.3.4 服务网格出现 11
1.4 什么是服务网格 12
1.4.1 基本概念 12
1.4.2 服务网格的功能 12
1.5 服务网格产品介绍 14
1.5.1 Linkerd 14
1.5.2 Envoy 14
1.5.3 Istio 15
1.5.4 其他 16
1.6 小结 17
第 2章 Istio入门 18
2.1 什么是Istio 18
2.2 Istio的架构 19
2.3 Istio的核心控件 20
2.3.1 Envoy 20
2.3.2 Pilot 21
2.3.3 Mixer 22
2.3.4 Citadel 23
2.3.5 Galley 23
2.4 Istio的主要功能 23
2.4.1 流量管理 23
2.4.2 策略和遥测 27
2.4.3 可视化 28
2.4.4 安全 28
2.5 小结 30
第3章 Istio的安装和部署 32
3.1 准备工作 32
3.1.1 安装Go语言 32
3.1.2 安装Docker 35
3.1.3 Kubernetes平台搭建 37
3.2 安装Istio 42
3.2.1 下载安装包 43
3.2.2 安装Helm 43
3.2.3 使用Helm安装Istio 44
3.2.4 确认安装结果 47
3.2.5 问题处理 49
3.3 小结 50
第4章 Bookinfo应用 51
4.1 什么是Bookinfo应用 51
4.2 部署Bookinfo应用 53
4.2.1 安装和部署 53
4.2.2 默认目标规则 61
4.3 小结 61
第5章 流量管理 63
5.1 流量管理中的规则配置 63
5.1.1 VirtualService 64
5.1.2 DestinationRule 67
5.1.3 ServiceEntry 68
5.1.4 Gateway 69
5.2 流量转移 70
5.2.1 蓝绿部署 70
5.2.2 金丝雀发布 76
5.2.3 A/B测试 79
5.3 超时和重试 80
5.3.1 超时 81
5.3.2 重试 83
5.4 控制入口流量 84
5.4.1 确定入口IP和端口 85
5.4.2 配置网关 86
5.5 控制出口流量 89
5.5.1 启动Sleep服务 89
5.5.2 配置外部服务 90
5.5.3 配置外部HTTPS服务 92
5.5.4 为外部服务设置路由规则 93
5.6 熔断 94
5.6.1 熔断简介 94
5.6.2 设置后端服务 95
5.6.3 设置客户端 96
5.6.4 触发熔断机制 97
5.7 小结 99
第6章 策略与遥测 100
6.1 Mixer的工作原理 100
6.2 限流策略 103
6.2.1 Mixer配置项 104
6.2.2 客户端配置项 105
6.2.3 有条件的限流 106
6.3 黑名单和白名单策略 107
6.3.1 初始化路由规则 107
6.3.2 用Denier适配器实现黑名单 108
6.3.3 用List适配器实现黑白名单 109
6.4 遥测 111
6.4.1 收集新的指标数据 111
6.4.2 指标配置解析 113
6.4.3 日志配置解析 114
6.4.4 用Prometheus查看指标 114
6.5 小结 115
第7章 可视化工具 117
7.1 分布式追踪 117
7.1.1 启动Jaeger 118
7.1.2 生成追踪数据 119
7.1.3 追踪原理 120
7.2 使用Prometheus查询指标 121
7.2.1 Prometheus简介 121
7.2.2 查询Istio指标 122
7.3 用Grafana监控指标数据 124
7.3.1 Grafana简介 124
7.3.2 安装Grafana 124
7.3.3 指标数据展示 125
7.4 服务网格可视化工具——Kiali 127
7.4.1 Kiali简介 127
7.4.2 安装和启动Kiali 128
7.4.3 使用Kiali观测服务网格 129
7.5 使用EFK收集和查看日志 132
7.5.1 集中式日志架构 132
7.5.2 安装EFK 133
7.5.3 用Kibana查看生成的日志 140
7.6 小结 142
第8章 安全 144
8.1 认证 144
8.1.1 Istio中的认证方式 144
8.1.2 认证策略 146
8.2 授权 149
8.2.1 启用授权 149
8.2.2 授权策略 150
8.3 HTTP服务的访问控制 152
8.3.1 准备工作 152
8.3.2 命名空间的访问控制 154
8.3.3 服务级别的访问控制 155
8.4 TCP服务的访问控制 157
8.4.1 准备工作 157
8.4.2 启动访问控制 160
8.5 外部密钥和证书 162
8.5.1 插入密钥和证书 162
8.5.2 检查新证书 163
8.6 小结 163
第9章 进阶 165
9.1 云平台集成 165
9.1.1 在Google Cloud GKE上启用Istio 165
9.1.2 使用阿里云Kubernetes容器服务 169
9.2 高级流量控制 171
9.2.1 故障注入 171
9.2.2 流量镜像 174
9.3 调试和故障排查 179
9.3.1 Istio组件的日志 180
9.3.2 调试 181
9.3.3 故障排查 183
9.4 小结 186
附录 187
附录A Helm安装选项 187
A.1 certmanager选项 187
A.2 galley选项 188
A.3 gateways选项 188
A.4 global选项 191
A.5 grafana选项 194
A.6 Istio_cni选项 196
A.7 Istiocoredns选项 196
A.8 kiali选项 196
A.9 mixer选项 197
A.10 nodeagent选项 198
A.11 pilot选项 198
A.12 prometheus选项 199
A.13 security选项 200
A.14 servicegraph选项 200
A.15 sidecarInjectorWebhook选项 200
A.16 tracing选项 201
附录B 属性词汇表 202
附录C 表达式语言 205
附录D 适配器列表 206
附录E 命令行工具istioctl 207
E.1 istioctl authn 207
E.2 istioctl create 207
E.3 istioctl delete 208
E.4 istioctl deregister 208
E.5 istioctl gen-deploy 208
E.6 istioctl get 209
E.7 istioctl kube-inject 209
E.8 istioctl proxy-config 210
E.9 istioctl register 210
E.10 istioctl replace 210
E.11 istioctl version 210
评论
还没有评论。