Ingress对服务做限流

  • Post author:
  • Post category:其他


随着现在更多环境的服务进行上云,对网关这块能实现的功能也比较关注,除了能正常的实现代理的作用,还需要可以进行比如:熔断,链路追踪,限流等,这里主要操作下对ingress的限流。

首先还是需要在k8s集群上部署一个服务用来进行测试,我这里部署了一个nginx的pod,然后用ingress代理这个nginx服务,最后在ingress上做限流操作,通过访问ingress查看是否达到限流的作用。

下面创建ingress的yaml来代理nginx这个服务并做限流,如下:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: test-ingress-limit

annotations:

nginx.ingress.kubernetes.io/limit-rps: “1”

spec:

ingressClassName: nginx

rules:

– host: csh-limit.com

http:

paths:

– path: /index.html

pathType: Prefix

backend:

serviceName: nginx-svc

servicePort: 80

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

接下来开始进行创建并模拟请求看看,如下:

在这里插入图片描述

在这里插入图片描述
如图所示通过模拟访问ingress已经达到限流的作用,具体的配置参数可以参考如下地址:

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rate-limiting



版权声明:本文为qq_44397993原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。