Istio:服务发现和Pilot的架构机制
大纲
Istio架构&Pilot介绍
Istio服务发现
Istio服务配置
stio服务发现&规则管理与Kubernetes结合
ShowCase
Istio架构&Pilot介绍
Pilot功能
- 服务发现
- 服务配置
Istio服务发现
服务发现基本原理
a.app 88.88.88.66
a.app 88.88.88.77
a.app 88.88.88.88b.app 88.88.88.99
b.app 88.88.88.55
SpringCloud的服务(注册与)发现流程
- 服务注册表:如Springcloud中一般Eureka服务;
- 服务注册:服务配置文件中配置服务名和本实例地址,实例启动时自动注册到服务注册表;
- 服务发现:访问目标服务时连服务注册表,获取服务实例列表。根据LB根据策略选择一个服务实例,建立连接去访问。
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服务配置管理
Istio 服务访问规则维护和工作机制
- 1. 配置:管理员通过Pilot配置治理规则
- 2. 下发: Envoy从Pilot获取治理规则
- 3. 执行:在流量访问的时候执行治理规则
Istio治理规则
- VirtualService
- DestinationRule
- Gateway
- ServiceEntry
- …
https://istio.io/docs/reference/config/istio.networking.v1alpha3/
Istio流量规则: VirtualService
Istio流量规则: DestinationRule
Istio流量规则: ServiceEntry & Gateway
ServiceEntry:
- 功能: Mesh外的服务加入到服务发现中,向Mesh里面的服务一样的被治理
- 机制: 将ServiceEntry描述的服务加入到服务发现中;对这些服务的outbound流量进行拦截,进而进行治理
Gateway:
- 功能:将mesh内的一个服务发布成可供外部访问。
- 机制:在入口处部署一个ingress的Envoy,在其上执行服务治理。
Istio配置规则维护和下发流程
治理规则定义 Istio VS Envoy
Istio治理能力执行位置
Istio服务发现&规则管理与Kubernetes结合
Kubernetes & Istio 结合
服务发现和配置管理: Istio+K8S
服务发现和配置管理: Spring Cloud+K8S
Istio:服务发现和Pilot的架构机制相关推荐
- 谈服务发现的背景、架构以及落地方案
http://www.infoq.com/cn/articles/background-architecture-and-solutions-of-service-discovery 在开始之前,我们 ...
- 微服务ServiceMesh及三种服务发现机制
1. 前言 今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础.作为架构师,如果你现在 ...
- 详解 Istio 服务网格
- 前言 - 在本教程中,我们将介绍服务网格的基础知识,并了解它如何实现分布式系统架构. 我们将主要关注Istio,它是服务网格的一种具体实现.在此过程中,我们将介绍Istio的核心架构 ...
- 服务发现技术选型那点事儿
作者 | 张羽辰(同昭) 引子--什么是服务发现 近日来,和很多来自传统行业.国企.政府的客户在沟通技术细节时,发现云原生所代表的技术已经逐渐成为大家的共识,从一个虚无缥缈的概念渐渐变成这些客户的下一 ...
- 阿里云原生张羽辰:服务发现技术选型那点事儿
作者 | 张羽辰(同昭) 引子 -- 什么是服务发现? 近日来,和很多来自传统行业.国企.政府的客户在沟通技术细节时,发现云原生所代表的技术已经逐渐成为大家的共识,从一个虚无缥缈的概念渐渐变成这些客户 ...
- python eureka服务发现_Spring Cloud版——电影售票系统—Eureka微服务注册与发现
一.服务提供者与服务消费者 使用微服务构建的是分布式系统,微服务之间通过网络进行通信.我们使用服务提供者与服务消费者来描述微服务之间的调用关系. 名称 定义 服务提供者 服务的被调用方(为其他服务提供 ...
- 服务发现【浅谈当下】
服务发现[浅谈当下] 前言 什么是服务发现 我的服务在哪里 非云环境下的服务发现 基于云的微服务环境下的服务发现 服务发现架构 客户端负载均衡 总结 前言 随着微服务和基于云的应用程序越来越多,诸如服 ...
- Dubbo接口级服务发现-数据结构
目录 Dubbo服务治理易用性的原理: URL地址数据划分: Dubbo接口级服务发现---易用性的代价 Proposal,适应云原生.更大规模集群的服务发现类型. Dubbo3应用级服务发现---基 ...
- DNS常用记录类型和服务发现(DNS解析)
DNS DNS(domain name system)主要用来把人类可识别的域名解析成网络层的IP地址.这个过程中负责查询的组件称之为DNS Resolver,它会查询本地cache和远程的DNS s ...
最新文章
- OpenCL™(开放计算语言)概述
- 第一个SpringBoot入门级项目(超详细步骤)
- excelutil java_JAVA实现Excel的读取--ExcelUtil工具类
- 解决Cannot change version of project facet Dynamic Web M
- Java集合类中绝对占有一席之地的List,涨薪7K!
- SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- mysqluuid去除横岗
- 思科OSPF详细配置命令过程
- 最新消息2022年广西最新消防设施操作员模拟题库及答案
- 基于语音识别的智能垃圾分类控制系统设计
- java socket 面试题_Java面试题及答案
- Android快捷方式解密
- 镜像加速器——使用加速器可以提升获取Docker官方镜像的速度
- GitHub代码,资源下载慢?怎么办?
- 【吐血整理】185道大数据面试题及答案
- 新媒体运营学习路线及全套视频教程资源
- win10 c++调用pytorch模型
- 来!学逆向都想的手游防护(下篇更新破解)
- 360手机官方刷机教程(N6系列+N7系列通用)
- BEEF的使用(简单版)