首页 > 解决方案 > 如何使用 LoadBalancer 服务从 Azure Kubernetes 内部获取客户端 IP 地址

问题描述

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

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

标签: azurekubernetesazure-aksazure-load-balancer

解决方案


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

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

请参阅使用源 IP


推荐阅读