Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Ingress访问速率限制

Ingress访问速率限制

原创
作者头像
玖叁叁
发布于 2023-05-05 01:51:23
发布于 2023-05-05 01:51:23
1.9K00
代码可运行
举报
文章被收录于专栏:玖叁叁玖叁叁
运行总次数:0
代码可运行

Kubernetes集群中,可以使用Ingress控制器实现对应用程序的HTTP/HTTPS路由。除了路由外,Ingress控制器还可以实现流量控制,例如限制访问速率。

前置条件

在开始实现访问速率限制之前,需要确保已经在Kubernetes集群中部署了Ingress控制器和应用程序服务。

安装ingress-nginx

在这里,我们使用Nginx作为Ingress控制器。我们将使用ingress-nginx库中的Rate Limit模块来实现速率限制。请确保已经安装了Nginx Ingress Controller。

在安装Ingress Controller时,使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/cloud/deploy.yaml

创建应用程序服务

为了实现速率限制,我们需要先创建一个应用程序服务。下面是一个示例应用程序服务的定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - name: http
    port: 80
    targetPort: http

在上述配置中,我们创建了一个名为my-service的服务,该服务将指向应用程序的Pod。我们将使用该服务的名称来配置Ingress路由规则。

创建Ingress资源

接下来,我们将创建一个Ingress资源,并配置速率限制规则。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    nginx.ingress.kubernetes.io/limit-connections: "1"
    nginx.ingress.kubernetes.io/limit-rps: "1"
    nginx.ingress.kubernetes.io/limit-rpm: "10"
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /my-path
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              name: http

在上述配置中,我们为Ingress资源添加了如下注释:

  • nginx.ingress.kubernetes.io/limit-connections:连接数限制。在该示例中,连接数被限制为1。
  • nginx.ingress.kubernetes.io/limit-rps:每秒请求数限制。在该示例中,每秒请求数被限制为1。
  • nginx.ingress.kubernetes.io/limit-rpm:每分钟请求数限制。在该示例中,每分钟请求数被限制为10。

我们还定义了一个Ingress规则,该规则将流量路由到my-service服务上的/my-path路径。在这里,我们将在example.com的主机名下配置路由规则。

测试速率限制

要测试速率限制是否生效,可以使用Apache Benchmark工具。首先,安装Apache Benchmark:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install apache2-utils

然后,使用以下命令运行测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ab -n 100 -c 10 http://example.com/my-path

