Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

envoy: Implement locality-based prioritized (affinitized) endpoint traffic routing #3043

Closed
4 tasks done
draychev opened this issue Mar 30, 2021 · 7 comments
Closed
4 tasks done
Assignees
Labels
area/multicluster Related to Multicluster functionality priority/P2 P2 priority size/XL 20 days (4 weeks)
Milestone

Comments

@draychev
Copy link
Contributor

draychev commented Mar 30, 2021

This issue is for the following sub-issues:


Context

We need to implement traffic routing such that traffic is first routed to the group of endpoints closest to the origin, then to those groups further and further away (next cluster, next zone, next region etc.)

Documentation:

Take a look at the priority field. From the Envoy docs on the priority field:

Under usual circumstances, Envoy will only select endpoints for the highest priority (0).
In the event all endpoints for a particular priority are unavailable/unhealthy, Envoy will
fail over to selecting endpoints for the next highest priority group.
@steeling
Copy link
Contributor

steeling commented Jun 9, 2021

Also seems like the locality should be set more intelligently? https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/base.proto#envoy-v3-api-msg-config-core-v3-locality

@allenlsy
Copy link
Contributor

Also take a look at this: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/zone_aware.html. I feel it is quite similar to locality based routing

@allenlsy
Copy link
Contributor

Can I get a early review for this WIP mini design doc?

https://docs.google.com/document/d/1OxDPYkdffEJmraSMZpl83JOt3Kjxjfmoehp4T1ebpfs/edit#

@allenlsy
Copy link
Contributor

I think we don't need to create sub-tasks for the implementation. Using just this task should be sufficient.

Before the implementation, there are two prerequisites:

  • OSM Multicluster CRD is ready to be consumed
  • OSM Multicluster service is completed, so that source service can reach destination service in all clusters.

Then the changes need to be made are:

  • OSM controller watches MultiCluster resource changes
  • Updates the endpoint and load_balancing_weight field of the Envoy CDS API response. This should be part of the catalog.

@allenlsy
Copy link
Contributor

Sub tasks of this issue:

@michelleN michelleN modified the milestones: v1.0.0, vNext Sep 13, 2021
@michelleN
Copy link
Contributor

Is this being put behind a feature flag?

@allenlsy
Copy link
Contributor

Sorry I missed the message.

It's not behind feature flag. The figure does not affect single cluster scenario. But when the enableMulticlusterMode flag is turned on, this figure will start to work.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/multicluster Related to Multicluster functionality priority/P2 P2 priority size/XL 20 days (4 weeks)
Projects
None yet
Development

No branches or pull requests

5 participants