| 作者: | Christian E. Posta and Rinor Maloku |
| 语言: | 英文 |
| 出版年份: | 2022 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Istio in Action》是一本由Manning出版社出版的Istio服务网格实战指南,专为希望掌握现代微服务网络管理和安全性的开发者和架构师设计。作者Christian Posta和Rinor Maloku都是服务网格领域的专家,Christian Posta是红帽公司的首席架构师,Rinor Maloku是Solo.io的开发者倡导者。本书由Google副总裁、Kubernetes和Istio联合创始人Eric Brewer作序推荐。Istio是目前最流行的服务网格实现之一,为微服务架构提供了流量管理、安全性、可观察性和策略控制等关键功能。本书不仅教授Istio的具体使用,更重要的是深入探讨服务网格的设计理念和实际应用场景。
第一部分建立了服务网格和Istio的基础知识体系。第1章介绍了服务网格的概念和Istio的诞生背景。作者首先分析了现代云原生应用面临的挑战:云基础设施不可靠、需要构建弹性服务交互、需要实时理解系统行为。传统解决方案是通过应用库(如Netflix Hystrix、Resilience4j)解决这些问题,但这带来了库版本管理、语言绑定、维护成本高等问题。服务网格通过将网络功能下移到基础设施层来解决这些问题。
本章详细解释了服务网格的概念,特别是基于Envoy代理的"应用感知服务代理"模型。作者对比了服务网格与企业服务总线(ESB)、API网关的关系,并讨论了Istio在分布式架构中的位置,以及使用服务网格的优缺点。
第2章带领读者进行Istio的首次实践。从在Kubernetes上部署Istio开始,介绍了使用Docker Desktop运行示例、获取Istio发行版、安装Istio组件到Kubernetes集群。本章详细讲解了Istio控制平面的组成,特别是Istiod(控制平面核心组件)以及Ingress和Egress网关。通过部署第一个应用到服务网格,读者可以立即体验Istio的可观察性、弹性和流量控制能力。
第3章深入Istio的数据平面:Envoy代理。Envoy是Istio的默认数据平面代理,本章详细介绍了Envoy的核心功能、与其他代理(如NGINX、HAProxy)的对比、配置方式(静态配置和动态配置),以及Envoy在Istio中的实际应用,包括Admin API、请求重试等。
第二部分专注于Istio的核心功能:流量管理、可观察性和安全性。第4章讲解Istio网关:如何将流量引入集群。本章涵盖了流量入口概念,如虚拟IP(简化服务访问)和虚拟主机(从单个访问点提供多个服务)。详细介绍了Istio入口网关的配置,包括Gateway资源规范、通过虚拟服务进行网关路由、整体流量流视图,以及Istio入口网关与Kubernetes Ingress、API网关的对比。
第5章深入流量控制:细粒度流量路由。本章介绍了降低新代码部署风险的策略,区分了部署(deployment)和发布(release)的概念。通过实际示例展示了如何使用Istio进行请求路由,包括将所有流量路由到v1服务、将特定请求路由到v2服务、在调用图中深度路由、流量转移(traffic shifting)、金丝雀发布(使用Flagger)、流量镜像(traffic mirroring)等技术。
第6章专注于弹性:解决应用网络挑战。本章对比了在应用库中构建弹性与使用Istio解决这些问题的不同方法。详细介绍了客户端负载均衡(包括各种负载均衡算法)、位置感知负载均衡(locality-aware load balancing)、透明超时和重试、断路器(connection-pool控制和异常检测)等关键弹性模式。
第7-8章全面讲解可观察性。第7章定义了可观察性的概念,区分了可观察性与监控,并介绍了Istio如何帮助实现可观察性。本章详细探讨了数据平面和控制平面的指标,以及如何使用Prometheus抓取Istio指标。第8章则专注于可视化,介绍了如何使用Grafana可视化Istio服务和控制平面指标、分布式追踪(使用Jaeger)、以及使用Kiali进行可视化。
第9章深入微服务通信安全。本章讨论了应用网络安全的必要性,包括服务到服务认证、终端用户认证、授权等。详细介绍了Istio如何实现SPIFFE(Secure Production Identity Framework For Everyone)标准、自动mTLS、使用PeerAuthentication资源、服务到服务流量授权、终端用户认证和授权(使用JWT)、以及与自定义外部授权服务的集成。
第三部分关注Istio的运维和故障排除。第10章专注于数据平面故障排除。本章分析了最常见的错误:数据平面配置错误,并介绍了如何识别数据平面问题、验证数据平面是否最新、使用Kiali和istioctl发现错误配置、从Envoy配置手动发现错误配置、使用ksniff检查网络流量、以及使用Envoy遥测理解应用行为。
第11章讲解控制平面性能调优。本章讨论了控制平面的主要目标:保持数据平面同步。详细介绍了数据平面同步的步骤、决定性能的因素、监控控制平面(四个黄金信号)、性能调优技术(如使用发现选择器减少发现范围、事件批处理和推送限制属性),以及性能调优指南。
第四部分将Istio的应用扩展到组织层面。第12章讨论在组织中扩展Istio,特别是多集群服务网格。本章介绍了多集群服务网格的好处、多集群服务网格的概述、Istio多集群部署模型、跨集群工作负载发现、跨集群工作负载连接性、集群间的共同信任等高级主题。
第13章讲解将虚拟机工作负载纳入网格。本章介绍了Istio对虚拟机的支持、简化虚拟机中边车代理的安装和配置、虚拟机高可用性等主题,帮助组织将传统工作负载与现代云原生应用统一管理。
本书采用"学以致用"的教学理念,从第2章开始就带领读者动手部署和配置Istio。每个概念都通过具体示例进行讲解,读者可以跟随书中的步骤逐步构建完整的服务网格环境。
与大多数入门教程不同,本书深入探讨了Istio的高级功能和内部工作原理。特别是对Envoy代理的详细讲解(第3章)、多集群部署(第12章)、虚拟机集成(第13章)等内容,为读者提供了构建复杂生产环境所需的知识。
本书涵盖了Istio的所有核心功能:流量管理(第5章)、弹性模式(第6章)、可观察性(第7-8章)、安全性(第9章)、故障排除(第10章)、性能调优(第11章)。这种全面的覆盖帮助读者建立完整的Istio知识体系。
本书不仅关注功能实现,还深入讨论了生产环境的考虑,包括故障排除、性能调优、多集群部署、组织扩展等主题。这些内容对于将Istio应用于实际生产环境至关重要。
作者不仅教授"如何做",更重要的是解释"为什么"。通过对比传统解决方案(应用库)与服务网格的优劣,帮助读者理解服务网格的设计理念和价值主张。
《Istio in Action》是一本全面、深入、实用的Istio服务网格指南。它不仅教授具体的技术实现,更重要的是帮助读者理解服务网格的设计理念和实际应用场景。无论你是希望解决微服务架构中的网络挑战,还是需要构建统一的服务治理平台,这本书都能提供宝贵的指导。通过本书的学习,读者将能够掌握Istio的核心功能,理解服务网格的价值主张,并能够设计、部署和维护生产级的服务网格环境。在微服务和云原生成为主流的今天,掌握服务网格技术将成为架构师和开发者的重要竞争优势。