0

我已经部署了以下资源。

  1. kong 命名空间中的 kong

  2. poc 命名空间中的服务回显

    kubectl apply -f https://gist.githubusercontent.com/hbagdi/0d833181239a39172ba70cbec080bdb9/raw/7f46cf1c9e54562e2c23902daace7ac8edc40427/echo-server.yaml -n poc

  3. 在 poc 命名空间中使用 /foo 路径创建了一个入口。注意:/foo 从 echo 服务映射到 /echo。

    echo "
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: demo
      namespace: poc
      annotations:
        kubernetes.io/ingress.class: kong
    spec:
      rules:
      - http:
          paths:
          - path: /foo
            backend:
              serviceName: echo
              servicePort: 80
    " | kubectl -n poc apply -f -
  1. 创建了kong插件
kind: KongPlugin
metadata:
  name: default.rate-limiting
  namespace: poc
config:
  minute: 3
  policy: local
plugin: rate-limiting" | kubectl apply -f -
  1. 使用 default.rate-limiting 修补服务 kubectl patch -n poc svc echo -p '{"metadata":{"annotations":{"konghq.com/plugins": "default.rate-limiting"}}}'

根据上述逻辑,应该允许一分钟内 3 个请求,但是即使一分钟内超过 3 个请求,也不会应用速率限制。

4

1 回答 1

1

我不确定您将哪种型号用于具有 DB 或 DB 较少的 Kong。

首先,我建议您尝试一次Konga,它是 Kong 管理的仪表板,而不是使用文件进行管理。

阅读更多:https ://faun.pub/kong-api-gateway-with-konga-dashboard-ae95b6d1fec7

在速率限制方面,我遇到了与本地策略类型相同的问题,因为它在后台不使用任何类型的数据库。

GitHub上有未解决的问题:https ://github.com/Kong/kong/issues/5311

https://docs.konghq.com/hub/kong-inc/rate-limiting/#configuration

尝试在后台使用具有速率限制的Redis一次,并测试一些以秒和分钟为单位更改请求的场景。

于 2021-08-08T18:05:57.023 回答