首页 > 其他分享 >对于Istio网络路由链路的理解

对于Istio网络路由链路的理解

时间:2023-09-19 10:00:13浏览次数:42  
标签:ingress Service 端口 Istio gateway 链路 Pod Gateway 路由

背景

最近在看Istio的网络配置,对于里面的几个组件如ingress-gatewayGatewayVirtualServiceDestinationRule和k8s原生的Service间的关系不是很清楚,这里整理以下自己的理解

组件

这里可能陈述不完全正确,属于个人理解

  • ingress-gateway: 本质是一个Service,仍然是k8s原有组件,在生产环境上一般为LoadBalancer模式,对外开放端口
  • Gateway:配合ingress-gateway,运行在指定ingress-gatewayPod上,作为请求进入Istio的入口
  • VirtualService
    • 配置转发规则,转发规则指一个请求满足哪些条件(比如路径,host),则发往哪个目的服务。
    • 指定对应的GatewayGateway上接收到的请求,会根据转发规则依次判断,选择第一个匹配的规则进行转发。
  • DestinationRule
    • VirtualService中目的服务的扩展,k8s中服务的为Service,DestinationRule可以进一步指定Service中的一部分Pod(通过不同的label)。
    • 还支持请求的负载均衡策略等配置
  • Service:k8s原生的服务,作为负载的入口,将请求在多个Pod间进行负载均衡
  • Pod:实际运行服务进程的容器,暴露端口为containerPort

网络路由

网络请求

  1. 外部请求通过ingress-gateway暴露出的端口进入集群,对于LoadBalancer模式具体端口由实现而定,对于NodePort模式,端口就是NodePort
  2. Gateway中会配置Selector,根据标签匹配到ingress-gateway。也会配置PortHost(Host即请求中的Host请求头),ingress-gateway收到的请求符合该配置的会进入该Gateway
  • GatewayPortingress-gateway中的targetPort需要相同
  1. VirtualService中配置对应的Gateway,同时配置一系列规则
  • GatewayPortVirtualService目前看来似乎并没有需要匹配的关系,仅Host规则符合即可进入VirtualService进行匹配
  1. VirtualService中有一系列规则,符合规则的请求进入Destination
  • Destination中可以指定Port,该PortService中配置的Port,当指定的Service中包含多个端口时需要指定,否则可以不用指定,默认即为Service暴露的端口
  1. Destination一般已经可以直接指定k8s的Service作为路由目的地了,但是可以通过DestinationRule进一步细化Service中的一部分Pod
  2. ServicetargetPort为对应Pod中运行的服务进程暴露的端口
  3. Pod中可配置containerPod参数,但是只有展示作用,即使不配置,Pod所有端口默认也都是可以在集群内部被访问到的.

标签:ingress,Service,端口,Istio,gateway,链路,Pod,Gateway,路由
From: https://www.cnblogs.com/mosakashaka/p/17713849.html

相关文章

  • vue3版的uniapp在路由这块有好的方案吗?
    在Vue3版本的uni-app中,你可以使用VueRouter进行路由管理。VueRouter是Vue.js官方提供的路由解决方案,可以方便地实现单页面应用的路由功能。以下是一些在Vue3版的uni-app中使用VueRouter的好的方案:安装VueRouter:首先,在你的uni-app项目中安装VueRouter。可以使用npm或yarn来安......
  • Vue3+vite路由配置优化(自动化导入)
    今天在维护优化公司中台项目时,发现路由的文件配置非常多非常乱,只要只中大型项目,都会进入很多的路由页面,规范一点的公司还会吧路由进行模块化导入,但是依然存在很多文件夹的和手动导入的问题。于是我想到了我之前使用vuex时进行的模块化自动导入js文件,能不能使用到自动导入.vue文件......
  • 1-03-物理层和数据链路层的基本概念
    物理层的基本概念:传输媒体大致可以被分为两类:导引型传输媒体:1)双绞线2)同轴电缆3)光纤非导引型传输媒体:1)微波通信(2~40GHz) 物理层协议的主要任务: 数据链路层概述:数据链路层在网络结构体系中所处的地位:链路,数据链路和帧的概念:计算机中的网络适配器(俗称网卡)和其相应......
  • 网络技术-数据链路层
    以太网:Ethernet当今占主导地位的局域网组网技术即二层之内皆是以太以太网的发展史:20世纪70年代,由Xerox公司联合Intel和DEC公司开发出以太网1973年,传输速率3Mb/s1980年,出现双绞线介质的以太网1992年,传输速率100Mb/s1998年,传输速率1000Mb/s2010年,IEEE发布40G/100G标准......
  • 深入探讨Spring Cloud Config的动态路由
    前言SpringCloudConfig是一个非常流行的配置中心,它可以帮助我们集中管理应用程序的配置。在使用SpringCloudConfig时,我们通常会将配置文件存储在Git或SVN等版本控制系统中,然后通过SpringCloudConfigServer将这些配置文件暴露给客户端应用程序。但是,当我们的应用程序数量增......
  • Vue学习六:路由进阶
    一、路由的封装抽离目标:将路由模块抽离出来。好处:拆分模块,易于维护。第一步:在src目录下新建一个router目录,在创建一个index.js文件,将先前main.js中的路由代码转移到index.js文件中。(这里需要使用到vue所以需将vue包导入;需修改组件路径,@符号代表绝对路径src;需将路由实例导出)index......
  • 动态路由的主流算法
    路由器就是一台网络设备,它有多张网卡。当一个入口的网络包送到路由器时,它会根据一个本地的转发信息库,来决定如何正确地转发流量。这个转发信息库通常被称为路由表。一张路由表中会有多条路由规则。每一条规则至少包含这三项信息。目的网络:这个包想去哪儿?出口设备:将包从哪个口扔出去......
  • vue--day88--缓存路由组件和 两个新的生命周期钩子
    ###10.缓存路由组件 1.作用:让不展示的路由组件保持挂载,不被销毁。 2.具体编码:   ```vue  <keep-aliveinclude="News">     <router-view></router-view>  </keep-alive>  ``` ###11.两个新的生命周期钩子 1.作用:路由组件所独有的两......
  • vue--day86--编程式路由导航
    1.作用:不借助```<router-link>```实现路由跳转,让路由跳转更加灵活 2.具体编码:   ```js  //$router的两个API  this.$router.push({  name:'xiangqing',  params:{  id:xxx,  title:xxx  }  })    this.$router.re......
  • ip路由基础
    IP地址191.10.96.132使用自然掩码,191.10.96.132的网络地址是(B)A.191.0.0.0B.191.10.0.0C.191.10.48.0D.191.10.96.0路由协议的作用是什么(B)数据转发的依据构建路由表管理路由生成IP地址IP网络是分层的,通常是不同国家间、不同城市间互连组成的网络指的是以下哪一项(A)......