我有这个服务,每天在Kubernetes中运行的IP限制为2个请求。由于它在入口代理后面,请求IP总是相同的,所以它将请求总量限制为2。
可以使用如下配置打开代理协议:
apiVersion: v1
metadata:
name: nginx-ingress-controller
data:
use-proxy-protocol: "true"
kind: ConfigMap
但这将打开它的所有服务,因为他们不希望代理协议,他们将打破。
有没有办法只为一个服务启用它?
我有这个服务,每天在Kubernetes中运行的IP限制为2个请求。由于它在入口代理后面,请求IP总是相同的,所以它将请求总量限制为2。
可以使用如下配置打开代理协议:
apiVersion: v1
metadata:
name: nginx-ingress-controller
data:
use-proxy-protocol: "true"
kind: ConfigMap
但这将打开它的所有服务,因为他们不希望代理协议,他们将打破。
有没有办法只为一个服务启用它?
1条答案
按热度按时间vwkv1x7d1#
可以配置Ingress,使其将原始IP包含在http报头中。
为此,我不得不更改服务配置。它被称为
ingress-nginx-ingress-controller
(或类似),可以在kubectl get services -A
中找到然后使用相同的名称配置ConfigMap:
重启Pod,http请求将包含字段
X-Forwarded-For
和X-Real-Ip
。此方法不会中断不需要代理协议的部署。