【问题标题】:Kubernetess Ingress-nginx rate limting based on upstream server healthKubernetes Ingress-nginx 基于上游服务器健康的限速
【发布时间】:2022-08-04 19:01:21
【问题描述】:

只是想知道 ingress-nginx 中是否有任何方法可以仅在自定义健康检查 url 正常的情况下强制执行速率限制。 我一直在寻找,但未能找到这样做的方法。任何帮助将不胜感激。

    标签: nginx kubernetes rate-limiting ingress-nginx


    【解决方案1】:

    使用正确的annotations 可以在 NGINX Ingress 中进行速率限制,可用选项包括:

    1. nginx.ingress.kubernetes.io/limit-connections:单个 IP 地址允许的并发连接数。超过此限制时返回 503 错误。

    2. nginx.ingress.kubernetes.io/limit-rps:每秒从给定 IP 接受的请求数。突发限制设置为此限制乘以突发倍数,默认倍数为 5。当客户端超过此限制时,返回 limit-req-status-code default: 503。

    3. nginx.ingress.kubernetes.io/limit-rpm:每分钟从给定 IP 接受的请求数。突发限制设置为此限制乘以突发倍数,默认倍数为 5。当客户端超过此限制时,返回 limit-req-status-code default: 503。

    4. nginx.ingress.kubernetes.io/limit-burst-multiplier:突发大小限制速率的乘数。默认突发乘数为 5,此注释覆盖默认乘数。当客户端超过此限制时,返回limit-req-status-code default: 503。

    5. nginx.ingress.kubernetes.io/limit-rate-after:初始千字节数,之后对给定连接的响应的进一步传输将受到速率限制。此功能必须在启用代理缓冲的情况下使用。

    6. nginx.ingress.kubernetes.io/limit-rate:每秒允许发送到给定连接的千字节数。零值禁用速率限制。此功能必须在启用代理缓冲的情况下使用。

    7. nginx.ingress.kubernetes.io/limit-whitelist:客户端 IP 源范围被排除在速率限制之外。该值是逗号分隔的 CIDR 列表

      NGINX 入口的速率限制有一些限制:

      它适用于整个入口,并且无法配置异常,例如。当您想从服务中排除健康检查路径 /healthz 时。

      您可以在guide 中阅读更多关于 kubernetes 中 NGINX 速率限制的信息。

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      相关资源
      最近更新 更多