k3s/pkg/kubelet
Kubernetes Submit Queue 3fdf6c3d14 Merge pull request #45896 from dashpole/disk_pressure_reclaim
Automatic merge from submit-queue

Delete all dead containers and sandboxes when under disk pressure.

This PR modifies the eviction manager to add dead container and sandbox garbage collection as a resource reclaim function for disk.  It also modifies the container GC logic to allow pods that are terminated, but not deleted to be removed.

It still does not delete containers that are less than the minGcAge.  This should prevent nodes from entering a permanently bad state if the entire disk is occupied by pods that are terminated (in the state failed, or succeeded), but not deleted.

There are two improvements we should consider making in the future:

- Track the disk space and inodes reclaimed by deleting containers.  We currently do not track this, and it prevents us from determining if deleting containers resolves disk pressure.  So we may still evict a pod even if we are able to free disk space by deleting dead containers.
- Once we can track disk space and inodes reclaimed, we should consider only deleting the containers we need to in order to relieve disk pressure.  This should help avoid a scenario where we try and delete a massive number of containers all at once, and overwhelm the runtime.

/assign @vishh 
cc @derekwaynecarr 

```release-note
Disk Pressure triggers the deletion of terminated containers on the node.
```
2017-06-03 23:43:46 -07:00
..
apis move labels to components which own the APIs 2017-05-31 10:32:06 -04:00
cadvisor Add predicates check for local storage request 2017-06-01 15:57:50 -07:00
certificate Rotate kubelet client certificate. 2017-06-01 09:29:42 -07:00
client autogenerated 2017-04-14 10:40:57 -07:00
cm Add predicates check for local storage request 2017-06-01 15:57:50 -07:00
config Merge pull request #46494 from xiangpengzhao/fix-pod-manifest 2017-06-03 12:32:42 -07:00
configmap Use TTL-based caching configmap manager in kubelet 2017-05-31 10:39:40 +02:00
container trigger aggressive container garbage collection when under disk pressure 2017-06-03 07:52:36 -07:00
custommetrics Merge pull request #44469 from siggy/siggy/custom-metrics-comment 2017-04-17 19:59:16 -07:00
dockershim Revert "kubelet/network: report but tolerate errors returned from GetNetNS()" 2017-05-31 17:16:32 -07:00
envvars kubelet/envvars: Adding brackets to IPv6 addresses 2017-04-30 19:15:01 +02:00
events fix regression in UX experience for double attach volume 2017-05-25 09:27:24 +08:00
eviction trigger aggressive container garbage collection when under disk pressure 2017-06-03 07:52:36 -07:00
gpu Update bazel BUID files 2017-05-05 11:48:08 -07:00
images Merge pull request #45014 from CaoShuFeng/unit_for_freed_image_size 2017-05-30 07:49:03 -07:00
kuberuntime Merge pull request #45896 from dashpole/disk_pressure_reclaim 2017-06-03 23:43:46 -07:00
leaky
lifecycle autogenerated 2017-04-14 10:40:57 -07:00
metrics Unregister some metrics 2017-05-17 18:31:56 +08:00
network Revert "kubelet/network: report but tolerate errors returned from GetNetNS()" 2017-05-31 17:16:32 -07:00
pleg Merge pull request #45496 from andyxning/fix_pleg_relist_time 2017-05-21 04:17:14 -07:00
pod Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
preemption Moved qos to api.helpers. 2017-05-20 07:17:57 -04:00
prober Merge pull request #46371 from sjenning/fix-liveness-probe-reset 2017-06-03 15:15:49 -07:00
qos Moved qos to api.helpers. 2017-05-20 07:17:57 -04:00
remote Merge pull request #45614 from yujuhong/container-metrics 2017-05-26 16:59:08 -07:00
rkt trigger aggressive container garbage collection when under disk pressure 2017-06-03 07:52:36 -07:00
rktshim Reorganize kubelet tree so apis can be independently versioned 2017-05-12 10:02:33 -07:00
secret Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
server Certificate rotation for kubelet server certs. 2017-05-29 12:28:01 -07:00
status Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
sysctl Remove various references of dockertools 2017-05-11 10:01:41 -07:00
types Keep annotation_key_constants consistent 2017-05-16 14:25:30 -07:00
util Merge pull request #46089 from karataliu/wincri1 2017-05-25 21:40:02 -07:00
volumemanager Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
BUILD Merge pull request #46627 from deads2k/api-12-labels 2017-06-02 23:37:38 -07:00
OWNERS
active_deadline.go Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
active_deadline_test.go Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
disk_manager.go
disk_manager_test.go
doc.go
kubelet.go trigger aggressive container garbage collection when under disk pressure 2017-06-03 07:52:36 -07:00
kubelet_cadvisor.go Add local storage (scratch space) allocatable support 2017-06-01 15:57:50 -07:00
kubelet_cadvisor_test.go
kubelet_getters.go
kubelet_getters_test.go
kubelet_network.go resolv.conf nameserver line has only one entry 2017-04-27 09:23:04 -07:00
kubelet_network_test.go Merge pull request #45036 from apilloud/fix_resolvconf 2017-06-01 11:41:58 -07:00
kubelet_node_status.go Merge pull request #46456 from jingxu97/May/allocatable 2017-06-03 00:24:29 -07:00
kubelet_node_status_test.go Add predicates check for local storage request 2017-06-01 15:57:50 -07:00
kubelet_pods.go Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
kubelet_pods_test.go write HostAliases to hosts file 2017-04-29 11:31:24 -07:00
kubelet_pods_windows_test.go
kubelet_resources.go move pkg/api/v1/ref.go and pkg/api/v1/resource.go to subpackages. move some functions in resource.go to pkg/api/v1/node and pkg/api/v1/pod 2017-04-17 11:38:11 -07:00
kubelet_resources_test.go
kubelet_test.go trigger aggressive container garbage collection when under disk pressure 2017-06-03 07:52:36 -07:00
kubelet_volumes.go fix comment error in function newVolumeMounterFromPlugins 2017-06-01 12:47:12 +08:00
kubelet_volumes_test.go Add missing Cleanup() calls in kubelet tests. 2017-05-25 13:19:56 -07:00
networks.go pass noopnetworkhost to dockershim 2017-05-03 16:32:01 -07:00
networks_test.go Bump kubelet/networks test coverage 2017-05-17 11:20:06 +02:00
oom_watcher.go
oom_watcher_test.go
pod_container_deletor.go
pod_container_deletor_test.go
pod_workers.go
pod_workers_test.go Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
reason_cache.go
reason_cache_test.go
runonce.go
runonce_test.go trigger aggressive container garbage collection when under disk pressure 2017-06-03 07:52:36 -07:00
runtime.go
util.go
volume_host.go Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00