在Kubernetes中使用Ingress获取客户端真实IP可以通过以下方式实现:

  1. 使用代理协议: 在Ingress配置中启用代理协议(Proxy Protocol),这可以让负载均衡器在将请求传递给后端服务时,将客户端真实IP作为头部信息传递给后端服务。

    示例配置:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-ingress
    spec:
      rules:
        - host: your.domain.com
          http:
            paths:
              - path: /
                pathType: Prefix
                backend:
                  service:
                    name: your-service
                    port:
                      number: 80
      ingressClassName: nginx
      annotations:
        nginx.ingress.kubernetes.io/enable-ssl-passthrough: "true"
        nginx.ingress.kubernetes.io/proxy-protocol: "True"
  2. 使用Cloud Provider提供的选项: 如果您在云平台上运行Kubernetes,一些云服务提供商(如AWS、GCP等)提供了将真实客户端IP传递给Ingress的选项。您可以查阅相应的文档,了解如何配置。

无论您选择哪种方式,确保在Ingress配置中启用了相应的选项,并根据您的环境进行适当的调整。这将允许您在后端服务中获取到客户端的真实IP地址。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