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
apiserver endpointslice reconciler should be smarter about what slices it owns #101070
Comments
@danwinship: This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
related kubernetes/enhancements#2622 |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
/remove-lifecycle rotten |
Currently the apiservers create an
Endpoints
object and anEndpointSlice
object named "kubernetes
", and ensure that those objects remain in sync with the actual set of running apiservers.In particular, it only ever looks at the
EndpointSlice
named "kubernetes
", and not any otherEndpointSlice
s. This could lead to problems when trying introduce dual-stack support for the apiserver:kubernetes
" service is single-stack, and advertises only IPv4 endpoints inEndpoints
andEndpointSlice
.kubernetes
"Endpoints
andEndpointSlice
kubernetes
"Endpoints
andEndpointSlice
, and creates a new "kubernetes-ipv6
"EndpointSlice
(or something) containing its IPv6 address.kubernetes
"Endpoints
andEndpointSlice
, and so does nothing elsekubernetes-ipv6
"EndpointSlice
object which no one owns, pointing to an IPv6 address which may or may not actually be usable (and which will definitely not remain usable forever even if it is usable now).It seems like the apiserver EndpointSlice reconciling code ought to be smarter, and consider itself the owner of all
EndpointSlice
s that have anOwnerReference
pointing to the apiserverService
. (Though note that it's not currently settingOwnerReference
.) Then in step 6 above, the 1.21 apiserver would delete the stray "kubernetes-ipv6
"EndpointSlice
that had been created by its 1.22 self. (This approach would cause flapping during upgrade, where the old apiservers would keep deleting the IPv6 EndpointSlice created by the new apiservers, but that would only be a transient problem while the upgrade was in progress, and would eventually resolve (correctly) one way or the other once the cluster stabilizes at a single version.)/cc @robscott
/sig network
/area apiserver
The text was updated successfully, but these errors were encountered: