新書推薦:
《
英国简史(刘金源教授作品)
》
售價:NT$
449.0
《
便宜货:廉价商品与美国消费社会的形成
》
售價:NT$
352.0
《
读书是一辈子的事(2024年新版)
》
售價:NT$
352.0
《
乐道文库·什么是秦汉史
》
售價:NT$
367.0
《
汉娜·阿伦特与以赛亚·伯林 : 自由、政治与人性
》
售價:NT$
500.0
《
女性与疯狂(女性主义里程碑式著作,全球售出300万册)
》
售價:NT$
500.0
《
药食同源中药鉴别图典
》
售價:NT$
305.0
《
设计中的比例密码:建筑与室内设计
》
售價:NT$
398.0
編輯推薦:
阿里云高级技术专家、阿里云服务网格ASM及Istio on Kubernetes技术负责人王夕宁撰写,详细介绍Istio的基本原理与开发实战,包含大量精选案例和参考代码可以下载,可快速入门Istio开发。
內容簡介:
本书系统介绍服务网格技术与Istio的开发实战。全书分为三大篇,共12章。初级篇包括第1~3章,首先介绍Istio和服务网格的基本概念,并快速搭建Istio环境,部署*个应用程序;然后介绍Istio的整体架构。中级篇包括第4~8章,介绍Istio在东西向、南北向流量方面的路由控制能力,包括流量路由规则、流量镜像等,以及流量治理方面的高级能力,包括流量策略、负载均衡等;还介绍Istio安全方面的能力,以及Istio Mixer的控制与观测能力。高级篇包括第9~12章,介绍Istio的稳定性与运维经验、Istio的定制与扩展、基于Istio的无服务器计算设计等;*后对云原生技术的生态系统进行了介绍和未来展望,并展示了如何实现多云环境下的多集群部署。
關於作者:
王夕宁 阿里云高级技术专家,阿里云服务网格产品ASM及Istio on Kubernetes技术负责人,关注Kubernetes、云原生、服务网格等领域。曾在IBM中国开发中心工作,担任过专利技术评审委员会主席,作为架构师和主要开发人员负责或参与了一系列在SOA中间件、云计算、IoT等领域的开发工作,拥有40多项相关领域的国际技术专利。
目錄 :
序 一
序 二
序 三
前 言
初级篇
第1章 服务网格与Istio 2
1.1 微服务架构的发展与挑战 2
1.2 使用应用程序库解决这些挑战 4
1.2.1 特定应用程序库的缺点 5
1.2.2 将这些问题推向基础设施 6
1.3 什么是服务网格 7
1.4 为什么服务网格是必要的 10
1.5 Istio服务网格 11
1.5.1 核心功能 12
1.5.2 为什么要使用Istio 14
1.5.3 成熟度和支持级别 15
1.6 本章总结 16
第2章 快速上手Istio 17
2.1 在MiniKube上搭建Istio环境 17
2.1.1 安装启动Minikube 17
2.1.2 安装部署Helm 18
2.1.3 安装部署Istio 19
2.2 在Docker Desktop上搭建Istio环境 22
2.2.1 安装配置Docker Desktop for
Kubernetes 22
2.2.2 切换Kubernetes 24
2.2.3 安装部署Helm 26
2.2.4 安装部署Istio 26
2.3 使用公有云Istio服务 28
2.4 在Istio中部署第一个应用程序 31
2.5 本章总结 39
第3章 Istio架构剖析 40
3.1 Istio的整体架构 40
3.2 剖析Istio控制平面 42
3.3 剖析Istio数据平面 45
3.3.1 Envoy代理 45
3.3.2 Envoy的启动配置 47
3.3.3 Envoy静态与动态配置 47
3.3.4 使用Envoy 51
3.3.5 Envoy请求重试 56
3.3.6 Envoy的Admin API 58
3.3.7 Envoy与其他类似代理的比较 61
3.4 剖析Sidecar自动注入 62
3.4.1 Kubernetes的Webhook机制 62
3.4.2 启用Webhook插件 63
3.4.3 采用Webhook自动注入Istio Sidecar 63
3.4.4 开启需要自动注入Sidecar的命名空间 66
3.5 本章总结 67
中级篇
第4章 东西向流量管理 70
4.1 流量管理 70
4.1.1 术语 72
4.1.2 流量拆分与导向 72
4.1.3 Istio服务与Kubernetes服务 73
4.1.4 示例 76
4.2 实现东西向流量路由 83
4.2.1 自动 Sidecar 注入 84
4.2.2 部署 85
4.2.3 查看Ingress Gateway的地址 85
4.2.4 请求路由 86
4.3 实现流量镜像及对比分析 89
4.3.1 流量镜像 89
4.3.2 流量对比 89
4.3.3 创建用于Istio流量镜像的服务 90
4.3.4 创建流量镜像的Istio策略 92
4.3.5 搭建Diffy用于请求流量对比 93
4.3.6 发送流量进行镜像验证 96
4.4 通过Istio管理应用的灰度发布 99
4.4.1 Kubernetes中的灰度发布 100
4.4.2 使用 Istio进行灰度发布 101
4.4.3 统一的流量路由规则 102
4.5 本章总结 103
第5章 南北向流量管理 104
5.1 Istio 网关 104
5.1.1 Istio网关的工作原理 104
5.1.2 Istio网关的负载均衡作用 105
5.1.3 入口网关服务 107
5.1.4 入口网关部署 107
5.1.5 网关资源 108
5.1.6 网关虚拟服务 109
5.1.7 调试入口网关 109
5.2 用HTTPS 加密网关 110
5.2.1 为入口网关配置TLS 111
5.2.2 创建示例服务 112
5.2.3 定义虚拟服务 112
5.2.4 通过网关请求示例服务 113
5.2.5 为多个主机配置 TLS入口网关 114
5.3 基于SNI的TLS路由 119
5.3.1 定义内部服务nginx 121
5.3.2 定义内部服务nginx2 122
5.3.3 部署网关 124
5.3.4 根据域名进行访问 125
5.4 服务条目 126
5.4.1 服务条目基本原理 126
5.4.2 服务条目的定义参数 127
5.5 实现出口流量路由的统一管理 130
5.5.1 出口安全 130
5.5.2 创建客户端 131
5.5.3 HTTP流量网关 131
5.5.4 HTTPS流量网关 133
5.5.5 出口流量的TLS发起 136
5.6 实现服务条目的DNS寻址 137
5.6.1 CoreDNS 及其插件工作机制 138
5.6.2 Kubernetes下的CoreDNS 139
5.6.3 部署Istio CoreDNS 140
5.6.4 更改集群CoreDNS配置 140
5.6.5 创建服务条目验证DNS解析 141
5.7 本章总结 142
第6章 流量治理 144
6.1 使用流量策略 144
6.1.1 目标规则 144
6.1.2 流量策略 145
6.2 设置负载均衡 146
6.2.1 标准负载均衡算法 147
6.2.2 会话保持 147
6.2.3 示例 147
6.3 熔断 150
6.3.1 连接池管理 151
6.3.2 异常检测 152
6.3.3 创建示例服务 152
6.3.4 使用fortio触发熔断 154
6.4 服务重试 157
6.5 故障注入 160
6.6 命名空间隔离下的流量管理 165
6.6.1 Sidecar资源定义 165
6.6.2 示例 166
6.7 本章总结 169
第7章 安全 170
7.1 Istio安全架构 170
7.1.1 Istio身份模型 172
7.1.2 Istio公钥基础设施 172
7.1.3 Istio证书和密钥轮换机制 173
7.2 剖析认证机制 173
7.2.1 认证架构 174
7.2.2 双向TLS认证 175
7.2.3 认证策略 175
7.3 使用认证策略 175
7.3.1 Istio默认认证策略 177
7.3.2 认证策略示例 177
7.3.3 双向认证策略检查 180
7.4 使用自定义CA证书和密钥 181
7.4.1 准备证书和密钥 181
7.4.2 插入证书和密钥 184
7.4.3 检查新证书 185
7.5 使用cert-manager管理网关证书 186
7.5.1 生成签名密钥对 186
7.5.2 将签名密钥对保存为Secret 186
7.5.3 部署cert-manager 186
7.5.4 创建引用Secret的Issuer 187
7.5.
內容試閱 :
目前,服务网格是云原生范畴中最热门的话题。随着容器越来越流行,服务拓扑也频繁变动,这就需要更好的网络性能。服务网格能够通过服务发现、路由、负载均衡、心跳检测和支持可观测性,帮助开发人员管理网络流量。服务网格将为无规则的、复杂的容器问题提供规范化的解决方案。
Istio是当前业界服务网格领域中最流行的实现,可帮助开发人员在混合环境中简化运行和操作云原生服务架构的应用。Istio使得开发人员能使用自己喜欢的编程语言构建服务功能,这有效提升了开发人员的生产力,同时免于将解决分布式系统问题的代码糅合到业务代码中。
Istio是一个开源项目,拥有一个充满活力、开放和多元化的社区,它的目标是赋能开发人员和运维人员,使他们在所有环境中都能敏捷地发布和维护微服务,拥有底层网络的完全可见性,且获得一致的控制和安全能力。在本书中,我们将展示如何利用Istio的功能在云原生世界中运行微服务应用。
本书适合零基础初学者,对服务网格感兴趣的人也可以把本书作为一个不错的起点。本书旨在让读者熟悉服务网格的基础概念和理论,了解在现实世界中如何应用服务网格技术。
诚然,如果读者已经对服务网格有所了解,或者在实际工作中已经使用过类似的技术,本书的中、高级篇提到的实际应用中遇到的经验教训也非常有用。
全书分为3大篇:初级篇、中级篇、高级篇。初级篇包括第1~3章,中级篇包括第4~8章,高级篇包括第9~12章。
第1章讨论从单体应用程序向分布式微服务架构进行转型的过程中面临的挑战,引出解决这些问题的一个方法,即服务网格(Service Mesh)技术。阐述Istio作为服务网格技术的代表,如何提供一个完整的解决方案。
第2章重点介绍如何在MiniKube、Docker Desktop上搭建Istio环境,用于个人开发测试。同时介绍基于公有云Kubernetes容器服务,如何搭建用于企业级应用开发及生产运行的Istio环境,以及公有云提供的Istio环境。最后,为读者准备了一个简单示例,以供学习如何在搭建好的Istio环境中部署一个应用程序来体验Istio的功能。
第3章重点介绍Istio的架构,首先从整体架构设计原理出发,一步步详细介绍Istio的控制平面、数据平面以及Envoy在Istio架构下的部署使用,并针对当下的其他服务网格进行对比。
第4章重点介绍Istio的东西向流量治理方法,首先介绍Istio流量管理的基本内容以及如何使用东西向流量管理,接着针对流量路由规则、流量镜像通过示例展开详细介绍,最后介绍如何通过Istio管理应用的灰度发布场景,并详述流量路由规则的定义。
第5章介绍Istio南北向流量管理方法,即将集群外部的客户端连接到集群内运行,以及从集群内访问集群外部的任何服务。首先介绍Istio网关以及服务条目(Service Entry)的概念,然后详细介绍如何加密网关,最后介绍基于CoreDNS插件扩展实现服务条目的DNS寻址。
第6章介绍Istio在流量治理方面的高级功能,包括如何使用流量策略、设置负载均衡,重点介绍Istio提供的混沌工程能力,即如何使用连接池配置和异常检测实现熔断功能,并通过示例介绍服务重试和故障注入的操作方法。最后,讲述了Istio 1.1之后新增的Sidecar命名空间隔离下的流量管理功能。
第7章介绍Istio在安全方面的功能,剖析Citadel的架构设计,介绍如何使用认证策略、双向认证等功能,以及如何提升Istio在生产环境中的安全性。
第8章介绍Istio Mixer的控制与观测功能,首先介绍Mixer的架构设计,然后介绍几个适配器,包括用于指标数据收集的Prometheus适配器、日志数据收集适配器,以及如何启用分布式跟踪、速率限制策略及黑白名单策略等。
第9章围绕Istio的稳定性与运维调试展开。首先,介绍Istio相关组件的功能稳定性、可能的请求错误排查情况,以及如何使用SDS动态管理证书来提升稳定性,接着重点阐述Istio流量管理相关的运维及问题排查,以帮助读者在遇到问题时可以参考调试,最后介绍Istio在运维过程中涉及的组件升级与回滚,以及带来的影响。
第10章介绍如何对Istio进行定制与扩展。首先介绍如何扩展Mixer适配器,通过适配器将Mixer与不同的后端基础设施集成。之后从多个角度阐述Istio的定制与扩展功能,包括Istio CNI插件扩展,从Kubernetes扩展到虚拟机的网格扩展,如何扩展Envoy过滤器以及如何集成外部Zipkin兼容服务。
第11章介绍Knative如何基于Istio实现了无服务器计算能力,并通过示例讲解Knative的使用。
第12章总结分析以Kubernetes与Istio为基础的云原生操作系统给云计算领域带来的影响,以及云原生技术的生态系统与未来发展。同时,介绍了服务网格如何支持多云环境下、多集群混合部署。
本书所有示例代码都放在GitHub上,地址为https:github.comosswangxiningistio-book,读者可以查看或下载使用。
由于作者水平和时间有限,书中难免会有一些纰漏和错误,欢迎读者及时指正。可以通过电子邮件osswangxining@163.com联系到我。
致谢
感谢所有在本书撰写、出版过程中给予过帮助的人。这本书从筹划到出版的整个过程,得到了很多人的支持和帮助。这里要特别感谢机械工业出版社的吴怡编辑,没有她的鼎力相助,就没有本书。同时也