-
Notifications
You must be signed in to change notification settings - Fork 39.6k
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
Consider caching the zone information for a datastore in vSphere #73955
Comments
/sig vmware |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
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. |
What happened:
When creating a PV with the vSphere Cloud Provider (VCP), the volume plugin invokes vCenter Tag APIs to figure out the zone information for the newly created Volume. This computation happens each time a Volume is created on a datastore. This is a moderately heavy computation with multiple Tag API calls to the vCenter. This is a change proposed in PR 72687 and PR 72731 that fixes the zone usage of a Volume in vSphere.
What you expected to happen:
Since the zone information does not change often, it would be good for VCP to cache this. This cache needs to be built such that it can be initialized and used by kube-controller as well as the api-server during admission control.
However, note that a change in the Tags applied in vCenter, or a change in vCenter topology, could invalidate this cache. This could demand a restart of these binaries to force rebuild this cache. So this change needs to be evaluated carefully.
Also, need to evaluate how much of a performance damage do the above PRs cause while creating a Volume. This issue should be based on whether the regression hurts, and whether there is a meaningful way to cache this information without stale entry invalidation.
How to reproduce it (as minimally and precisely as possible):
Create a PV with VCP configured in a k8s cluster. Note from the logs that both the kube-controller as well as api-server make several calls to VC in order to figure out the zone information for a datastore.
Environment:
kubectl version
): anyThe text was updated successfully, but these errors were encountered: