如何在istio中启用用户级别的速率限制

时间:2017-12-28 10:06:51

标签: istio

我看到Istio site提到了速率限制支持,但我只能找到全局速率限制示例。

是否可以在用户级执行此操作?例如,如果我的用户登录但在一秒钟内发送了超过50个请求,那么我想阻止所述用户等。在类似的情况下,如果用户没有登录,那么该设备无法发送每秒超过30个请求。

1 个答案:

答案 0 :(得分:1)

是的,可以根据任意情况有条件地应用费率限制 使用配额规则中的匹配条件的属性。

apiVersion: config.istio.io/v1alpha2 kind: rule metadata: name: quota namespace: istio-system spec: match: source.namespace != destination.namespace actions: - handler: handler.memquota instances: - requestcount.quota

配额仅在源命名空间不等于目标命名空间时应用。在你的情况下,你可能想要设置这样的匹配:

match: request: headers: cookie: regex: "^(.*?;)?(user=jason)(;.*)?$"

我做了一个PR来改进你可以在这里找到的限速文档:https://github.com/istio/istio.github.io/pull/1109