• Kubernetes Submit Queue's avatar
    Merge pull request #57802 from dashpole/allocatable_monitoring · 236fa894
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.
    
    Monitor the /kubepods cgroup for allocatable metrics
    
    **What this PR does / why we need it**:
    The current implementation of allocatable memory evictions sums the usage of pods in order to compute the total usage by user processes.
    This PR changes this to instead monitor the `/kubepods` cgroup, which contains all pods, and use this value directly.  This is more accurate than summing pod usage, as it is measured at a single point in time.
    This also collects metrics from this cgroup on-demand.
    This PR is a precursor to memcg notifications on the `/kubepods` cgroup.
    This removes the dependency the eviction manager has on the container manager, and adds a dependency for the summary collector on the container manager (to get Cgroup Root)
    This also changes the way that the allocatable memory eviction signal and threshold are added to make them in-line with the memory eviction signal to address #53902
    
    **Which issue(s) this PR fixes**:
    Fixes #55638
    Fixes #53902
    
    **Special notes for your reviewer**:
    I have tested this, and can confirm that it works when CgroupsPerQos is set to false.  In this case, it returns node metrics, as it is monitoring the `/` cgroup, rather than the `/kubepods` cgroup (which doesn't exist).
    
    **Release note**:
    ```release-note
    Expose total usage of pods through the "pods" SystemContainer in the Kubelet Summary API
    ```
    cc @sjenning @derekwaynecarr @vishh @kubernetes/sig-node-pr-reviews
    236fa894
Name
Last commit
Last update
.github Loading commit data...
Godeps Loading commit data...
api Loading commit data...
build Loading commit data...
cluster Loading commit data...
cmd Loading commit data...
docs Loading commit data...
examples Loading commit data...
hack Loading commit data...
logo Loading commit data...
pkg Loading commit data...
plugin Loading commit data...
staging Loading commit data...
test Loading commit data...
third_party Loading commit data...
translations Loading commit data...
vendor Loading commit data...
.bazelrc Loading commit data...
.generated_files Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.kazelcfg.json Loading commit data...
BUILD.bazel Loading commit data...
CHANGELOG-1.10.md Loading commit data...
CHANGELOG-1.2.md Loading commit data...
CHANGELOG-1.3.md Loading commit data...
CHANGELOG-1.4.md Loading commit data...
CHANGELOG-1.5.md Loading commit data...
CHANGELOG-1.6.md Loading commit data...
CHANGELOG-1.7.md Loading commit data...
CHANGELOG-1.8.md Loading commit data...
CHANGELOG-1.9.md Loading commit data...
CHANGELOG.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
Makefile.generated_files Loading commit data...
OWNERS Loading commit data...
OWNERS_ALIASES Loading commit data...
README.md Loading commit data...
SUPPORT.md Loading commit data...
WORKSPACE Loading commit data...
code-of-conduct.md Loading commit data...
labels.yaml Loading commit data...