Istio 1.7 Not Showing Source IP Metallb


I have a server using microk8s, flannel and metallb. I’ve installed 1.7 with istioctl.

I’m trying to get the source ip in a pod using and

however it just shows the ingressgateway ip. I’ve tried:

kubectl patch svc istio-ingressgateway -n istio-system -p '{"spec":{"externalTrafficPolicy":"Local"}}'

I have also tried setting externalTrafficPolicy=Local via the istioctl install in case that makes a difference but still have the same issue. It seems “externalTrafficPolicy”:“Local” is now in the ingressgateway by default anyway.

When I use a standard kubernetes loadbalancer service with externalTrafficPolicy: true I can see the correct source ip in the pods. So I don’t think it’s an issue with metallb or flannel. I thought injecting a sidecar might help but then I just see as the ip for all traffic.

I’ve seen a lot of people having this same issue but they all seem to be with older versions of istio.

I didn’t mention I’m using kubernetes 1.19