大纲

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

Istio:服务发现和Pilot的架构机制相关推荐

  1. 谈服务发现的背景、架构以及落地方案

    http://www.infoq.com/cn/articles/background-architecture-and-solutions-of-service-discovery 在开始之前,我们 ...

  2. 微服务ServiceMesh及三种服务发现机制

    1. 前言 今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础.作为架构师,如果你现在 ...

  3. 详解 Istio 服务网格

    -     前言    - 在本教程中,我们将介绍服务网格的基础知识,并了解它如何实现分布式系统架构. 我们将主要关注Istio,它是服务网格的一种具体实现.在此过程中,我们将介绍Istio的核心架构 ...

  4. 服务发现技术选型那点事儿

    作者 | 张羽辰(同昭) 引子--什么是服务发现 近日来,和很多来自传统行业.国企.政府的客户在沟通技术细节时,发现云原生所代表的技术已经逐渐成为大家的共识,从一个虚无缥缈的概念渐渐变成这些客户的下一 ...

  5. 阿里云原生张羽辰:服务发现技术选型那点事儿

    作者 | 张羽辰(同昭) 引子 -- 什么是服务发现? 近日来,和很多来自传统行业.国企.政府的客户在沟通技术细节时,发现云原生所代表的技术已经逐渐成为大家的共识,从一个虚无缥缈的概念渐渐变成这些客户 ...

  6. python eureka服务发现_Spring Cloud版——电影售票系统—Eureka微服务注册与发现

    一.服务提供者与服务消费者 使用微服务构建的是分布式系统,微服务之间通过网络进行通信.我们使用服务提供者与服务消费者来描述微服务之间的调用关系. 名称 定义 服务提供者 服务的被调用方(为其他服务提供 ...

  7. 服务发现【浅谈当下】

    服务发现[浅谈当下] 前言 什么是服务发现 我的服务在哪里 非云环境下的服务发现 基于云的微服务环境下的服务发现 服务发现架构 客户端负载均衡 总结 前言 随着微服务和基于云的应用程序越来越多,诸如服 ...

  8. Dubbo接口级服务发现-数据结构

    目录 Dubbo服务治理易用性的原理: URL地址数据划分: Dubbo接口级服务发现---易用性的代价 Proposal,适应云原生.更大规模集群的服务发现类型. Dubbo3应用级服务发现---基 ...

  9. DNS常用记录类型和服务发现(DNS解析)

    DNS DNS(domain name system)主要用来把人类可识别的域名解析成网络层的IP地址.这个过程中负责查询的组件称之为DNS Resolver,它会查询本地cache和远程的DNS s ...

最新文章

  1. OpenCL™(开放计算语言)概述
  2. 第一个SpringBoot入门级项目(超详细步骤)
  3. excelutil java_JAVA实现Excel的读取--ExcelUtil工具类
  4. 解决Cannot change version of project facet Dynamic Web M
  5. Java集合类中绝对占有一席之地的List,涨薪7K!
  6. SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
  7. mysqluuid去除横岗
  8. 思科OSPF详细配置命令过程
  9. 最新消息2022年广西最新消防设施操作员模拟题库及答案
  10. 基于语音识别的智能垃圾分类控制系统设计
  11. java socket 面试题_Java面试题及答案
  12. Android快捷方式解密
  13. 镜像加速器——使用加速器可以提升获取Docker官方镜像的速度
  14. GitHub代码,资源下载慢?怎么办?
  15. 【吐血整理】185道大数据面试题及答案
  16. 新媒体运营学习路线及全套视频教程资源
  17. win10 c++调用pytorch模型
  18. 来!学逆向都想的手游防护(下篇更新破解)
  19. 360手机官方刷机教程(N6系列+N7系列通用)
  20. BEEF的使用(简单版)

热门文章

  1. Dango Web 开发指南 学习笔记 3
  2. C# Socket网络编程精华篇 (转)
  3. 《C语言入门经典》Ivor Horton第十章练习题1
  4. 从民国时期小学生的两篇作文来看两位小作者的写作能力。
  5. GAN二次元头像生成Pytorch实现(附完整代码)
  6. Docker Nginx 如何重新加载配置
  7. java实现置顶功能
  8. 嵌入式c语言精华,【精华整理】C语言嵌入式系统编程修炼--键盘操作篇
  9. 测试人员绩效考核KPI指标
  10. 本地网络环境测试工具,很不错的工具