-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Size memory backed volumes #1968
Size memory backed volumes #1968
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: derekwaynecarr The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/assign @dashpole @sjenning @dchen1107 |
520468d
to
73cb638
Compare
The verify job failing is related to a sig-scheduling kep and not this kep. |
|
||
## Proposal | ||
|
||
Define a new feature gate: `SizeMemoryBackedVolumes`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this feature flag is on top of another feature flag LocalStorageCapacityIsolation
? Would it worth mentioning this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LocalStorageCapacityIsolation did not impact the size of memory backed volume, so I kept it separate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
definitely. The only thing I was trying to say is that emptyDir.sizeLimit
wouldn't work without the LocalStorageCapacityIsolation
enabled.
73cb638
to
a5a181c
Compare
@derekwaynecarr does this KEP change the meaning of the definition of sizeLimit here?
I feel the definition above means there is at least that much memory as mentioned in |
## Design Details | ||
|
||
The design for this implementation makes the existing `emptyDir.sizeLimit` | ||
not just used during eviction heuristics, but for sizing of the volume. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be precise, general memory or disk eviction don't take emptyDir.sizeLimit into account. But as part of local ephemeral storage capacity isolation, we evict pods where the usage of an empty-dir exceeds its sizeLimit
@dims this KEP actually implements the behavior described in types.go where in the past, it just took 50% of node memory. Usage was restricted based on memory accounting in practice. In practical terms, a pod that requested 10Gi of memory that was scheduled to a Linux host with 16Gi of memory would have its empty dir set to 8Gi. This made it that pods could not actually use what was requested! |
got it! thanks @derekwaynecarr |
/lgtm cc @johnbelamaric, who is listed as the PRR reviewer. |
a5a181c
to
c6850f8
Compare
/hold cancel rebased to pick up fix to verify, ptal @dashpole |
/lgtm Thanks a bunch Derek |
cross link to k/k code for completeness: kubernetes/kubernetes#94444 |
Improve portability of pods that consume memory backed volumes by decoupling the size of the volume from the node that runs the pod.