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

EndpointSlice Support #1256

Closed
3 tasks done
pgold30 opened this issue Apr 5, 2023 · 5 comments
Closed
3 tasks done

EndpointSlice Support #1256

pgold30 opened this issue Apr 5, 2023 · 5 comments
Assignees
Milestone

Comments

@pgold30
Copy link
Contributor

pgold30 commented Apr 5, 2023

Description:
EndpointSlice is now enabled by default in Kubernetes and offers some solid performance benefits for clusters with large Endpoint sets. It might be worthwhile to support consuming EndpointSlice, at least as optional.

Envoy is designed for scale and the use case for endpointslice also.

The lack of EndpointSlices implementation is unfortunately impacting production for us now. Since Kubernetes v1.22, Services that exceed 1000 Pods/network endpoints, Endpoints are now being truncated to a maximum of 1000 items.
Im sure there are many other people with the same issue. (same here in Countour)

Outlining the pieces needed to implement this issue @arkodg pointed here

Work Items:

[Relevant Links:]
Similar to Countour open issue.
This was shortly discussed here and this explanation
This was fixed on Feb 15 for nginx-ingress here

@pgold30 pgold30 added the kind/enhancement New feature or request label Apr 5, 2023
@arkodg arkodg added the help wanted Extra attention is needed label Apr 5, 2023
@arkodg arkodg added this to the 0.5.0-rc1 milestone Apr 5, 2023
@Xunzhuo
Copy link
Member

Xunzhuo commented Apr 9, 2023

Thanks for raising it @pgold30, I will take this in v0.5.0.

@Xunzhuo Xunzhuo self-assigned this Apr 9, 2023
@Xunzhuo Xunzhuo removed the help wanted Extra attention is needed label Apr 9, 2023
@arkodg
Copy link
Contributor

arkodg commented Apr 10, 2023

thanks for picking this one up @Xunzhuo !

@arkodg
Copy link
Contributor

arkodg commented Apr 10, 2023

sidenote - this might also require an EnvoyProxy API change to add a field to disable endpoint resolution / fall back to service VIP, in case the user prefers routing/load balancing via kube-proxy

@arkodg
Copy link
Contributor

arkodg commented Apr 27, 2023

moving this into the backlog for now, since this is not a must have for v0.5.0

@arkodg arkodg modified the milestones: 0.5.0-rc1, Backlog Apr 27, 2023
@github-actions github-actions bot added the stale label May 28, 2023
@Xunzhuo Xunzhuo added no stalebot and removed stale labels May 29, 2023
@envoyproxy envoyproxy deleted a comment from github-actions bot May 29, 2023
arkodg added a commit to arkodg/gateway that referenced this issue Jun 1, 2023
* Reconcile relavant EndpointSlices associated with a
Service that is referenced in a xRoute
* Add the EndpointSlices to the provider message

Relates to envoyproxy#1256

Signed-off-by: Arko Dasgupta <[email protected]>
arkodg added a commit to arkodg/gateway that referenced this issue Jun 1, 2023
* Use common `processRouteDestinations` functions
for all xRoute

* Precursor to envoyproxy#1256

Signed-off-by: Arko Dasgupta <[email protected]>
arkodg added a commit to arkodg/gateway that referenced this issue Jun 3, 2023
* Allows the user to configure a global load balancing strategy
for the envoy proxy data plane

```
apiVersion: config.gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  name: set-lb-strategy
spec:
  traffic:
    loadBalancer:
      strategy: LeastRequest
```
* Sets the default load balancing strategy to `LeastRequest` which
will internally set the `WeightedLeastReqquest` knob in Envoy

* Relates to envoyproxy#1256 allowing
the user to fall back to `ClusterIP` style loadbalancing

* Relates to envoyproxy#1105

Signed-off-by: Arko Dasgupta <[email protected]>
zirain pushed a commit that referenced this issue Jun 5, 2023
* Support EndpointSlice in Kubernetes Provider

* Reconcile relavant EndpointSlices associated with a
Service that is referenced in a xRoute
* Add the EndpointSlices to the provider message

Relates to #1256

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

* race

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

* test

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

---------

Signed-off-by: Arko Dasgupta <[email protected]>
arkodg added a commit that referenced this issue Jun 5, 2023
* Cleanup Gateway API Route Destination Logic

* Use common `processRouteDestinations` functions
for all xRoute

* Precursor to #1256

Signed-off-by: Arko Dasgupta <[email protected]>
arkodg added a commit to arkodg/gateway that referenced this issue Jun 6, 2023
@Xunzhuo
Copy link
Member

Xunzhuo commented Jun 6, 2023

Hey @arkodg, since you have started working on this issue, let me transfer this to you, thanks!

@Xunzhuo Xunzhuo removed their assignment Jun 6, 2023
@arkodg arkodg modified the milestones: Backlog, 0.6.0-rc1 Aug 11, 2023
arkodg added a commit to arkodg/gateway that referenced this issue Sep 19, 2023
arkodg added a commit to arkodg/gateway that referenced this issue Sep 26, 2023
arkodg added a commit that referenced this issue Sep 26, 2023
* EndpointSlice to IR Route Destinations

Relates to #1256

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

* assign backend weight to locality weight

add another level of indirection in RouteDestination
called DestinationSetting

Signed-off-by: Arko Dasgupta <[email protected]>
@arkodg arkodg modified the milestones: 0.6.0-rc1, Backlog Oct 18, 2023
@arkodg arkodg closed this as completed Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants