系列文章:


总目录索引:九析带你轻松完爆 istio 服务网格系列教程

目录

1 前言

2 邀约

3 流量管理概述

4 istio 流量管理 API 资源


1 前言

        如果你对博客有任何疑问,请告诉我。第十八章 九析带你轻松完爆 service mesh - Istio traffic managem_第1张图片


2 邀约

        你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:第十八章 九析带你轻松完爆 service mesh - Istio traffic managem_第2张图片


3 流量管理概述

        流量管理的本质就是采用策略控制流量的流向和大小。

        Istio 流量管理模型依赖于随服务一起部署的 Envoy 代理,网格发送和接收的所有流量(数据平面流量)都通过 Envoy 进行代理。基于此模型可以轻松引导和控制网格周围的流量,而无需对服务进行任何更改。


4 istio 流量管理 API 资源

        为了在网格之间引导流量,Istio 需要知道执行端点在哪里(在 K8s 中就是 Pod),以及这些执行端点属于什么服务。而且 Istio 为了填充自己的服务注册表,会连接到 Istio 所安装平台上的服务发现系统。例如,如果 Istio 被安装到了 K8s 上,那么 Istio 就会自动发现集群中的服务和执行端点。

        Istio 自身的服务注册表维护了一组服务以及这些服务背后真正的执行端点,Istio 使用服务注册表产生 Envoy 配置。Istio 本身并不提供服务发现功能,尽管大多数服务是由 Pilot 适配器自动添加到注册表中的,而这些 Pilot 适配器使用的是基础平台(K8s、Consul、纯 DNS)自身的发现服务。

        使用此服务注册表,Envoy 代理就可以将流量定向到相关服务。大多数基于微服务的应用系统每个服务后面都会有多个实例处理服务流量。默认情况下,Envoy 代理使用 RoundBin 循环模型在每个服务实例之间平均分配流量。

        虽然 Istio 的基本服务发现和负载均衡已经提供了一个有效的服务网格,但 Istio 提供的功能远不止这么多。在许多情况下,都希望对网格流量进行更加细粒度的控制。比如,可能希望将流量以百分比分配到不同的服务版本,作为 A/B 测试的一部分,或者将不同的负载均衡策略应用于特定服务实例版本,又或者你可能还想将特殊规则应用于进出网格的流量等等。以上这些都可以通过使用 Istio 流量管理 API 做到。

        Istio 流量管理 API 资源如下:

Virtual Service

Destination Rule

Gateway

Service entries

Sidecars