• Kubernetes Submit Queue's avatar
    Merge pull request #59841 from dashpole/metrics_after_reclaim · 270ed995
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 59683, 59964, 59841, 59936, 59686). 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>.
    
    Reevaluate eviction thresholds after reclaim functions
    
    **What this PR does / why we need it**:
    When the node comes under `DiskPressure` due to inodes or disk space, the eviction manager runs garbage collection functions to clean up dead containers and unused images.
    Currently, we use the strategy of trying to measure the disk space and inodes freed by garbage collection.  However, as #46789 and #56573 point out, there are gaps in the implementation that can cause extra evictions even when they are not required.  Furthermore, for nodes which frequently cycle through images, it results in a large number of evictions, as running out of inodes always causes an eviction.
    
    This PR changes this strategy to call the garbage collection functions and ignore the results.  Then, it triggers another collection of node-level metrics, and sees if the node is still under DiskPressure.
    This way, we can simply observe the decrease in disk or inode usage, rather than trying to measure how much is freed.
    
    **Which issue(s) this PR fixes**:
    Fixes #46789
    Fixes #56573
    Related PR #56575
    
    **Special notes for your reviewer**:
    This will look cleaner after #57802  removes arguments from [makeSignalObservations](https://github.com/kubernetes/kubernetes/pull/57802/files#diff-9e5246d8c78d50ce4ba440f98663f3e9R719).
    
    **Release note**:
    ```release-note
    NONE
    ```
    
    /sig node
    /kind bug
    /priority important-soon
    cc @kubernetes/sig-node-pr-reviews
    270ed995
Name
Last commit
Last update
..
conformance Loading commit data...
e2e Loading commit data...
e2e_node Loading commit data...
fixtures Loading commit data...
images Loading commit data...
integration Loading commit data...
kubemark Loading commit data...
list Loading commit data...
soak Loading commit data...
utils Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
test_owners.csv Loading commit data...
test_owners.json Loading commit data...