kubernetes 有没有办法在Ingress上只为一个服务启用代理协议?

3zwjbxry  于 2023-03-22  发布在  Kubernetes
关注(0)|答案(1)|浏览(108)

我有这个服务,每天在Kubernetes中运行的IP限制为2个请求。由于它在入口代理后面,请求IP总是相同的,所以它将请求总量限制为2。
可以使用如下配置打开代理协议:

apiVersion: v1
metadata:
  name: nginx-ingress-controller
data:
  use-proxy-protocol: "true"
kind: ConfigMap

但这将打开它的所有服务,因为他们不希望代理协议,他们将打破。
有没有办法只为一个服务启用它?

vwkv1x7d

vwkv1x7d1#

可以配置Ingress,使其将原始IP包含在http报头中。
为此,我不得不更改服务配置。它被称为ingress-nginx-ingress-controller(或类似),可以在kubectl get services -A中找到

spec: 
   externalTrafficPolicy: Local

然后使用相同的名称配置ConfigMap:

data:
  compute-full-forwarded-for: "true"
  use-forwarded-headers: "true"

重启Pod,http请求将包含字段X-Forwarded-ForX-Real-Ip
此方法不会中断不需要代理协议的部署。

相关问题