Running Istio 1.5 on Minikube

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)

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

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

istioctl dashboard Prometheus (show Prometheus observability ui).

istioctl dashboard envoy $productpage_pod_name

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

Product Page demo app running on my chrome

istioctl dashboard jaeger

istioctl dashbaord grafana

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


Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java