Can Istio be used to create service names that are resolvable in multiple namespaces?

Hello all,

I am just getting my head around the feature set and what is and isn’t possible with Istio. I work at an organisation that has, for better or worse, chosen to deploy each application in its own namespace, and they have multiple environments worth of stuff deployed in a single k8s cluster. As you can imagine, the names of the namespaces in the cluster end up being quite long, and storing the names of services in app configs gets nasty because you have to specify both the name of the service in a namespace, but also the long namespace name since no app has a dependent app living in the namespace. Imagine something like app_name.env-business_unit-app_name and then having 20 or 30 odd apps wanting to talk to that same service.

Is it possible to use Istio in some way to generate a service like “app_name” or “env-app_name” that, within a given list of namespaces, will send requests to a configurable address? I know that Istio has VirtualService resources, but from what I have read so far in my scenario I would have to create a service in every namespace that I want to be able to send requests from, which would be a maintenance headache in and of itself.

1 Like

Hi,

We have a similar deployment model to deploy services in different namespaces across multiple clusters. You can solve this problem by creating istio configuration for each service to create a desired name for the same using Istio’s service entry construct and some modifications to your k8s dns to resolve from istiocoredns for such entries.

We have automated that process both within a single cluster and across multiple clusters. We have open sourced that under istio-ecosystem projects pretty recently and have an alpha release out. Please check it out.

Disclaimer: I am a maintainer of that project

Thanks,
Anil

2 Likes