Running Istio 1.5 on Minikube

Image for post
Image for post

Istio 1.5 is out. Istio took a very bald and big move. Istio decided to move away from microservices. Considering istio use case it makes lots of sense. As you go with microservice architecture you have several advantages like autonomy, use the best tool for the job(different languages), scale components independently, isolation and many others. However, microservices are not a free lunch and there is a downside from it. One of them is the DevOps engineering price to configure, provision, monitor and maintain several isolated services. The other one is complexity. Microservices are more complex than monolith systems. Istio took the move and went to from the microservices architecture with 5 services(Pilot, Cidatel, Telemetry, Policy, Galley, Injector) into 1 single service called istiod. This move made lots of sense. Not only because it removed complexity but also make configuration, installation and upgrade much easier. I’,m sure this move will drive more adoption.

Running Istio 1.5 in Minikube

There are some important things to keep in mind. First of all, I’m setting up 16GB for istio. Istio runs much better with more memory. It’s possible to run it with 8GB if you like. If you are having issues, for sure is the memory. Crash loop back in Kubernetes most of the time is because of the lack of resources like memory.

Secondly, there are some commands that will require you to open new terminals like the minikube tunnel and dashboards. Keep in mind some of the dashboard commands like envoy and controlz require the pod name which will change, so do a kubectl get and pick the right pod name. Keep in mind istio is deployed in a different namespace called (istio-system) in order to access it via kubectl you need to pass -n istio-system at the end of each command.

Here are some screenshots of Istio 1.5 running on my machine.

kubectl get all (show all resources from the demo app)

Image for post
Image for post

kubectl get all -n istio-system (show all resources from istio namespace/installation)

Image for post
Image for post

istioctl dashboard kiali (show kiali service-mesh graph visualization of the demo app).

Image for post
Image for post

istioctl dashboard Prometheus (show Prometheus observability ui).

Image for post
Image for post

istioctl dashboard envoy $productpage_pod_name

Image for post
Image for post

istioctl dashboard controlz $istiod-pod-name -n istio-system

Image for post
Image for post

Product Page demo app running on my chrome

Image for post
Image for post

istioctl dashboard jaeger

Image for post
Image for post

istioctl dashbaord grafana

Image for post
Image for post

Istio 1.5 it’s very sexy. One of the biggest downsides of istio just got fixed(complexity of configuration, maintained and upgrade). The only thing we still need to be paying attention to is overhead. The last time I check was around 10ms. I’m sure istio will get faster and better.

Cheers,
Diego Pacheco

Originally published at http://diego-pacheco.blogspot.com on March 14, 2020.

Written by

Brazilian, Software Architect, SWE(Java, Scala, Rust, Go) SOA & DevOps expert, Author. Working with EKS/K8S. diegopacheco.github.io (Opinions on my own)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store