流量管理
在本章中,我们将开始使用 Istio 服务网格在服务之间进行流量路由。我们将学习如何设置一个 Ingress 资源以允许流量进入我们的集群,以及一个 Egress 资源以使流量流出集群。
使用流量路由,我们将学习如何部署新版本的服务,并在已发布的生产版本的服务旁边运行,而不干扰生产流量。随着两个服务版本的部署,我们将逐步发布(金丝雀发布)新版本,并开始将一定比例的传入流量路由到最新版本。
流量管理是 Isito 中的最基础功能,使用 Istio 的流量管理模型,本质上是将流量与基础设施扩容解耦,让运维人员可以通过 Pilot 指定流量遵循什么规则,而不是指定哪些 pod/VM 应该接收流量——Pilot 和智能 Envoy 代理会帮我们搞定。
所谓流量管理是指:
- 控制服务之间的路由:通过在
VirtualService
中的规则条件匹配来设置路由,可以在服务间拆分流量。 - 控制路由上流量的行为:设定好路由之后,就可以在路由上指定超时和重试机制,例如超时时间、重试次数等;做错误注入、设置断路器等。可以由
VirtualService
和DestinationRule
共同完成。 - 显式地向网格中注册服务:显示地引入 Service Mesh 内部或外部的服务,纳入服务网格管理。由
ServiceEntry
实现。 - 控制网格边缘的南北向流量:为了管理进入 Istio service mesh 的南北向入口流量,需要创建
Gateway
对象并与VirtualService
绑定。
章节目录
深入了解 Istio 流量管理的基础概念与配置示例,掌握 VirtualService、DestinationRule 等关键组件的使用。
探索 Istio 网关的作用,包括入口和出口网关的配置、负载均衡,以及在 Kubernetes 集群中的流量管理。
了解如何在 Istio 中使用 VirtualService 进行流量路由,优化应用程序的版本控制与流量分配。
了解如何通过子集和 DestinationRule 管理服务版本,优化流量策略,提升应用程序性能。
探索弹性(Resiliency)在故障应对中的重要性,学习如何通过超时和重试策略提升服务可用性。
探索故障注入如何提升服务弹性,了解延迟和中止请求的策略,确保系统在故障情况下的稳定性。
深入了解 Istio 的高级路由功能,掌握流量控制与请求重写的技巧,优化服务间的流量管理。
了解 Istio 的 ServiceEntry 如何增强服务注册能力,使外部 API 能够无缝集成到您的服务网格中。
了解如何在 Istio 中为 Kubernetes 配置 Sidecar 资源,通过 ingress 和 egress 设置控制流量,实现更优的服务管理。
了解如何通过 Istio 的 EnvoyFilter 定制 Envoy 配置,在提升服务网格能力的同时确保稳定性与性能。