在上述命令中,我们正在执行100个请求,每次并发请求10个,以检查速率限制是否正常工作。如果速率限制生效,则应该看到以下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Concurrency Level:      10
Time taken for tests:   x seconds
Complete requests:      100
Failed requests:        0
Total transferred:      x bytes
HTML transferred:       x bytes
Requests per second:    x [#/sec] (mean)
Time per request:       x [ms] (mean)
Time per request:       x [ms] (mean, across all concurrent requests)
Transfer rate:          x [Kbytes/sec] received

在上述输出中,我们应该看到请求数(Requests per second)与速率限制设置匹配。如果超出了速率限制,则ab命令将报告错误。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ingress实现黑白名单
在Kubernetes集群中,Ingress是用于暴露HTTP和HTTPS服务的一种资源类型。它可以根据域名、路径和端口将流量路由到不同的服务,为开发人员提供了便利。Ingress控制器支持通过配置黑白名单来控制哪些IP地址可以访问服务。
玖叁叁
2023/05/05
2.7K0
Ingress-Nginx 服务暴露基础学习与实践 (2)
更多学习笔记文章请关注 WeiyiGeek 公众账号,学习交流【邮箱联系: Master#weiyigeek.top】
全栈工程师修炼指南
2021/07/25
3.3K0
Ingress-Nginx 服务暴露基础学习与实践 (2)
Nginx Ingress的一些奇巧淫技
redirect主要用于域名重定向,比如访问a.com被重定向到b.com。 如下我们配置访问ng.coolops.com重定向到www.baidu.com
极客运维圈
2020/05/14
9.1K1
【K8s】Kubernetes 服务发现之 Ingress 进阶
行者Sun
2024/09/02
1740
【K8s】Kubernetes 服务发现之 Ingress 进阶
Linkerd 与 ingress-nginx 结合使用以及对服务的访问限制
出于简单,Linkerd 本身并没有提供内置的 Ingress 控制器,Linkerd 旨在与现有的 Kubernetes Ingress 解决方案一起使用。
我是阳明
2022/09/29
1.2K0
Linkerd 与 ingress-nginx 结合使用以及对服务的访问限制
Ingress-Nginx进阶学习实践扩充配置记录
描述: 在您在kubernetes搭建ingress并通过其访问集群内部部署的项目时,有些功能可能会存在如下报错:Access to XMLHttpRequest at ... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 上述错误提示这是一个跨域问题,在传统项目中我们更改Nginx配置即可,然后在kubernetes中或者ingress中,我们应该如何处理这种问题呢?
全栈工程师修炼指南
2022/09/29
7K0
Ingress-Nginx进阶学习实践扩充配置记录
Nginx-Ingress详解
k8s 中所有的资源都有对应的控制器在操控这个资源,管理资源的生命周期,实现”声明式“效果。Deployment、Service、Replicaset等资源的控制器封装在k8s内置的 controller-manager进程中。
kinnylee
2021/12/30
6.8K1
Ingress-Nginx 服务暴露基础学习与实践
描述: 到目前为止我们了解kubernetes常用的三种暴露服务的方式:LoadBlancer Service、 NodePort Service、Ingress
全栈工程师修炼指南
2022/09/29
3.1K1
Ingress-Nginx 服务暴露基础学习与实践
Ingress Controller安装
Ingress Controller是一种Kubernetes的扩展,它可以对Ingress资源进行解析,并将其转换为规则,以便流量可以正确地路由到相应的服务。Ingress Controller可以根据流量路径、主机名、协议和其他规则对流量进行路由,并支持TLS终止和负载平衡等功能。
玖叁叁
2023/05/02
9220
【云原生 | Kubernetes篇】Ingress案例实战(十三)
ingress规则会生效到所有按照了IngressController的机器的nginx配置。
Lansonli
2022/06/16
1.1K0
【云原生 | Kubernetes篇】Ingress案例实战(十三)
kubernetes-ingress Rewrite
Kubernetes Ingress是一个用于管理Kubernetes集群中HTTP和HTTPS流量的API对象。在使用Ingress时,您可以定义不同的路由规则来指定不同的后端服务,以及不同的路径和主机名映射到这些服务。
玖叁叁
2023/05/04
1.1K0
Ingress实现灰度发布(三)
现在我们已经定义了Ingress规则,可以开始实现灰度发布。在这个例子中,我们将流量路由到新版本服务和旧版本服务之间的比例为3:1。也就是说,每当有四个请求进入时,其中三个将路由到新版本服务,一个将路由到旧版本服务。
玖叁叁
2023/05/05
2540
ASP.NET Core on K8S深入学习(14)Ingress灰度发布
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。
Edison Zhou
2020/05/25
6710
ASP.NET Core on K8S深入学习(14)Ingress灰度发布
Ingress Nginx 常用规则使用
本文所讲的配置规则,都配置在 annotations(局部配置) 中,Ingress Nginx Deployment 必须配置 --annotations-prefix 参数,默认以 nginx.ingress.kubernetes.io 开头。
YP小站
2020/06/04
2.8K0
【K8S专栏】Kubernetes应用访问管理
在Kubernetes中,提供了Service和Ingress两种对象来实现应用间访问或外部对集群应用访问,这两种对象在实际的工作中会时长使用,非常重要的对象。
没有故事的陈师傅
2022/12/06
1.6K0
【K8S专栏】Kubernetes应用访问管理
使用 Nginx Ingress 和 APISIX 实现 Kubernetes 集群中的流量路由和跨域请求处理
Kubernetes (k8s) 集群,默认配置好了 Nginx Ingress 控制器,用于处理南北流量的调度,即处理从外部到集群内部服务的流量。下面是对您的架构的重新组织和概述:
行者深蓝
2024/03/18
6330
Ingress-Nginx 服务暴露基础学习与实践(1)
本章讲解通过服务发现的功能进行实现 , 由 Ingress controller 来提供路由信息的刷新, Ingress controller可以理解为一个监视器不断监听 kube-apiserver 实时感知service、Pod的变化
全栈工程师修炼指南
2021/07/25
3.2K0
kubernetes-ingress
Kubernetes Ingress是一个API对象,用于将外部请求路由到集群内的服务。Ingress对象可以配置HTTP和HTTPS协议的路由规则,并提供了一种灵活的方式来管理流量流向不同的服务和部署。
玖叁叁
2023/05/04
3670
🚀 详解 Helm 部署 Ingress-NGINX:从零到一的全面指南
这里推荐一篇实用的文章:《密码安全:如何识别强弱密码,并打造铁壁防线!》,作者:【喵手】。
bug菌
2024/11/17
5390
🚀 详解 Helm 部署 Ingress-NGINX:从零到一的全面指南
什么是Ingress
在 Kubernetes 集群中,Ingress 是一种资源对象,可以将外部请求路由到 Kubernetes 集群内部的 Service 中。Ingress 允许您在不更改服务代码的情况下,动态地管理路由规则,从而实现更加灵活的服务部署和管理。
玖叁叁
2023/05/02
4590
相关推荐
Ingress实现黑白名单
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验