Istio for Microservices running on VMs

Hi there,

We have bunch of JAVA microservices deployed on VMs based on Vmware.

For intercommunication between the microservices, can we use Istio. I mean can we deploy Istio in complete VM based environment.

From the istio doc link, I know that Istio control plane can connect to VM based workloads but Istio control plane should be on k8s.

What I want is make use of Istio control + data plane for microservices running in non-contanerized environment i.e. VMs.


I would assume that you should be able to run Istio in such an environment.
However, Kubernetes takes care of a lot of things when you deploy the Istio control plane which now you will have to do it all yourself.
So, instead of having to re-implement all of that on VMs, why don’t you just spin up a few VMs and create a small K8s cluster which then just hosts the Istio control plane? I would say four not too big (but not too small) VMs should be enough and setting up K8s with kubeadm is really straight forward.
Just an idea…


Thanks for suggestion.

However, for installing istio control plane on vm, i could not find any reference on istio documentation. I saw the platform supported list which is all Kubernetes.

Do you have any reference for installing istio control plane on vm?

Hello Murtuza,

first, I am not aware of anybody trying to deploy and run Istio in a non-Kubernetes environment, so, unfortunately I don’t have any reference for that.

Secondly, I took another closer look at this and believe it might actually be much harder than I originally guessed. Istio is being configured and “driven” by CRDs (Custom Resource Definition) and that in itself is so specific to Kubernetes that it might be impossible to migrate over to a VM environment without code changes in Istio itself.

So, I would definitely look into the “alternative” model I suggested and set up a small K8s cluster to exclusively host the Istio control plane. This is definitely your best and also fastest solution.

All the best!