Kubernetes 中基于 URL 和 Path 的速率限制

Tal*_*riq 3 managed rate-limiting kubernetes amazon-eks

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

我正在寻找一种涉及最少脚本的托管方式,并且确实提供了一个界面,通过该界面来管理不同应用程序的速率限制。

该系统应该能够在企业级别准确工作。

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

Mar*_* K. 5

Rate-limiting通过使用正确的注释在 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 速率限制的更多信息,并在本指南中阅读有关 Kubernetes 中 NGINX 速率限制的更多信息。

  • 您知道是否可以根据特定路径进行配置,例如/login/? (2认同)
  • 可以创建多个入口对象并分别应用不同的注释,而不是使用配置片段。例如,一个入口用于路径 /,另一个入口带有速率限制注释,并配置为路径 /login (2认同)