Istio:服务发现和Pilot的架构机制

大纲

Istio架构&Pilot介绍
Istio服务发现
Istio服务配置
stio服务发现&规则管理与Kubernetes结合
ShowCase

Istio架构&Pilot介绍

Istio架构

Pilot功能

  • 服务发现
  • 服务配置

Istio服务发现

服务发现基本原理
 

a.app 88.88.88.66
a.app 88.88.88.77
a.app 88.88.88.88


b.app 88.88.88.99
b.app 88.88.88.55

SpringCloud的服务(注册与)发现流程

  • 服务注册表:如Springcloud中一般Eureka服务;
  • 服务注册:服务配置文件中配置服务名和本实例地址,实例启动时自动注册到服务注册表;
  • 服务发现:访问目标服务时连服务注册表,获取服务实例列表。根据LB根据策略选择一个服务实例,建立连接去访问。

Istio服务发现流程

Istio服务发现流程
  • 服务注册表: Pilot 从平台获取服务发现数据, 并提供统一的服务发现接口。
  • 服务注册:
  • 服务发现: Envoy 实现服务发现,动态更新负载均衡池。在服务请求时使用对应的负载均衡策略将请求路由到对应的后端。

Pilot服务发现机制的Adapter机制

Istio服务发现实现:基于 Eureka

1. Pilot 实现若干服务发现的接口定义
2. Controller使用EurekaClient来获取服务列表, 提供转换后的标准的服务发现接口和数据结构;
3. Discoveryserver基于Controller上维护的服务发现数据, 发布成gRPC协议的服务供Envoy使用。
4. 当 有 服 务 访 问 时 , Envoy 在 处 理Outbound请求时, 根据配置的LB策略,选择一个服务实例发起访问

Istio 服务发现实现:基于Kubernetes

1. Pilot 实现若干服务发现的接口定义
2. Pilot 的Controller List/WatchKubeAPIserver上service、endpoint等资源对象并转换成标准格式。
3. Envoy从Pilot获取xDS,动态更新
4. 当有服务访问时, Envoy在处理Outbound请求时,根据配置的LB策略,选择一个服务实例发起访问。

Kubernetes & Istio 服务模型

Kuberntes的服务发现

Istio Upon Kubernetes场景

Istio Upon Kubernetes场景

Istio ( upon Kubernetes)服务发现和配置

Istio ( upon Kubernetes)服务发现和配置

Istio服务配置管理

Istio 服务访问规则维护和工作机制

Istio 服务访问规则维护和工作机制
  • 1. 配置:管理员通过Pilot配置治理规则
  • 2. 下发: Envoy从Pilot获取治理规则
  • 3. 执行:在流量访问的时候执行治理规则

Istio治理规则

  • VirtualService
  •  DestinationRule
  • Gateway
  •  ServiceEntry
  •  …

https://istio.io/docs/reference/config/istio.networking.v1alpha3/

Istio流量规则: VirtualService

Istio流量规则: VirtualService

Istio流量规则: DestinationRule

Istio流量规则: DestinationRule

Istio流量规则: ServiceEntry & Gateway

ServiceEntry:

  • 功能: Mesh外的服务加入到服务发现中,向Mesh里面的服务一样的被治理
  • 机制: 将ServiceEntry描述的服务加入到服务发现中;对这些服务的outbound流量进行拦截,进而进行治理

Gateway:

  • 功能:将mesh内的一个服务发布成可供外部访问。
  • 机制:在入口处部署一个ingress的Envoy,在其上执行服务治理。

Istio配置规则维护和下发流程

治理规则定义 Istio VS Envoy
 

Istio 规则
Envoy规则

Istio治理能力执行位置

Istio服务发现&规则管理与Kubernetes结合

Kubernetes & Istio 结合

服务发现和配置管理: Istio+K8S

服务发现和配置管理: Spring Cloud+K8S

发布了389 篇原创文章 · 获赞 1041 · 访问量 163万+

猜你喜欢

转载自blog.csdn.net/fly910905/article/details/103941348