Istio:Kubernetes 之后的云原生技术“扛把子”

博文小编

2022-06-22

【本文原创:宋净超】

2017年5月,Google、IBM 和 Lyft 联合宣布将Istio开源,不知不觉中距今已5年有余。

在这5年多的时间里,Istio 项目从一颗种子长成了参天大树。

服务网格:云原生的核心技术之一

如今在国内,Istio几乎可以作为服务网格的代名词,作为CNCF(云原生计算基金会)定义的云原生关键技术之一,服务网格发展至今经历了以下几个阶段。

• 探索阶段:2017 —2018年

• 早期采用者阶段:2019—2020年

• 大规模落地及生态发展阶段:2021年至今

2018 年,CNCF 对云原生的定义是:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。

可见,CNCF将服务网格加入了云原生定义中,即服务网格是云原生的代表性技术之一。如今,Google正在将Istio 捐献给 CNCF,我们有理由相信,成为CNCF项目后,Istio的社区会开放,它未来的发展之路也会更顺畅。

服务网格与云原生应用

云原生的发展方兴未艾,虽然不断有新的技术和产品出现,但作为整个云原生技术栈的一部分,服务网格在过去一年里不断夯实了它作为“云原生网络基础设施”的定位。

下图展示了云原生技术栈模型,其中的每一层都有一些代表性的技术来定义标准。

作为新时代的中间件,服务网格与其他云原生技术交相辉映,如 Dapr(分布式应用程序运行时)定义了云原生中间件的能力模型,OAM 定义了云原生应用程序模型等,而服务网格定义了云原生七层网络模型。

为什么需要服务网格

使用服务网格并非意味着与 Kubernetes 决裂,而是自然而然的事情。

Kubernetes 的本质是通过声明配置对应用进行生命周期管理,而服务网格的本质是提供应用间的流量控制和安全性管理,以及可观察性。

假如已经使用Kubernetes构建了稳定的微服务平台,那么如何设置服务间调用的负载均衡和流量控制呢?

Envoy创造的xDS 协议被众多开源软件所支持,如Istio、Linkerd、MOSN 等。

Envoy对服务网格或云原生而言最大的贡献就是定义了xDS。

Envoy本质上是一个网络代理,是通过API配置的现代版代理,基于它衍生出了很多不同的使用场景,如API网关、服务网格中的sidecar代理和边缘代理。

技术发展从Kubernetes到Istio,概括来讲有以下原因。

Kubernetes 的本质是应用的生命周期管理,具体来说,就是应用的部署和管理(扩缩容、自 动恢复、发布)。

Kubernetes 为微服务提供了可扩展、高弹性的部署和管理平台。

服务网格的基础是透明代理,先通过Sidecar代理拦截微服务间的流量,再通过控制平面配置管理微服务的行为。如今,服务网格的部署模式也迎来了新的挑战,Sidecar 已经不是服务网格所必须的,基于 gRPC 的无代理的服务网格也在测试中。

xDS 定义了服务网格配置的协议标准,目前基于 gRPC的xDS也正在开发中。

服务网格将流量管理从Kubernetes中解耦,服务网格内部的流量无须kube-proxy组件的支持, 通过接近微服务应用层的抽象,管理服务间的流量,实现安全性和可观察性功能。

服务网格是对Kubernetes中service更上层的抽象,它的下一步是Serverless,这也是Google在 Istio之后紧接着推出基于Kubernetes和Istio之上的 Knative的原因。

以社区之名成就开源

2018年5月,在蚂蚁金服的支持下,ServiceMesher社区成立。

随后,国内刮起了服务网格的旋风,由社区领导的Istio官方文档翻译工作也进入白热化阶段。

随着时间的推移,我感受到系统介绍Istio的中文资料匮乏,于是在2018 年 9 月开始构思写一本关于Istio的图书,并在 GitHub上发起了Istio Handbook的开源电子书项目。

几个月后,随着服务网格技术的推广及ServiceMesher社区规模的扩大,我在社区的线上线下活动中结识了很多同样热衷于 Istio和服务网格技术的朋友。

