-
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
Update hugepages KEP for 1.18 rel #1540
Conversation
/cc @derekwaynecarr @odinuge @bart0sh @kad |
this all looks good to me and maps what was presented and discussed in sig-node over past couple months. appreciate the update. /approve /hold pending exception approval from sig-release. |
Update Implementation History for 1.18 rel to meet the release checklist. The checklist requires that "Implementation History" section is up-to-date for milestone Signed-off-by: Byonggon Chun <[email protected]>
Signed-off-by: Byonggon Chun <[email protected]>
Signed-off-by: Byonggon Chun <[email protected]>
Signed-off-by: Byonggon Chun <[email protected]>
86bb2f9
to
7333a5f
Compare
@derekwaynecarr |
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.
Hi @bg-chun
thank you for the updates!
|
||
- A test plan will consist of the following tests | ||
- Unit tests | ||
- Each unit test for enhancement will be implemented. |
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.
Do you already have unit tests in place or will these need to be built ?
If you do have unit tests in place can you give us an idea of what they test?
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.
We already have unit tests.
Here are major PRs for changes and all include unittests.
It's hard to explain how unittests works just right now.
(I also need a time to take a look, I reviewed unittest of the first PR alost months ago...)
- Implement support for setting hugepages limit on container cgroup sandbox. kubernetes#84154 //merged
- Add support for pre-allocated hugepages with 2+ sizes kubernetes#82820 //merged
- Implement support for multiple sizes huge pages kubernetes#84051 //derek will merge after got approval of this PR from sig-rel
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.
-
Container Isolation of hugepages
A unit test validates size(in a string) whether it has been transrated to right format e.g., 1024(pod spec) ->1KB(CRI)
Also, another unit test validates transformation results from v1 resource list to the list of CRI data structures. -
Multiple sizes of hugepage support
A unit test checks node has the right amount of hugepage resources for each hugepage size as given.
Other unit test requests multiple sizes of hugeapges for a container, then checks enabled number of hugepages sizes on a container.
Also, another unit test validates whether requested mediumHugePages-<hugepagesize>
has the right format.
- There is a test suit for huge pages in e2e test, it will be extended to validate enhancements. | ||
- here: https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/hugepages_test.go |
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.
How will it be extended?
How much work do you think will have to be done to get those e2e test to validate the changes in this kep?
Are there any open PRs?
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.
My team member opened PR to update e2etest only for container isolation of hugepages
.
kubernetes/kubernetes#87118
(In the PR, we added a new test case on hugepages test suit.)
So, I think another PR should be opened for supporting multiple size of hugepages
by these guys(@bart0sh @odinuge)
That(need for another PR) is the reason why I added e2etest ont the future plan:
### Version 1.19[TBD]
Extending of huge pages test suit of E2E tests and cri-tools for enhancements after GA.
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.
kubernetes/kubernetes#87118
In the e2e test, a new test case sets a hugepage limit before creating a container, and then when container created, it checks container has the limit as given.
(test case takes given hugepages limit numbers from CRI runtime logs by using regexp. It is the same mechanism as to how CPU Manager e2e test works.)
- Test case will be added to cri-tools to be used in CRI runtime' test(CI). | ||
- here: https://github.com/kubernetes-sigs/cri-tools |
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.
How much work will this be?
How much do you think needs to be built to test this kep?
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 works will be done in the almost same manner of extending e2e-node testsuit of hugepages.
In the cri-tools, It already has testsuit for hugepages.
So, I will add additional test cases on the test suite for both of enhancements.
The mechanism will be:
- build container cgroup configuration with hugepages config.
(Now hugepages config is set on only pod config with only one size of hugepages) - send send container cgroup configuration to CRI runtimes
- get container creation result from CRI runtime.
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.
I think it can be done in 1.19
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.
Just for more detail: containerd project uses cri-tools in it's CI.
Exception was granted! /hold cancel |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bg-chun, 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 |
Performance-Tuning enhancement proposal.
Update hugepages KEP to meet release checklist.
In the checklist, there are :
Full version of checklist can be found here:
https://github.com/kubernetes/enhancements/blob/master/keps/YYYYMMDD-kep-template.md#release-signoff-checklist