diff options
| author | Kubernetes Submit Queue <k8s-merge-robot@users.noreply.github.com> | 2016-08-08 15:07:21 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-08 15:07:21 -0700 |
| commit | fa0502f873eabf4f783726168a1e6609995d0dcd (patch) | |
| tree | a3f94c92214b7deb2774bcb4028f29dad4ef01a2 | |
| parent | 8a85b8ccf2b4d9507d797628f3adaedfef30786e (diff) | |
| parent | 16a00147a3c5ab054c21005693c8b61f17c260e5 (diff) | |
Merge pull request #28501 from derekwaynecarr/inodes_percentage
Automatic merge from submit-queue
Allow expressing inodes in percentages for eviction
Per discussion here:
https://github.com/kubernetes/kubernetes/pull/28055#issuecomment-230078770
The amount of inodes per disk can vary, and our operators would prefer to express eviction in terms of percentage available. So independent of a disk having 3.2M or 12M of total inodes, its more convenient to just express eviction as saying if available inodes falls below 10 or 5 percent of total capacity then trigger an action.
/cc @vishh @ronnielai @kubernetes/rh-cluster-infra @twiest @kubernetes/sig-node
| -rw-r--r-- | kubelet-eviction.md | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/kubelet-eviction.md b/kubelet-eviction.md index 427f6d7e..eacc7685 100644 --- a/kubelet-eviction.md +++ b/kubelet-eviction.md @@ -75,9 +75,12 @@ 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 | +| nodefs.inodesFree | nodefs.inodesFree := node.stats.fs.inodesFree | | imagefs.available | imagefs.available := node.stats.runtime.imagefs.available | -| imagefs.inodesFree | imagefs.inodesFree := node.runtime.imageFs.inodesFree | +| imagefs.inodesFree | imagefs.inodesFree := node.stats.runtime.imagefs.inodesFree | + +Each of the above signals support either a literal or percentage based value. The percentage based value +is calculated relative to the total capacity associated with each signal. `kubelet` supports only two filesystem partitions. @@ -93,17 +96,25 @@ The `kubelet` will support the ability to specify eviction thresholds. An eviction threshold is of the following form: -`<eviction-signal><operator><quantity>` +`<eviction-signal><operator><quantity | int%>` * valid `eviction-signal` tokens as defined above. * valid `operator` tokens are `<` * valid `quantity` tokens must match the quantity representation used by Kubernetes +* an eviction threshold can be expressed as a percentage if ends with `%` token. If threshold criteria are met, the `kubelet` will take pro-active action to attempt to reclaim the starved compute resource associated with the eviction signal. The `kubelet` will support soft and hard eviction thresholds. +For example, if a node has `10Gi` of memory, and the desire is to induce eviction +if available memory falls below `1Gi`, an eviction signal can be specified as either +of the following (but not both). + +* `memory.available<10%` +* `memory.available<1Gi` + ### Soft Eviction Thresholds A soft eviction threshold pairs an eviction threshold with a required |
