cyb*_*roy 6 amazon-web-services docker kubernetes kubernetes-ingress nginx-ingress
我正在使用 Kubernetes Kops。我想仅针对特定路径在 Ingress-Nginx 级别设置速率限制 rps。
我知道关于
nginx.ingress.kubernetes.io/limit-rps
Run Code Online (Sandbox Code Playgroud)
如果我在入口规则中设置它,那么它将适用于所有路由。但是,我想将其应用于特定路线。比方说,当我尝试访问时
/login
Run Code Online (Sandbox Code Playgroud)
我想将路径 /login 的 rps 限制设置为 100
nginx.ingress.kubernetes.io/limit-rps: 100
Run Code Online (Sandbox Code Playgroud)
这是我的 Ingress 规则配置,
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: staging-ingress-rules
namespace: staging
annotations:
kubernetes.io/ingress.class: 'nginx'
nginx.ingress.kubernetes.io/proxy-body-size: '0'
spec:
rules:
- host: staging.mysite.com
http:
paths:
- path: /login
backend:
serviceName: login_site
servicePort: 80
- path: /registration
backend:
serviceName: registration_site
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
通过为同一主机名添加多个 Ingress 定义,可以稍微滥用 ingress-nginx 的配置。ingress-nginx 会将规则/路由合并在一起。不过,配置将变得更难管理,并且您正在接近 nginx 代理可以为您做的事情的极限。
如果您想开始更详细地管理各个服务,还可以考虑kong或istio之类的东西。
在这里,为您的命名约定创建一个结构非常重要,这样您就可以知道哪个 Ingress 包含哪些路由。name我将从Ingress 中使用路由路径开始,但您的用例可能会有所不同:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: staging-ingress-rules-registration
annotations:
kubernetes.io/ingress.class: 'nginx'
nginx.ingress.kubernetes.io/proxy-body-size: '0'
nginx.ingress.kubernetes.io/limit-rps: '10'
spec:
rules:
- host: staging.mysite.com
http:
paths:
- path: /registration
backend:
serviceName: registration-site
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: staging-ingress-rules-login
annotations:
kubernetes.io/ingress.class: 'nginx'
nginx.ingress.kubernetes.io/proxy-body-size: '0'
nginx.ingress.kubernetes.io/limit-rps: '100'
spec:
rules:
- host: staging.mysite.com
http:
paths:
- path: /login
backend:
serviceName: login-site
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
我不确定nginx.ingress.kubernetes.io/ssl-ciphers需要如何管理主机范围或服务器范围的注释(例如)。如果它们都很好地融合,那么也许会创建一个特殊的 Ingress 来容纳它们。如果没有,您可能最终会管理所有 Ingress 配置中的主机设置,这将是一件痛苦的事情。
| 归档时间: |
|
| 查看次数: |
4317 次 |
| 最近记录: |