k3s/pkg/kubelet/eviction
Kubernetes Submit Queue 270ed995f4
Merge pull request #59841 from dashpole/metrics_after_reclaim
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
2018-02-16 16:31:33 -08:00
..
api Updated PID pressure node condition. 2018-01-14 18:26:00 +08:00
BUILD Fix scheduler refs in BUILD files. 2018-01-05 15:05:01 -08:00
OWNERS
doc.go
eviction_manager.go Merge pull request #59841 from dashpole/metrics_after_reclaim 2018-02-16 16:31:33 -08:00
eviction_manager_test.go reevaluate eviction thresholds after reclaim functions 2018-02-16 08:35:24 -08:00
helpers.go Merge pull request #59841 from dashpole/metrics_after_reclaim 2018-02-16 16:31:33 -08:00
helpers_test.go Ignore 0% and 100% eviction thresholds 2018-02-12 14:13:00 -08:00
threshold_notifier_linux.go Use Eventfd() from x/sys/unix 2017-07-21 12:14:50 +02:00
threshold_notifier_unsupported.go Fix threshold notifier build tags 2017-08-18 15:54:31 -07:00
types.go Merge pull request #59841 from dashpole/metrics_after_reclaim 2018-02-16 16:31:33 -08:00