如何组织Istio限速策略配置

时间:2019-10-10 21:23:10

标签: istio

让我为部署到单个集群的各个独立团队提供一个用例 团队A负责服务A1,A2,A3 B小组负责服务B1,B2,B3

他们都打算将自定义的速率限制应用于其服务。我的问题是:

它们是否应该定义完全不同的配置(由以下5个Yalm规范组成),或者是其中一部分是通用的?至少,我猜想可以共享“ quota实例”,而其余的可能不同。

从istio站点(https://istio.io/docs/tasks/policy-enforcement/rate-limiting/#rate-limits),将配置拆分为

  • 客户端
    • QuotaSpec定义客户端应请求的配额名称和数量。
    • QuotaSpecBinding有条件地将QuotaSpec与一个或多个服务关联。
  • 搅拌机侧
    • quota实例定义Mixer如何确定配额的大小。
    • memquota处理程序定义memquota适配器配置。
    • quota规则定义配额实例何时分派到t

1 个答案:

答案 0 :(得分:1)

就我而言,您应该能够做到这一点。

您应该首先创建一个redis处理程序和一个基于单个维度进行限制的简单规则,然后尝试将其应用于团队A的服务并创建适用于服务B的类似规则。

  

/它们是否应该定义完全不同的配置(由以下5个Yalm规范组成),或者是其中一部分是常见的?

     

处理程序-单个,用于连接Redis或将所有限速信息保留在一个地方

     

实例-可以是单个实例,也可以是2个实例-视情况而定

     

QuotaSpec -与定义的实例一样多

     

QuotaSpecBinding -两个或更多

     

规则-取决于用例,您可能以一个开始,但最终可能会使用两个或更多个

如果您要基于相同维度进行速率限制,则一个共享实例就足够了。

单个实例是可能的,除非团队希望使用不同的维度,那么显然您将需要两个单独的配额实例。

我在istio namespace tenancy上发现了类似documentation的东西,我想如果您愿意,可以为团队A和团队B创建两个单独的命名空间。