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

Resolve Service to Endpoints IPs #35

Closed
danehans opened this issue Apr 28, 2022 · 14 comments
Closed

Resolve Service to Endpoints IPs #35

danehans opened this issue Apr 28, 2022 · 14 comments
Labels
area/service-resolver documentation Improvements or additions to documentation help wanted Extra attention is needed kind/enhancement New feature or request
Milestone

Comments

@danehans
Copy link
Contributor

#16 specifies the need for a Service Resolver (SR) component that resolves IR services into platform-specific endpoints. The SR details should be captured in this issue or a linked doc.

@danehans danehans changed the title [SR] Design Service Resolver [SR] Initial Service Resolver Design and Implementation Apr 29, 2022
@danehans danehans added documentation Improvements or additions to documentation kind/enhancement New feature or request help wanted Extra attention is needed labels Apr 29, 2022
@danehans danehans changed the title [SR] Initial Service Resolver Design and Implementation Initial Service Resolver Design and Implementation May 11, 2022
@danehans
Copy link
Contributor Author

The service resolver is currently the responsibility of a provider. I'm moving this issue to the backlog for now.

@danehans danehans modified the milestones: 0.2.0-rc1, Backlog Jul 12, 2022
@arkodg arkodg modified the milestones: Backlog, 0.3.0 Sep 29, 2022
@danehans
Copy link
Contributor Author

@arkodg can this issue be closed?

@arkodg
Copy link
Contributor

arkodg commented Sep 30, 2022

we dont need a full fledged service resolver design & implementation, but a reconciler within provider is needed to aggregate service endpoints. should be doable for 0.3.0

@arkodg arkodg modified the milestones: 0.3.0, 0.3.0-rc.1 Oct 3, 2022
@arkodg arkodg changed the title Initial Service Resolver Design and Implementation Resolve Service to Endpoints IPs Nov 1, 2022
@arkodg arkodg added the priority/low Label used to express the "low" priority level label Nov 3, 2022
@danehans
Copy link
Contributor Author

I suggest holding this issue until #702 is merged.

@danehans danehans modified the milestones: 0.3.0-rc.1, Backlog Jan 12, 2023
@danehans danehans removed the priority/low Label used to express the "low" priority level label Jan 12, 2023
@arkodg
Copy link
Contributor

arkodg commented Jan 17, 2023

@zhshw can you help with this issue ?

@zhshw
Copy link

zhshw commented Jan 18, 2023

@arkodg I'm working on it...

@zirain zirain removed the help wanted Extra attention is needed label Jan 18, 2023
@arkodg
Copy link
Contributor

arkodg commented Jan 18, 2023

thanks @zhshw .
Outlining the pieces needed to implement this issue

@zhshw
Copy link

zhshw commented Jan 19, 2023

Thanks @arkodg reply.

The endpoint is updated frequently. It should be an independent workqueue.
Endpoint-slices reduce data transmission and optimize network throughput, But there may be some problems

endpoint-slices

  • Kubernetes v1.21 [stable]
  • Kubernetes v1.26 [GA]

Before Kubernetes v1.26
Endpoint-slice's terminating condition was implemented on 1.21, and the proxyterminating problem 1.26 was fixed

Kubernetes >= v1.21
Use endpoint-slices stable API AND pod.API
informer [endpoint-slice v1,pod]

Kubernetes General version
Use endpoint API and pod API, but the network throughput has not been optimized. There is no problem with small-scale clusters, It is necessary to get the status of pod at the same time to determine whether to enter Terminating
informer [endpoint, pod]

Istio compatibility
For maximum compatibility, Istio support watches the pod, endpoint, endpoint-slice [v1, v1beta1], Istio allows users to choose the endpoint configuration,
informer [endpoint, pod] OR informer [endpoint-slice v1, pod] OR informer [endpoint-slice v1beta1, pod]

Improvement Goal
Design envoy-endpoint, It can support K8S versions in recent years
Update endpoints by watching for pod update. Minimum network data transmission, Medium coding cost

Node NotReady
Pod ready status will not change within 5 minutes by default, must configure healthcheck to eliminate abnormal endpoints faster

Finally, Things don't seem so simple... [Performance, Compatibility, Coding cost]

@danehans
Copy link
Contributor Author

Since we will need an abstraction to supports multiple implementations, WDYT about starting off with endpoints instead of endpoint slices and iterating? We could introduce endpointslices thereafter.

@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 18, 2023
@danehans danehans removed the stale label Feb 20, 2023
@danehans
Copy link
Contributor Author

@zhshw I just cleared the stale status for this issue. Are you still planning to work on this?

@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 Mar 22, 2023
@arkodg
Copy link
Contributor

arkodg commented Mar 22, 2023

unassigning @zhshw for now, will reassign again if interested, adding the help-wanted tag for this important feature

@arkodg
Copy link
Contributor

arkodg commented Apr 10, 2023

closing in favor of #1256

@arkodg arkodg closed this as completed Apr 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/service-resolver documentation Improvements or additions to documentation help wanted Extra attention is needed kind/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants