在 Istio 中,我想知道为什么 VirtualService 和 DestinationRule 被分成两个单独的配置文件?AFAICT,DestinationRule 定义了子集和 VirtualService 路由到子集。显然,他们都做得更多,但我的问题是,将两者分开的设计思想可能是什么。为什么我们不能在 VirtualService yaml 本身中定义子集?
一个后续问题是:为什么在目标规则中配置断路器规则,而在 VirtualService 中配置超时和重试?再次,我想,我无法理解这个设计决定背后的推理。如果这很清楚,则可以同时回答两个问题。任何在概念上理解这一点的帮助将不胜感激。
我的猜测只是一种直觉,这种分离一方面反映了结构定义,另一方面反映了行为定义。
因此,它DestinationRule不太可能改变(除非您引入新版本),而VirtualServices更适合进行调整和微调。
此外,将两者解耦允许您仅保留 1 个DestinationRule配置,但可以同时处理多个VirtualServices配置。
我想同样的原因可以回答你的第二个问题,因为定义超时和重试更像是微调。
也许还有我不知道的技术原因......
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |