美文网首页每天进步一点点
2020-05-19【Istio流量治理组件】

2020-05-19【Istio流量治理组件】

作者: 桢桢claire | 来源:发表于2020-05-19 21:41 被阅读0次
成群的火烈鸟

今日鸡汤:

就像余华那样:“我不再装模作样的拥有很多友人,而是回到孤单之中,以真正的自我开始新的生活。”

毕竟,只有自己能和自己呆一辈子,是吧。

今天看看Istio流量治理的各个组件:

Istio是如何通过VirtualService进行路由规则配置的?

VirtualService定义了对特定目标服务的一组流量规则,形式上为一个虚拟服务,将满足条件的流量都转发到对应的服务后段。通过VirtualService的配置,应用在访问目标服务时,只需要指定目标服务的地址即可,不需要额外指定其他目标资源的信息。在实际请求中到底将流量路由到由哪种特征的后端,就基于在VirtualService中配置的路由规则执行。

VirtualService包含什么字段?

VirtualService 包含hosts和gateway这两个公共字段,以及http、tcp和tls三个复合字段。

Gateway描述应用流量规则的Gateway,VirtualService描述的规则可以作用到网格里的sidecar和入口的Gateway。

  • 当服务只是在网格内访问时,gateway可以省略
  • 当服务只在网格外访问,配置要关联的Gateway,表示相应Gateway进来的流量要执行对应的规则。
  • 当服务在网格内外都访问时,外部访问的Gateway和"mesh"字段都要配置在这里。

HTTPRoute用于处理HTTP流量,使用http字段的规则表示:满足HTTPMatchRequest条件的流量都被路由到HTTPRouteDestination,执行HTTPRedirect、HTTPRewrite、HTTPRetry、HTTPFaultInjection、CorsPolicy等策略。

TLSRoute用于处理非终结的TLS和HTTPS的流量,使用SNI做路由选择。匹配TLSMatchAttributes条件的流量都会路由到RouteDesitination。

所有不满足HTTP和TLS条件的流量都会用TCPRoute 。

Istio是如何通过DestinationRule进行目标规则配置的?

DestinationRule定义了满足路由规则的流量到达后端的访问策略。在Istio可以配置目标服务的负载均衡策略、连接池大小、异常实例驱除等规则。

DestinationRule 与VirtualService有什么区别?

VirtualService 描述的是满足什么条件的流量被哪个后端处理,而DestinationRule 描述的是这个请求到达某个后端后应该怎么处理。

DestinationRule的流量策略有哪些?

使用TrafficPolicy来定义规则内容,包括负载均衡、连接池大小、异常点检测等。

  • 负载均衡设置(loadBalancerSettings):支持4种负载均衡算法,轮询(ROUND_ROBIN)、最少连接(LEAST_CONN)、随机选择(RANDOM)、不做负载均衡(PASSTHROUGH)。
  • 连接池设置(ConnectionPollSettings):配置阈值防止一个服务的失败级联影响到整个应用。包括TCP连接池配置、HTTP连接池配置。
  • 异常实例检测设置(OutlierDetection):定期考察被访问服务实例的工作情况,连续访问异常时隔离服务。

DestinationRule的应用场景有哪些?

  • 定义Subset,将流量路由到不同的Subset实例上。
  • 服务熔断,使用connectionPool设置最大请求和超时时间,使用outlierDetection设置隔离时间和实例数。
  • 负载均衡。
  • TLS认证配置,设置模式为ISTIO_MUTUAL开启双向TLS。

Istio是如何通过Gateway进行服务网关配置的?

Istio通过Gateway将网格内的服务发布成外部可访问的服务,还可以通过Gateway配置外部访问的端口、协议与内部服务的映射关系。

Gateway如何与VirtualService配合使用的?

Gateway定义了服务从外面怎么访问,VirtualService 定义了匹配到内部服务后怎样流转。

Gateway有哪些应用场景?

  1. 将网格内的HTTP服务发布为HTTP外部访问。
  2. 将网格内的HTTPS服务发布为HTTPS外部访问。 内部服务本身为HTTPS服务,Istio Gateway的协议为HTTPS,TLS模式为 PASSTHROUGH,表示Gateway只透传应用程序提供的HTTPS内容。
  3. 将网格内的HTTP服务发布为HTTPS外部访问。内部服务为HTTP服务,借助Gateway的配置提供HTTPS的对外访问能力。这里,Gateway协议为HTTPS,TLS 模式为SIMPLE,表示Gateway提供标准的单向TLS认证。
  4. 将网格内的HTTP服务发布为双向HTTPS外部访问。在Gateway上开放HTTPS服务,Gateway的模式设置为MUTUAL。
  5. 将网格内的HTTP服务发布为HTTPS外部访问和HTTPS内部访问。Gateway模式为SIMPLE。

Istio是如何通过ServiceEntry进行外部服务配置的?

ServiceEntry可以把外部服务加入Istio的服务发现,注册到网格中。

相关文章

  • 2020-05-19【Istio流量治理组件】

    今日鸡汤: 就像余华那样:“我不再装模作样的拥有很多友人,而是回到孤单之中,以真正的自我开始新的生活。” 毕竟,只...

  • Istio流量治理

    一、Traffic-Management-Basics ms-demo 01-demoapp-v10 kiali流...

  • Istio流量治理基础

    流量治理 Istio的流量路由规则使运维人员可以轻松控制服务之间的流量和API调用 Istio简化了诸如断路器,超...

  • Istio

    istio主要的应用场景: Istio应要组件 流量管理应用场景,主要由VirtualService组件的配置决定...

  • Istio的路由规则配置

    VirtualService是istio流量治理的核心配置. 一、路由规则配置示例 含义:对于forecast服务...

  • Service Mash- Istio理解

    Service Mash 服务网格--主要解决服务治理的框架。 Istio的四个组件 (1)数据面板 (envoy...

  • Istio云原生服务网格(一) - 基础概念

    1. 什么是Istio Istio是一个Service Mesh形态的用于服务治理的开放平台 Istio与Kube...

  • 2020-06-07【Istio流量治理】

    今日鸡汤 诚实的生活方式其实是按照自己身体的意愿行事,饿的时候吃饭,爱的时候不必撒谎。——马尔克斯《霍乱时期的爱情...

  • istio-生产环境搭建

    相关组件 整个 istio 环境需要以下组件 prometheus -- 用于 K8s 平台和 istio 平台监...

  • Istio所有模块、Service、Pod的功能介绍

    [TOC] Istio所有模块、Service、Pod的功能介绍 Istio模块 Proxy(Envoy)流量代理...

网友评论

    本文标题:2020-05-19【Istio流量治理组件】

    本文链接:https://www.haomeiwen.com/subject/zysiohtx.html