Istio on minikube: Better developer experience

#1

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.

#2

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).

#3

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?

#4

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.

#5

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

#6

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/

#7

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

1 Like
#8

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
#9

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