Replies: 5 comments 3 replies
-
This makes me a bit uneasy. I feel like this type of routing is more of a property of the backend then the route. For example, Service already has a field internalTrafficPolicy that is exactly like this (but less feature rich) |
Beta Was this translation helpful? Give feedback.
-
I've seen a similar use case for something like active/standby or active/active systems. I agree with @howardjohn that we have to be careful to avoid overlapping with existing config like internalTrafficPolicy, but I think the specific example you shared of spilling over to another cluster, or just generally spilling over to another Service feels somewhat distinct. Would be helpful to collect interest and use cases here so we have a bit more clarity. I'm curious if the use cases could be solved by a waterfall type LB algorithm where the first set of backends are filled before spilling over to the next set of backends. |
Beta Was this translation helpful? Give feedback.
-
looking at the spec for
above API presented, alleviates both these constraints |
Beta Was this translation helpful? Give feedback.
-
I share the concerns from @robscott and @howardjohn here, this is one of those things that seems straightforward but may have big ramifications, because now it's another routing dimension. I'd also encourage everyone to think about - do we tell a user (in Status or similar) which backend is taking the traffic at the moment and why? If not, that seems not ideal, but if so, then we have another possible rapid-update, apiserver overload problem (since it seems likely that backends may fluctuate reasonably frequently between health and unhealthy). |
Beta Was this translation helpful? Give feedback.
-
Usecase 2. - A business unit may want to route all the ingressed application traffic through a middleware security service before sending it to the application service. However they would also like to address the scenario of, if the middleware is down, they would be okay if the application traffic went directly to the app service, for such a failure scenario.
|
Beta Was this translation helpful? Give feedback.
-
Creating this discussion as a first step before formally creating a GEP for #1802
WHAT
Add the ability to add a
priority
to a backend ref, allowing the application owner to build backend tiers. i.e. when backends with the highest priority are healthy, all traffic will be routed to them. However when those backends are unhealthy (as detected by the control plane + data plane), the traffic is shifted to the next lower priority.Taking an example config similar to the ones described in GEP: Gateway API Interaction with Multi-Cluster Services ( https://gateway-api.sigs.k8s.io/geps/gep-1748/)
In this example all traffic is routed to
Service
store
(which has the highest priority0
) in the common case. When thestore
Service endpoints are unhealthy, then traffic is routed to ServiceImportstore-global
(at a lower priority1
) and these endpoints may be outside this cluster.WHY
priority
knob helps keep traffic within the cluster, eliminating any egress costs, until the local service is unhealthy and then traffic needs to be egressed outside the cluster.priority
field provides a fine tuned way to deal with High Availability outcomes, which is not possible today.Beta Was this translation helpful? Give feedback.
All reactions