51微服务网格治理k8s实战之istio资源详解
流量管理介绍
Istio流量路由规则可以很容易的
控制服务之间的流量
和API调用
。能实现A/B测试、金丝雀发布、
基于流量百分比
发布。开箱即用的
故障恢复
特性,有助于增强应用的健壮性
,从而更好地应对被依赖的服务或网络发生故障的情况。Istio 的流量管理由
Envoy
代理服务提供。网格内服务发送和接收的所有流量
都由Envoy 代理
处理,让控制网格内的流量变得异常简单,不需要对服务做更改。
为了在网格中导流,Istio 需要知道 endpoint 在哪和属于哪个服务
。为了定位到service registry(服务注册中心)
,Istio 会连接到一个服务发现系统。例如,如果您在 Kubernetes 集群上安装了 Istio,那么它将自动检测该集群中的服务和 endpoint(端点)。
使用此服务注册中心,Envoy 代理
可以将流量定向到相关服务。大多数基于微服务的应用程序
,每个服务的工作负载都有多个实例来处理流量,称为负载均衡池
。默认情况下,Envoy 代理基于轮询调度在服务的负载均衡池内分发流量,按顺序请求发送给池中每个成员,一旦所有服务实例均接收过一次请求后,重新回到第一个池成员。
这些 API 也使用 Kubernetes 的自定义资源定义(CRDs)来声明,可以使用 YAML 进行配置
。