如何在 GKE 和 Kong Ingress 上设置每秒请求数限制?

问题描述

我在 GKE 上有一个集群,我想为传入的请求设置限制,但我找不到使用 Kong Ingress Controller 执行此操作的方法。我找不到有关此特定主题的任何文档或信息。

解决方法

按照此 article 中的步骤,我通过在我的 kongo ingress 中添加速率限制插件获得了预期的结果。为此,首先,更新/创建您的入口定义并添加以下定义的注释:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: func
  namespace: default
  annotations:
    kubernetes.io/ingress.class: kong   # <-- THIS
    plugins.konghq.com: http-ratelimit  # <-- THIS
spec:
...

之后,要最终设置速率限制,请使用此定义并将其应用到您的 kubernetes 集群中:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: http-ratelimit
  namespace: default
config:
  policy: local
  second: 1
plugin: rate-limiting 

这将在您的入口中创建每秒 1 个请求的限制。如果您想要任何不同的东西,只需使用您自己的配置更改配置部分。检查插件的 documentation 以了解所有可能的配置。