深入浅出Istio:Service Mesh快速入门与实践
  • 推荐0
  • 收藏6
  • 浏览1.0K

深入浅出Istio:Service Mesh快速入门与实践

崔秀龙 (作者)  张国霞 (责任编辑)

  • 丛  书:博文视点云原生精品丛书
  • 书  号:978-7-121-35964-4
  • 出版日期:2019-03-01
  • 页  数:216
  • 开  本:
  • 出版状态:图书立项
  • 维护人:张国霞
Google联合IBM、Lyft推出的Istio,一经问世就受到了人们的普遍关注,其热度迅速攀升,成为Service Mesh(服务网格)方案的代表项目。本书整理了Istio中的部分概念和案例,以快速入门的形式,对Istio的基础用法一一进行讲解,并在书末给出一些试用方面的建议。
在本书中,前3章从微服务和服务网格的简短历史开始,讲述了服务网格的诞生过程、基本特性及Istio的核心功能,若对这些内容已经有所了解,则可以直接从第4章开始阅读;第4、5章分别讲解了Istio的配置和部署过程;第6章至第9章,通过多个场景来讲解Istio的常用功能;第10章结合了笔者的实践经验,为读者提供了Istio的一系列试用建议。本书没有采用官方复杂的Book Info应用案例,而是采用客户端+简单HTTP服务端的案例,读者随时都能在短时间内启动一个小的测试。
本书面向对服务网格技术感兴趣,并希望进一步了解和学习Istio的中高级技术人员,假设读者已经了解Kubernetes的相关概念并能够在Kubernetes上熟练部署和管理微服务。若希望全面、深入地学习Kubernetes,可参考《Kubernetes权威指南:从Docker到Kubernetes实践全接触》和《Kubernetes权威指南:企业级容器云实战》。
Istio首著!Service Mesh很神秘?来!快速入门与实践!从Kubernetes(K8s)到Istio,云原生走起。
崔秀龙
HPE软件分析师;
Istio、Kubernetes项目成员;
Istio.io主要贡献者之一;
《Kubernetes权威指南:从Docker到Kubernetes实践全接触》作者;
《Kubernetes权威指南:企业级容器云实战》作者;
自动化、马拉松爱好者。
为什么写作本书
Google联合IBM、Lyft推出的Istio,一经问世就受到了人们的普遍关注,其热度迅速攀升,将Service Mesh(服务网格)的命名者Linkerd远远抛在身后,成为Service Mesh方案的代表项目。笔者从Istio问世开始,便和ServiceMesher社区及众多同样看好Istio的朋友一起,持续关注和参与Istio项目,并在该过程中对Service Mesh的技术生态及Istio自身的来龙去脉有了一定的认识。
在和社区互动的过程中,笔者看到有很多用户对这一新生事物一头雾水,因此斗胆写作本书,将Istio中的部分概念和案例重新整理,以快速入门的形式,对Istio的基础用法一一进行讲解,并在书末给出一些试用方面的建议。
本书读者对象
本书面向对服务网格技术感兴趣,并希望进一步了解和学习Istio的中高级技术人员,假设读者已经了解Kubernetes的相关概念并能够在Kubernetes上熟练部署和管理微服务。若希望全面、深入地学习Kubernetes,可参考《Kubernetes权威指南:从Docker到Kubernetes实践全接触》和《Kubernetes权威指南:企业级容器云实战》。
本书概要
本书围绕Istio对服务网格的概念、历史和能力,以各种实例为基础,进行了易于上手和理解的讲解。
前3章从微服务和服务网格的简短历史开始,讲述了服务网格的诞生过程、基本特性及Istio的核心功能,若对这些内容已经有所了解,则可以直接从第4章开始阅读。
第4、5章分别讲解了Istio的配置和部署过程。
第6章至第9章,通过多个场景来讲解Istio的常用功能。本书没有采用官方复杂的复杂Book Info应用案例,而是采用客户端+简单HTTP服务端的案例,读者随时都能在短时间内启动一个小的测试。
第10章结合了笔者的实践经验,为读者提供了Istio的一系列试用建议。
希望读者能通过本书快速地对Istio的功能特性有一个基本认识,理解其中的优点和不足,并进一步试用和评估。
相关资源
为方便大家学习和实践,本书提供了两个应用项目,其中,sleep客户端应用项目的地址为https://github.com/fleeto/sleep,flaskapp服务端应用项目的地址为https://github.com/fleeto/flaskapp。另外,笔者深度参与的Istio官方文档汉化项目也已上线,地址为https://istio.io/zh。
致谢
感谢永远不知道笔者在做什么的崔夫人的大力支持;
感谢电子工业出版社工作严谨、高效的张国霞编辑,她在成书过程中对笔者的指导、协助和鞭策,是本书得以完成的重要助力;
另外,笔者在学习、交流Istio的过程中,从敖小剑、宋净超两位大咖,以及他们创办的Service Mesher社区(http://www.servicemesher.com/)所聚集的大量服务网格技术爱好者身上获得很多启发,在此一并致以诚挚的谢意。

目录

第1章 服务网格的历史 1
1.1 Spring Cloud 3
1.2 Linkerd 4
1.3 Istio 6
1.4 国内服务网格的兴起 6
第2章 服务网格的基本特性 8
2.1 连接 9
2.2 安全 12
2.3 策略 13
2.4 观察 13
第3章 Istio基本介绍 15
3.1 Istio的核心组件及其功能 16
3.1.1 Pilot 16
3.1.2 Mixer 18
3.1.3 Citadel 20
3.1.4 Sidecar(Envoy) 20
3.2 核心配置对象 21
3.2.1 networking.istio.io 22
3.2.2 config.istio.io 24
3.2.3 authentication.istio.io 27
3.2.4 rbac.istio.io 28
3.3 小结 28
第4章 Istio快速入门 29
4.1 环境介绍 30
4.2 快速部署Istio 31
4.3 部署两个版本的服务 33
4.4 部署客户端服务 37
4.5 验证服务 39
4.6 创建目标规则和默认路由 39
4.7 小结 42
第5章 用Helm部署Istio 43
5.1 Istio Chart概述 44
5.1.1 Chart.yaml 44
5.1.2 values-*.yaml 45
5.1.3 requirements.yaml 46
5.1.4 templates/_affinity.tpl 47
5.1.5 templates/sidecar-injector-configmap.yaml 47
5.1.6 templates/configmap.yaml 48
5.1.7 templates/crds.yaml 48
5.1.8 charts 48
5.2 全局变量介绍 49
5.2.1 hub和tag 49
5.2.2 ingress.enabled 50
5.2.3 Proxy相关的参数 51
5.2.4 proxy_init.image 53
5.2.5 imagePullPolicy 53
5.2.6 controlPlaneSecurityEnabled 53
5.2.7 disablePolicyChecks 53
5.2.8 enableTracing 53
5.2.9 mtls.enabled 53
5.2.10 imagePullSecrets 54
5.2.11 arch 54
5.2.12 oneNamespace 54
5.2.13 configValidation 54
5.2.14 meshExpansion 55
5.2.15 meshExpansionILB 55
5.2.16 defaultResources 55
5.2.17 hyperkube 55
5.2.18 priorityClassName 55
5.2.19 crds 56
5.2.20 小结 56
5.3 Istio安装清单的生成和部署 56
5.3.1 编辑values.yaml 56
5.3.2 生成部署清单 58
5.3.3 部署Istio 58
5.4 小结 59
第6章 Istio的常用功能 60
6.1 在网格中部署应用 61
6.1.1 对工作负载的要求 63
6.1.2 使用自动注入 64
6.1.3 准备测试应用 69
6.2 修改Istio配置 69
6.3 使用Istio Dashboard 70
6.3.1 启用Grafana 70
6.3.2 访问Grafana 71
6.3.3 开放Grafana服务 73
6.3.4 学习和定制 74
6.4 使用Prometheus 76
6.4.1 访问Prometheus 76
6.4.2 开放Prometheus服务 77
6.4.3 学习和定制 77
6.5 使用Jaeger 77
6.5.1 启用Jaeger 78
6.5.2 访问Jaeger 78
6.5.3 跟踪参数的传递 81
6.5.4 开放Jaeger服务 86
6.6 使用Kiali 87
6.6.1 启用Kiali 87
6.6.2 访问Kiali 88
6.6.3 开放Kiali服务 92
6.7 小结 92
第7章 HTTP流量管理 93
7.1 定义目标规则 94
7.2 定义默认路由 98
7.3 流量的拆分和迁移 101
7.4 金丝雀部署 105
7.5 根据来源服务进行路由 108
7.6 对URI进行重定向 110
7.7 通信超时控制 115
7.8 故障重试控制 116
7.9 入口流量管理 120
7.9.1 使用Gateway开放服务 121
7.9.2 为Gateway添加证书支持 123
7.9.3 为Gateway添加多个证书支持 124
7.9.4 配置入口流量的路由 126
7.10 出口流量管理 127
7.10.1 设置Sidecar的流量劫持范围 128
7.10.2 设置ServiceEntry 129
7.11 新建Gateway控制器 131
7.12 设置服务熔断 134
7.13 故障注入测试 136
7.13.1 注入延迟 137
7.13.2 注入中断 138
7.14 流量复制 139
第8章 Mixer适配器的应用 142
8.1 Mixer适配器简介 143
8.2 基于Denier适配器的访问控制 144
8.3 基于Listchecker适配器的访问控制 146
8.4 使用MemQuota适配器进行服务限流 150
8.4.1 Mixer对象的定义 150
8.4.2 客户端对象定义 152
8.4.3 测试限流功能 153
8.4.4 注意事项 154
8.5 使用RedisQuota适配器进行服务限流 155
8.5.1 启动Redis服务 155
8.5.2 定义限流相关对象 156
8.5.3 测试限流功能 158
8.6 为Prometheus定义监控指标 158
8.6.1 默认监控指标 159
8.6.2 自定义监控指标 162
8.7 使用stdio输出自定义日志 165
8.7.1 默认的访问日志 167
8.7.2 定义日志对象 169
8.7.3 测试输出 170
8.8 使用Fluentd输出日志 171
8.8.1 部署Fluentd 171
8.8.2 定义日志对象 173
8.8.3 测试输出 174
8.9 小结 175
第9章 Istio的安全加固 176
9.1 Istio安全加固概述 177
9.2 启用mTLS 179
9.3 设置RBAC 183
9.4 RBAC的除错过程 189
第10章 Istio的试用建议 192
10.1 Istio自身的突出问题 193
10.2 确定功能范围 194
10.3 选择试用业务 196
10.4 试用过程 197
10.4.1 制定目标 197
10.4.2 方案部署 198
10.4.3 测试验证 200
10.4.4 切换演练 201
10.4.5 试点上线 201

读者评论

  • 请问资源下载链接是?那么多yaml文件,输入太慢。

    涂传滨发表于 2019/3/24 12:31:49

图书类别

相关博文

同系列书

相关图书

期权新世界——解读期权动态调整与策略实战(精装)

陈竑廷 (作者)

这是一本讲解灵活应用期权的实战书,建立在作者多年的投资实战的基础上,从独特的角度解析期权,并一步步带领读者在市场变化中进场布局、动态调整、收尾出场。全书分为四大...

¥99.00

程序自动化交易——投资策略解析

刘杰 (作者)

本书从MQL4语言入手,帮助读者建立自动化交易的概念,同时借助自动化交易程序去验证一些典型的投资策略,且从自动化交易的角度借助在回测时获取的大量市场数据,帮助读...

¥69.00

基金投资百问百答小红书(双色精装)

韩超 (作者)

投资从来不是一件轻松的事,投入与回报往往也不成正相关关系。随着经济高速发展、社会竞争日趋激烈、生活节奏越来越快,个人投资者能花在投资上的时间越来越少。而指数基金...

¥99.00

增长起跑线:数字营销实战指南

吴英劼 刘丹 (作者)

本书从数字时代的企业增长困境切入,创新性的提出了数字时代企业增长三大黄金要素:品牌、渠道、用户,让读者从纷杂的数字营销理论中,找到帮助企业增长的最快、最重要的核...

¥69.00

带你成为股权激励项目专家——股权激励项目实战

高建华 (作者)

1)从写作视角上:站在了一个更高的角度,作者不是像市场在售的几乎是所有股权激励类图书,将关注点放在股权激励方案本身,而是从真正实际操作的角度,将股权激励 视作项...

¥89.00

超级搜索术:帮你找到99%问题的答案

朱丹 (作者)

如何报高考志愿?要不要现在换工作?如何租房?要不要现在买房?如何快速获得行业报告?如何判断药是否对症?如何快速找到合适的线下活动场地?……人生中99%的问题早已...

¥69.30