【发布时间】:2020-10-19 10:56:30
【问题描述】:
我需要对部署在 Kubernetes 集群 (EKS) 上的应用程序实施速率限制(基于 URL 和路径)。
我正在寻找一种包含最少脚本的托管方式,并且确实提供了一个接口来管理不同应用程序的速率限制。
该系统应该能够在企业级准确运行。
有人可以建议我遵循的路径/工具/框架以实现它。
【问题讨论】:
标签: kubernetes managed amazon-eks rate-limiting
我需要对部署在 Kubernetes 集群 (EKS) 上的应用程序实施速率限制(基于 URL 和路径)。
我正在寻找一种包含最少脚本的托管方式,并且确实提供了一个接口来管理不同应用程序的速率限制。
该系统应该能够在企业级准确运行。
有人可以建议我遵循的路径/工具/框架以实现它。
【问题讨论】:
标签: kubernetes managed amazon-eks rate-limiting
Rate-limiting 在 NGINX 中可用 Ingress 使用 correct annotations。可用选项有:
nginx.ingress.kubernetes.io/limit-connections: 并发数
允许来自单个 IP 地址的连接。 503 错误是
超过此限制时返回。nginx.ingress.kubernetes.io/limit-rps: 接受的请求数
每秒来自给定的 IP。突发限制设置为此限制
乘以突发乘数,默认乘数为 5。
当客户端超过此限制时,返回limit-req-status-code default: 503。nginx.ingress.kubernetes.io/limit-rpm: 数量
每分钟从给定 IP 接受的请求数。突发限制是
设置为此限制乘以突发乘数,默认
乘数为 5。当客户端超过此限制时,
limit-req-status-code 默认:返回 503。nginx.ingress.kubernetes.io/limit-burst-multiplier:乘数
突发大小的限制速率。默认突发乘数为 5,
此注释覆盖默认乘数。当客户超过
这个限制,limit-req-status-code default: 503 返回。nginx.ingress.kubernetes.io/limit-rate-after:初始数量
千字节,之后进一步传输响应到
给定的连接将受到速率限制。必须使用此功能
proxy-buffering enabled。nginx.ingress.kubernetes.io/limit-rate: 每千字节数
第二个允许发送到给定的连接。零值
禁用速率限制。此功能必须与
proxy-buffering enabled。nginx.ingress.kubernetes.io/limit-whitelist:客户端 IP 源范围
被排除在限速之外。该值以逗号分隔
CIDR 列表。您可以阅读更多关于 NGINX 速率限制 here 和 kubernetes 中的 NGINX 速率限制 in this guide。
【讨论】: