summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authork8s-merge-robot <k8s.production.user@gmail.com>2016-07-01 18:04:12 -0700
committerGitHub <noreply@github.com>2016-07-01 18:04:12 -0700
commit79be140c259e6fd8ac72a2a8f5e415e792284d7a (patch)
tree8427ab95f0809b6d74a1a46b0c04140e009b09b5
parentc5309c69482104ca035e54ad48ac158d787a095d (diff)
parent32b68959e809fb431f38c013c13a7e6e72b4aa30 (diff)
Merge pull request #28055 from ronnielai/doc
Automatic merge from submit-queue Adding inode availability in eviction policy Updates the proposal to include inodes as an eviction parameter.
-rw-r--r--kubelet-eviction.md16
1 files changed, 11 insertions, 5 deletions
diff --git a/kubelet-eviction.md b/kubelet-eviction.md
index 4168d1a2..17542af0 100644
--- a/kubelet-eviction.md
+++ b/kubelet-eviction.md
@@ -75,7 +75,9 @@ The `kubelet` will support the ability to trigger eviction decisions on the foll
|------------------|---------------------------------------------------------------------------------|
| memory.available | memory.available := node.status.capacity[memory] - node.stats.memory.workingSet |
| nodefs.available | nodefs.available := node.stats.fs.available |
+| nodefs.inodesFree | nodefs.inodesFree := node.fs.inodesFree |
| imagefs.available | imagefs.available := node.stats.runtime.imagefs.available |
+| imagefs.inodesFree | imagefs.inodesFree := node.runtime.imageFs.inodesFree |
`kubelet` supports only two filesystem partitions.
@@ -166,7 +168,7 @@ The following node conditions are defined that correspond to the specified evict
| Node Condition | Eviction Signal | Description |
|----------------|------------------|------------------------------------------------------------------|
| MemoryPressure | memory.available | Available memory on the node has satisfied an eviction threshold |
-| DiskPressure | nodefs.available (or) imagefs.available | Available disk space on either the node's root filesytem or image filesystem has satisfied an eviction threshold |
+| DiskPressure | nodefs.available, nodefs.inodesFree, imagefs.available, or imagefs.inodesFree | Available disk space and inodes on either the node's root filesytem or image filesystem has satisfied an eviction threshold |
The `kubelet` will continue to report node status updates at the frequency specified by
`--node-status-update-frequency` which defaults to `10s`.
@@ -217,20 +219,24 @@ reclaim the resource that has met its eviction threshold.
Let's assume the operator started the `kubelet` with the following:
```
---eviction-hard="nodefs.available<1Gi,imagefs.available<10Gi"
---eviction-soft="nodefs.available<1.5Gi,imagefs.available<20Gi"
+--eviction-hard="nodefs.available<1Gi,nodefs.inodesFree<1,imagefs.available<10Gi,imagefs.inodesFree<10"
+--eviction-soft="nodefs.available<1.5Gi,nodefs.inodesFree<10,imagefs.available<20Gi,imagefs.inodesFree<100"
--eviction-soft-grace-period="nodefs.available=1m,imagefs.available=2m"
```
The `kubelet` will run a sync loop that looks at the available disk
on the node's supported partitions as reported from `cAdvisor`.
-If available disk space on the node's primary filesystem is observed to drop below 1Gi,
+If available disk space on the node's primary filesystem is observed to drop below 1Gi
+or the free inodes on the node's primary filesystem is less than 1,
the `kubelet` will immediately initiate eviction.
-If available disk space on the node's image filesystem is observed to drop below 10Gi,
+If available disk space on the node's image filesystem is observed to drop below 10Gi
+or the free inodes on the node's primary image filesystem is less than 10,
the `kubelet` will immediately initiate eviction.
If available disk space on the node's primary filesystem is observed as falling below `1.5Gi`,
+or if the free inodes on the node's primary filesystem is less than 10,
or if available disk space on the node's image filesystem is observed as falling below `20Gi`,
+or if the free inodes on the node's image filesystem is less than 100,
it will record when that signal was observed internally in a cache. If at the next
sync, that criterion was no longer satisfied, the cache is cleared for that
signal. If that signal is observed as being satisfied for longer than the