在Istio中,我想知道为什么将VirtualService和DestinationRule分为两个单独的配置文件?在AFAICT中,DestinationRule定义了子集,并提供了指向该子集的VirtualService路由。显然,他们不仅做这些,而且我的问题是,将两者分开的设计思想可能是什么。为什么我们不能在VirtualService yaml本身中定义子集?

接下来的问题是:为什么在虚拟服务器中配置了超时规则和重试功能,而在目标规则中配置了断路器规则?我想我还是无法理解这个设计决定背后的原因。如果很清楚,则可以同时回答两个问题。从概念上理解这方面的任何帮助将不胜感激。

最佳答案

它们旨在将路由与路由后行为明确分开。

VirtualService用于描述从一个或多个用户可寻址目标(主机)到网格内部实际目标工作负载(服务)的映射(路由规则)。

然后,DestainationRule定义在发生VirtualService路由后要应用于请求的策略集。它们旨在由服务所有者编写,描述断路器,负载均衡器设置,TLS设置等。

here概述了它们的工作方式。

关于kubernetes - Istio中单独的VirtualService和DestinationRule配置的必要性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51772835/

10-09 13:58