速率限制不限制任何内容

时间:2019-05-20 07:26:31

标签: kubernetes istio

我正在尝试使用 istio速率限制来限制对服务 hello 的访问。 (每秒最多1个通话)
我使用了图书信息演示应用程序中的模板。

这是我到目前为止的配置:

处理程序

apiVersion: config.istio.io/v1alpha2
kind: handler
metadata:
  name: quotahandler
  namespace: istio-system
spec:
  compiledAdapter: memquota
  params:
    quotas:
    - name: requestcountquota.instance.istio-system
      maxAmount: 1
      validDuration: 1s

实例

apiVersion: config.istio.io/v1alpha2
kind: instance
metadata:
  name: requestcountquota
  namespace: istio-system
spec:
  compiledTemplate: quota
  params:
    dimensions:
      source: request.headers["x-forwarded-for"] | "unknown"
      destination: destination.labels["app"] | "unknown"

QuotaSpec

apiVersion: config.istio.io/v1alpha2
kind: QuotaSpec
metadata:
  name: request-count
  namespace: istio-system
spec:
  rules:
  - quotas:
    - charge: 1
      quota: requestcountquota

QuotaSpecBinding

apiVersion: config.istio.io/v1alpha2
kind: QuotaSpecBinding
metadata:
  name: request-count
  namespace: istio-system
spec:
  quotaSpecs:
  - name: request-count
    namespace: istio-system
  services:
  - name: hello
    namespace: default

规则

apiVersion: config.istio.io/v1alpha2
kind: rule
metadata:
  name: quota
  namespace: istio-system
spec:
  actions:
  - handler: quotahandler
    instances:
    - requestcountquota

不用说,即使服务的ip每秒超过1个请求并且激活了限制,卷曲该IP仍然可以正常工作。

仅供参考,我使用了serviceIP / virtualService(+网关)。
另外,我使用的是“内存中”版本,而不是Redis版本。

很高兴能帮助您理解错误的出处!

0 个答案:

没有答案