【问题标题】:Rate Limiting based on URL and Path in KubernetesKubernetes 中基于 URL 和路径的速率限制
【发布时间】:2020-10-19 10:56:30
【问题描述】:

我需要对部署在 Kubernetes 集群 (EKS) 上的应用程序实施速率限制(基于 URL 和路径)。

我正在寻找一种包含最少脚本的托管方式,并且确实提供了一个接口来管理不同应用程序的速率限制。

该系统应该能够在企业级准确运行。

有人可以建议我遵循的路径/工具/框架以实现它。

【问题讨论】:

    标签: kubernetes managed amazon-eks rate-limiting


    【解决方案1】:

    Rate-limiting 在 NGINX 中可用 Ingress 使用 correct annotations。可用选项有:

    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 默认:返回 503。
    4. nginx.ingress.kubernetes.io/limit-burst-multiplier:乘数 突发大小的限制速率。默认突发乘数为 5, 此注释覆盖默认乘数。当客户超过 这个限制,limit-req-status-code default: 503 返回。
    5. nginx.ingress.kubernetes.io/limit-rate-after:初始数量 千字节,之后进一步传输响应到 给定的连接将受到速率限制。必须使用此功能 proxy-buffering enabled
    6. nginx.ingress.kubernetes.io/limit-rate: 每千字节数 第二个允许发送到给定的连接。零值 禁用速率限制。此功能必须与 proxy-buffering enabled
    7. nginx.ingress.kubernetes.io/limit-whitelist:客户端 IP 源范围 被排除在限速之外。该值以逗号分隔 CIDR 列表。

    您可以阅读更多关于 NGINX 速率限制 here 和 kubernetes 中的 NGINX 速率限制 in this guide

    【讨论】:

    • 你知道这是否可以根据特定路径配置,例如/登录/?
    • @riscarrott,不,目前它适用于添加注释的整个入口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    相关资源
    最近更新 更多