我们一致决定,一起写一本 Istio 的开源电子书,将社区积累的宝贵文章和经验集结成系统的文字,分享给广大开发者。

2019年3月,在社区管理委员会的组织下,几十位成员自愿参与并开始共同撰写此书。

2020年5月,为了更好地推广云原生技术,丰富社区分享的技术内容,我们成立了云原生社区,并将原有的ServiceMesher社区纳入其中,社区运营的内容也从服务网格技术扩展到更加全面的云原生技术。

2020年10月,这本书主要的内容贡献者组成了编委会,成员分别有我、马若飞、王佰平、王炜、罗广明、赵化冰、钟华和郭旭东。

我们在出版社的指导与帮助下,对本书进行了后续的版本升级、完善、优化等工作。经过反复的迭代,这本《深入理解Isito:云原生服务网格进阶实战》终于和大家见面了。

内容简介

Istio 在 1.5 版本后有了重大的架构变化,同时引入或改进了多项功能,例如,引入了智能 DNS 代理、新的资源对象,改进了对虚拟机的支持等。
本书以 Istio 新版本为基础编写而成,在持续追踪 Istio 社区最新动向的基础上,力求为读者提供最新、最全面的内容。

本书共10章,分别从概念、实践和生态扩展3个层面为读者系统介绍了Istio的知识。

每一章的具体内容如下。

第1章 ServiceMesh概述

本章主要介绍了ServiceMesh的基本概念,着重分析了ServiceMesh对解决微服务应用流量控制等方面问题的便利性,同时引出了本书的主角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章 ServiceMesh生态

本章主要介绍了ServiceMesh的生态环境,包括主流的一些ServiceMesh开源产品,如Linkerd、Envoy等,以及云厂商所发布的商业化产品,同时对ServiceMesh领域目前的两个标准UDPA和SMI做了介绍,最后介绍了WebAssembly等产品的扩展能力。

最后,本书的多位作者都是一线的开发或运维工程师,具有丰富的 Istio 实战经验, 为本书提供了翔实、宝贵的参考案例。

本书特色

特色1:云原生社区是我国服务网格技术推广的先驱阵地。本书由云原生社区多位技术专家合力撰写完成,内容专业,质量保障。

特色2:本书经多次修订,基于Isito较新的版本和特性进行讲解。

特色3:本书图文并茂,示例丰富,包含进阶,既能夯实基础,又能突破瓶颈。

大咖赞誉

Service Mesh已深入人心,近些年演化出的Database Mesh、Event Mesh、IO Mesh、Chaos Mesh等都在快速发展,这些充满活力的理念和项目一定会掀起一股新的Mesh浪潮。

——张亮 SphereEx创始人、Apache ShardingSphere VP

云原生社区组织了一批贡献者对Istio做了深入解读和实践分享,能让技术团队少走弯路、少踩坑,真正领悟服务网格的价值。

——刘超 腾讯云T4架构师

假以时日,相信Istio必将大放异彩。当此时刻,这本《深入理解Istio:云原生服务网格进阶实战》足以满足我们对服务网格的所有期待。

——费良宏 Amazon Web Service首席架构师

本书汇集了云原生社区多名工程师的实践经验,由浅入深,全面介绍了Istio的功能、原理及高阶实战经验,是一本难得的从入门到进阶技术书。

——徐中虎 Istio社区Steering Committee,华为云原生开源团队核心成员

本书详细介绍了Istio新架构中的各个组件、功能及相关生态。相信大家可以从中学习到成熟的Service Mesh技术和架构设计思想。

——吴晟 Tetrate创始工程师、Apache SkyWalking创始人、Apache软件基金会首位中国董事

知识汇聚成书,经验落于文字,Istio庞大的体系架构和纷繁复杂的特性得以被清晰地呈现。相信这本书可以帮助读者了解Istio,掌握Istio。

——敖小剑 ervice Mesh布道师

面向读者

京东满100减50,扫码即购!

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    4931 721 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3037 36 0 1
  • czk 2017-07-29
    5101 28 0 1