Current setup in our org:
Services are registered to consul and contact each other using the DNS provided by consul. Consul also does the load balancing for us
Our idea is is to have a service mesh of vms running docker containers initially and eventually transition to a full k8s implementation of the service mesh. In our projected setup, we ll have istio-deployed in K8s. The VM would have the app and as well the pilot-agent(sidecar) deployed as separate containers.
- The apps will still register to consul.
- Envoy Sidecars running on VMs would be connected to the istio-pilot running in k8s
- For a particular service, Istio-pilot would fetch the service catalog from consul.
- The service configuration(instance Ips etc) would be distributed to the sidecars.
My questions are:
Does this look like a feasible idea ? If no why not ?
If yes, What are some of the approaches I can follow to enable routing of traffic from envoy to envoy in this setup? Can I use the existing init container image somehow to achieve this ?