Traffic-splitting: Is there a way to specify backup cluster for failover purposes

627 views
Skip to first unread message

jz

unread,
Jul 31, 2018, 4:30:33 PM7/31/18
to envoy-dev
Hi, 

New to Envoy and I am trying to figure out how Envoy does traffic splitting, especially for failover scenarios. 

It seems the RDS API allows traffic splitting among multiple upstream clusters by assigning different weights to different clusters. However, is there a way to specify the backup clusters that stay inactive during normal case and will only be used when all primary clusters are unhealthy? This is basically to provide support for automatic failover in case the primary clusters are down. 

Thanks a lot!

jz

Matt Klein

unread,
Jul 31, 2018, 7:34:53 PM7/31/18
to zhanj...@gmail.com, envoy-dev

--
You received this message because you are subscribed to the Google Groups "envoy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to envoy-dev+...@googlegroups.com.
To post to this group, send email to envo...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/envoy-dev/850ec6e8-3fc0-40e0-b708-0c9b14637a6a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

jz

unread,
Aug 1, 2018, 2:28:33 AM8/1/18
to envoy-dev
Thanks for sharing, Matt. 

Looks like the priority levels are set at the endpoints level, not at cluster level. For example, ideally I'd like something like:

cluster      weight    priority 
A              50           0
B              50           0
C             100          1

For each priority, the weight of all clusters sums up to 100. And if priority 0 has no healthy endpoint at all (e.g. region failure), clusters in the next priority level, i.e. C, will be used. The benefit of this is, Envoy can perform automatic failover without another runtime config update. 

Do you think it's a valid use case and is there a way to achieve this in Envoy?

Matt Klein

unread,
Aug 1, 2018, 1:19:51 PM8/1/18
to zhanj...@gmail.com, Shriram Rajagopalan, envoy-dev
Yeah I don't think we support this today that I know of. I've added Shriram who might have some thoughts.


For more options, visit https://groups.google.com/d/optout.

Shriram Rajagopalan

unread,
Aug 3, 2018, 2:48:40 PM8/3/18
to Matt Klein, zhanj...@gmail.com, envoy-dev
No we don't support this today. You could achieve the a similar behavior though by using subset load balancers. Subsets allow you to specify default fallback labels.
But even there, you don't have the ability to try different label sets and fallback. 
Out of curiosity, why would you want to do this?

To unsubscribe from this group and stop receiving emails from it, send an email to envoy-dev+unsubscribe@googlegroups.com.

To post to this group, send email to envo...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/envoy-dev/5be2e873-51c5-467b-b5ff-ec8b8b26bb6b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

jz...@uber.com

unread,
Aug 6, 2018, 7:02:44 PM8/6/18
to envoy-dev
Thanks for the responses. 

I should have described the motivation better. What I real needed is automatic zone failover. After looking at the xDS APIs more. It seems my initial requirements can be satisfied with EDS, not RDS, by using the LocalityLBEndpoints. 




--
Reply all
Reply to author
Forward
0 new messages