前言
以社区之名成就开源
2018年5月,在蚂蚁金服的支持下,ServiceMesher社区成立。随后,国内刮起了服务网格的旋风,由社区领导的Istio官方文档翻译工作也进入白热化阶段。
随着时间的推移,我感受到系统介绍 Istio 的中文资料匮乏,于是在2018年9月开始构思写一本关于Istio 的图书,并在 GitHub 上发起了 Istio Handbook 的开源电子书项目。几个月后,随着服务网格技术的推广及 ServiceMesher 社区规模的扩大,我在社区的线上线下活动中结识了很多同样热衷于 Istio 和服务网格技术的朋友。我们一致决定,一起写一本 Istio 的开源电子书,将社区积累的宝贵文章和经验集结成系统的文字,分享给广大开发者。
2019年3月,在社区管理委员会的组织下,几十位成员自愿参与并开始共同撰写此书。2020年5月,为了更好地推广云原生技术,丰富社区分享的技术内容,我们成立了云原生社区,并将原有的ServiceMesher社区纳入其中,社区运营的内容也从服务网格技术扩展到更加全面的云原生技术。
2020年10月,本书主要的内容贡献者组成了编委会,成员分别有马若飞、宋净超、王佰平、王炜、罗广明、赵化冰、钟华和郭旭东。我们在出版社的指导与帮助下,对本书进行了后续的版本升级、完善、优化等工作。经过反复的迭代,这本书终于和大家见面了。
本书特色
Istio在1.5 版本后有了重大的架构变化,同时引入或改进了多项功能,例如,引入了智能 DNS 代理、新的资源对象,改进了对虚拟机的支持等。
本书以Istio新版本为基础编写而成,在持续追踪 Istio 社区最新动向的基础上,力求为读者提供最新、最全面的内容。另外,多位作者都是一线的开发或运维工程师,具有丰富的Istio实战经验,为本书提供了翔实、宝贵的参考案例。
本书内容
本书共10章,分别从概念、实践和生态扩展3个层面为读者系统介绍了Istio的知识,每一章的具体内容如下。
第1章 Service Mesh概述
本章主要介绍了Service Mesh的基本概念,着重分析了Service Mesh对解决微服务应用流量控制等方面问题的便利性,同时引出了本书的主角Istio,简要介绍了Istio的概念及主要功能。
第2章 核心功能
本章主要介绍了Istio的三大核心功能——流量控制、安全、可观察性,并对实现这些功能的Istio自定义资源做了简要说明,让读者能更好地了解Istio的核心功能。
第3章 架构解析
本章主要介绍了Istio的架构组成,详细分析了Istio的架构变迁过程,并深入剖析了控制平面和数据平面中各个组件的功能和工作原理。
第4章 安装与部署
本章主要介绍了如何在Kubernetes集群中安装Istio,以及Istio的两种版本升级方式:金丝雀升级和热升级。同时,本章还介绍了如何安装Istio官方提供的Bookinfo案例,用以作为后面章节的练习环境。
第5章 流量控制
本章详细介绍了Istio流量控制方面的资源和功能:CRD、路由、流量镜像、Ingress/Egress、超时、重试、熔断和故障注入,并通过代码案例演示了实现这些功能的自定义资源,使读者能够知道如何利用这些自定义资源来配置Istio。
第6章 可观察性
本章从可观察性的三大支柱出发,分别介绍了如何利用Prometheus和Grafana收集和展示指标,如何基于ELK等框架采集和分享Istio日志,如何利用Jaeger等分布式追踪工具观察请求路径。同时,本章还对Istio的专属网格监控工具Kiali做了介绍。
第7章 安全
本章主要介绍了Istio的安全架构及两大安全方面的能力:认证和授权。同时,本章还通过实例展示了如何利用自定义资源完成相应的授权和认证配置。
第8章 进阶实战
本章聚焦于Istio的高阶功能,对开发者关心的Istio落地的热点问题和解决方案做了深入分析,包括集成服务注册中心、对接API网关、分布式追踪增强、部署模型、多集群部署与管理、智能DNS等。
第9章 故障排查
本章详细介绍了Istio使用过程中的常见问题及解决方法,并展示了如何使用Istio的命令行工具完成故障排查、配置分析等操作。
第10章 Service Mesh生态
本章主要介绍了Service Mesh的生态环境,包括主流的一些Service Mesh开源产品,如Linkerd、Envoy等,以及云厂商所发布的商业化产品,同时对Service Mesh领域目前的两个标准UDPA和SMI做了介绍,最后介绍了WebAssembly等产品的扩展能力。
致谢
感谢马博、马越、王发康、叶王、叶志远、刘超、刘洪晔、刘艳超、孙召昌、宋杰、孟明、官余棚、陈洪波、陈鹏、苗立尧、党鹏飞、翁扬慧、高洪涛、高威、高维宗、崔晓晴、梁豪、郭栋、韩佳浩、谭骁和颜强对本书内容的贡献。最后还要感谢本书的责任编辑孙奇俏在图书出版过程中的帮助和支持。
作者团队水平有限,书中难免存在不足之处,恳请各位读者批评指正。
宋净超
2022年4月