《Istio官方文档》—— 请求路由

原文链接  译者:carvendy

请求路由

  本页描述,在Istio服务网格中,服务间的请求是如何被路由的。

服务模型和服务版本

  领航员的职责是,在原始网格中维护的权威服务。Istio的服务模型是如何依赖底层的平台(Kubernetes、 Mesos、Cloud Foundry等)。平台特定适配器负责通过平台中 提取的元数据字段,来构成基本的模型代表。   Istio引进了服务版本概念,是一种细粒度的方式,通过版本(v1,v2)或者环境(预上线,生产)来在分拆服务。这些形式不是不同的版本:它们的更新迭代可以在相同的服务,并发布到不同的环境(生产,预上线,开发等)。通用的场景是在A/B测试或者灰度发布中使用。Istio的流量路由规则可以参考服务版本,在服务间所提供的额外控制。

服务通信

image

  根据上图,服务的客户端有很多不知道版本的服务。它们使用host名字或则IP地址来不断使用其他服务。使者边车/代理拦截,并在客户端和服务之间转发所有请求/响应。
基于运维人员使用领航者所制定的路由规则,使者可以动态地来决定实际选择的服务版本。这模型可以让服务依赖的演变从程序代码之中分离,也提供了其他的好处(请看Mixer)。路由规则允许使者根据请求头、源/目标或者权重来来选择一个版本。   Istio为多个实例的相同服务,也提供了流量的负载均衡。你看可以在服务发现和负载均衡中找到更多信息。
Istio没有提供DNS功能。而你的应用程序可以尝试全限定域名,即在底层平台(kube-dns, mesos-dns等)中使用DNS服务。

入口和出口

  Istio假定了所有流量是通过使者代理进入和离开服务网格。在前端的服务发布使者代理,运维人员可以对于面向用户的服务进行A/B测试,金丝雀发布等。同样地,通过边车使者路由流量指向外部的web服务(例如,地图API,或者多媒体API),运维人员可以加入故障恢复特性,例如超时、重试、熔断等,并且可以根据这些服务的连接来获取详细的指标度量。

image

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98222.html

(0)
上一篇 2021年8月20日 22:59
下一篇 2021年8月20日 23:00

相关推荐

发表回复

登录后才能评论