【问题标题】:How to get client IP address from inside a Azure Kubernetes with a LoadBalancer service如何使用 LoadBalancer 服务从 Azure Kubernetes 内部获取客户端 IP 地址
【发布时间】:2018-09-09 20:49:10
【问题描述】:

我获取的是节点 IP 地址而不是客户端 IP。是否可以使用LoadBalancer 类型的服务获取客户端 IP?还是我需要使用入口控制器?

apiVersion: v1
kind: Service
metadata:
  name: app-svc
  labels:
    name: app-svc
    environment: dev
spec:
  type: LoadBalancer
  loadBalancerIP: XXX.XXX.XXX.XXX
  ports:
    - name: http-port
      port: 80
      targetPort: 80
      protocol: TCP
  selector:
      name: app-deploy

【问题讨论】:

    标签: azure kubernetes azure-aks azure-load-balancer


    【解决方案1】:

    您不需要任何 Ingress 控制器。但是需要在 Microsoft Azure 中将spec.externalTrafficPolicy Service 字段的值设置为“Local”(默认为“Cluster”)。

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      type: LoadBalancer
      externalTrafficPolicy: Local
      ...
    

    Using source IP

    【讨论】:

    • 对于快速实验,我使用kubectl edit svs/pentagon-balancer 并将Cluster 更改为Local。现在我可以在后端的 X-Forwarded-For 标头中看到真实的用户 IP
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多