Istio on minikube: Better developer experience

I’m trying to figure out how to deliver a better experience for our developers. We deploy to both GKE but developers also want to use their laptops/minikube. We currently use the nginx ingress, which works relatively well across both environments.

The two issues I run into with istio are:

  • Footprint. It’s quite large and doesn’t leave much room for other applications
  • The lack of a LoadBalancer type on minikube means we need to use port mapping tricks - and these don’t work well with our software.

How have others tackled these issues?

Suggestions welcome.

Are you just interested in the Istio ingress-gateway primarily? Or all of the capabilities? With the helm charts you can install just the components that you want (ie, the ingress-gateway+pilot).

I think the gateway would be a good start. Do I still need sidecar injection, citadel, etc. to run the gateway?

Also - it is not clear how to configure the gateway to accept connections on minikube’s IP on 80/443. nginx does this (I believe) using nodePorts. Can I do the same with the istio gateway?

No, you don’t need those. For the gateway to work all you need is the Pilot.

For minikube, when you install Istio, it will automatically listen on a NodePort. You can type minikube service list to see exactly what the IP and port would be.

To clarify - we want to explicitly set the nodeport to 80/443. Our apps are sensitive to port numbers.

Warren,

There is no cloud provider for minikube as you may be aware. The minikube docs indicate there is a “tunnel” feature to expose LBs over a range of IP addressees via a host tunnel. Not sure how well this works for your use case. If it does or doesn’t could you report back?

FWIW I would test, but have minimal experience with minikube as i find bare metal faster and easier to develop. On a bare metal platform I use metallb:

https://metallb.universe.tf/installation/

I have never used minikube tunnel before. I’ll check it out - thanks for the tip!

1 Like

You can deploy MetalLB using the minikube IP for it. Then you can deploy Istio with same config as with GKE. Please see : https://medium.com/@emirmujic/istio-and-metallb-on-minikube-242281b1134b

1 Like

Warren,

I finally got around to testing minikube tunnel and can report for future time travelers tunnel works and works well with Istio.

Cheers
-steve

2 Likes