Istio 1.7 Not Showing Source IP Metallb

Hi,

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 https://github.com/istio/istio/blob/9c5f15c44336cefdbf0a289c0794fc3818866b5d/samples/httpbin/httpbin-gateway.yaml and https://github.com/istio/istio/blob/9c5f15c44336cefdbf0a289c0794fc3818866b5d/samples/httpbin/httpbin.yaml

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 127.0.0.1 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