Как получить IP-адрес клиента из Azure Kubernetes с помощью службы LoadBalancer

Я получаю 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

1 ответ

Решение

Вам не нужен входной контроллер. Однако необходимо установить значение spec.externalTrafficPolicy Служебное поле для "Локальный" (по умолчанию "Кластер") в Microsoft Azure.

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

См. Использование исходного IP.

Другие вопросы по тегам