Consul federation architecture question

Hey everyone,

I would appreciate any inputs on this as I am trying to understand the architecture.

  • I have X number of kubernetes clusters
  • I just need the endpoints IP addresses of kubernetes services running in those clusters
  • I dont need to route anything. If I said “look up serviceA” then I just want all the endpoints of the “serviceA” that I have in my 3 or 4 kubernetes clusters

To achieve this, I decided to use catalog sync (service sync) feature of consul and followed this documentation – Federation Between Kubernetes Clusters | Consul by HashiCorp

Actual questions

  • What if I wanted to add a 3rd cluster? I dont want to add more consul masters, I think 2 clusters are enough of redundancy for me. So would this 3rd cluster be considered “new datacenter” or can it simply join the existing setup?

  • Currently, when I look up the endpoints of the service, I need to specify the data center they belong to (e.g. “catalog/service/my-service?dc=mydc”). If I have a service deployed across multiple clusters, can I just query the service and not have to specify the DC?

Basically get all the endpoints of “myservice” wherever it is in all the clusters.

Thanks for reading and look forward to your suggestions!

What if I wanted to add a 3rd cluster?

You could use the existing servers from one of the clusters, see Consul Servers Outside of Kubernetes - Kubernetes | Consul by HashiCorp.

If I have a service deployed across multiple clusters, can I just query the service and not have to specify the DC

No, you always have to specify the DC if you’re in a different DC.