Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EDS + endpoint slow start Support #787

Closed
zhshw opened this issue Dec 9, 2022 · 6 comments · Fixed by #1118
Closed

EDS + endpoint slow start Support #787

zhshw opened this issue Dec 9, 2022 · 6 comments · Fixed by #1118
Labels
kind/enhancement New feature or request
Milestone

Comments

@zhshw
Copy link

zhshw commented Dec 9, 2022

Description:
There are many types of programs that start slowly and require the flow control of the Pod Endpoint.
envoy supports slow start config feature

@arkodg
Copy link
Contributor

arkodg commented Jan 6, 2023

@zhshw can you please elaborate on why EDS is needed for the slow start feature ?
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#config-cluster-v3-cluster-slowstartconfig

We build static clusters in this project, and when a service endpoint changes, it will be reconciled by the controller, translated into an xds cluster and then, only the updated cluster will be pushed to envoy via delta xds

@zhshw
Copy link
Author

zhshw commented Jan 9, 2023

@arkodg For example, many Java applications start very slowly, requiring a flow warm-up process.
In the process of practicing cloud nativeness, many projects implement traffic warmup in various ways,
so aws ALb takes the lead in supporting and envoy implements Istio also supports configuration changes
service -> Pod endpoints -> lbEndpoints , If you have configured slowstart in the cluster,The new lbendpoint will enter the warm-up mode。

The clusterip is basically unchanged
current code
return &ir.RouteDestination{ Host: service.Spec.ClusterIP, Port: uint32(*backendRef.Port), Weight: weight, }, weight

For large services, the service clusterip will add one request hop of NAT. The five tuples of the clusterip are limited by the number of ports on the node

@arkodg
Copy link
Contributor

arkodg commented Jan 10, 2023

there is no strong use case for EDS yet

but the slow start feature is a valid use case that I believe is separate. It is however blocked by #35 . Is this something you could help with @zhshw ?

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had activity in the last 30 days.

@github-actions github-actions bot added the stale label Feb 10, 2023
@zhshw zhshw closed this as completed Feb 10, 2023
@arkodg
Copy link
Contributor

arkodg commented Mar 2, 2023

reopening this issue, as the use case for incorporating EDS is to seamlessly update endpoints without disrupting existing upstream connections associated with the Cluster.

@arkodg arkodg reopened this Mar 2, 2023
@arkodg arkodg removed the stale label Mar 2, 2023
@arkodg arkodg added this to the 0.5.0-rc1 milestone Mar 2, 2023
@zirain
Copy link
Member

zirain commented Mar 3, 2023

FYI, EDS will be helpful on case like istio/istio#43575

arkodg added a commit to arkodg/gateway that referenced this issue Mar 9, 2023
Fixes: envoyproxy#787

Signed-off-by: Arko Dasgupta <[email protected]>
arkodg added a commit to arkodg/gateway that referenced this issue Mar 10, 2023
Fixes: envoyproxy#787

Signed-off-by: Arko Dasgupta <[email protected]>
zirain pushed a commit that referenced this issue Mar 14, 2023
* Add EDS for static endpoints

Fixes: #787

Signed-off-by: Arko Dasgupta <[email protected]>

* better api

Signed-off-by: Arko Dasgupta <[email protected]>

* tests

Signed-off-by: Arko Dasgupta <[email protected]>

* rm print

Signed-off-by: Arko Dasgupta <[email protected]>

* lint

Signed-off-by: Arko Dasgupta <[email protected]>

* fix egctl x translate

Signed-off-by: Arko Dasgupta <[email protected]>

---------

Signed-off-by: Arko Dasgupta <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants