1

我已经完成了 kong-ingress-controller部署入门文档并完成了提到的所有内容。

  1. 更新用户权限
  2. 部署 Kong 入口控制器
  3. 设置环境变量
  4. 使用路由创建 Ingress

一切正常,我可以根据路由访问我的应用程序。但是当我添加速率限制插件或任何其他插件时,它没有任何效果。

ingress.yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 namespace: default
 annotations:
  kubernetes.io/ingress.class: kong
  plugins.konghq.com: http-ratelimit, http-auth
spec:
 rules:
  - host: foo.bar
  http:
    paths:
    - path: /users
      backend:
        serviceName: my-service
        servicePort: 80 

速率限制.yaml:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
 name: http-ratelimit
 labels:
   global: 'true'
config:
 minute: 5
plugin: rate-limiting

但是速率限制插件对我的入口没有影响。

注意:kong-ingress-controller 在 kong 命名空间中,但其他资源在默认命名空间中。我试图将所有内容移至 kong 命名空间,然后插件可以工作,但服务无法正常工作,因为它在默认命名空间中。

提前致谢。

4

3 回答 3

0

KongPlugin、KongIngress 应与 Service 位于同一命名空间中。YAML 提供了正确的外观。Ingress yamls注解和配置一定有问题。你的服务是用Ingress对象注解的吗?

于 2020-06-16T21:09:44.790 回答
0

我认为您需要将此注释添加到您的 KongPlugin:

annotations:
  kubernetes.io/ingress.class: kong

所以尝试

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
 name: http-ratelimit
 annotations:
   kubernetes.io/ingress.class: kong
[...]
于 2020-12-08T11:32:37.180 回答
0

查看Kong docs,速率限制 YAML 看起来是正确的。如果资源配置正确,Kong 不会将请求与入口资源匹配,因为用户没有发送正确的请求。

于 2019-09-17T17:24:17.113 回答