Multiple xDS servers

247 views
Skip to first unread message

Gabriel Bordovský

unread,
Apr 17, 2023, 4:56:12 AM4/17/23
to grpc.io
Hi,
I work in a company that uses separate infrastructure (an internal k8s cluster) for separated teams.
Now these teams modernize their services and often use gRPC.
We want to employ the xDS for time-sensitive components while each team providing some service is responsible for its own xDS server/control plane.

We currently have an issue where one service should aggregate the results of two (or possibly more) others provided by other teams.
The idea was to create two separate gRPC clients, one for each xDS server. But as for [documentation/proposal](https://github.com/grpc/proposal/blob/master/A27-xds-global-load-balancing.md) the xDS client is configured using a bootstrap file specified by an environmental variable `GRPC_XDS_BOOTSTRAP`. This file does not support multiple servers ("xds_servers" is an array, but only the first element is currently used and in the future, the others should be fallbacks).

My question is if there is a recommended way to connect to multiple xDS servers?

The only solution I can think of now is to modify the `GRPC_XDS_BOOTSTRAP` variable between the creation of the separate clients, which does not feel right and I am not sure how safe it will be. It could work if the bootstrap file is read when the client is initialized and is not referenced later... but there could be a ton of different issues.

Best regards,
Gabriel Bordovský

sanjay...@google.com

unread,
Apr 24, 2023, 3:07:47 PM4/24/23
to grpc.io
Take a look at https://github.com/grpc/proposal/blob/master/A47-xds-federation.md which describes how multiple xds servers are specified in the bootstrap file and the federation use-case. Which gRPC language are you using?

Gabriel Bordovský

unread,
Apr 25, 2023, 2:17:12 AM4/25/23
to grpc.io
Thanks, this looks like the thing I was looking for. We are using C++, but there are also RUST and Java clients in our company.

Dne pondělí 24. dubna 2023 v 21:07:47 UTC+2 uživatel sanjay...@google.com napsal:

apo...@google.com

unread,
Apr 26, 2023, 1:44:34 PM4/26/23
to grpc.io
Java also supports that A47 federation proposal - also see https://github.com/grpc/grpc-java/pull/10099
Reply all
Reply to author
Forward
0 new messages