I'm getting the node IP address instead of the client IP. Is it possible to get the client IP with a service of type LoadBalancer? Or will I need to use a ingress controller?
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-deployYou do not need any Ingress controller. However it is required to set the value of the spec.externalTrafficPolicy Service field to "Local" (the default is "Cluster") in Microsoft Azure.
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: LoadBalancer
externalTrafficPolicy: Local
...See Using source IP.