k3s/pkg/kubelet
k8s-merge-robot d93f80c86b Merge pull request #26677 from Random-Liu/add-image-pull-timeout
Automatic merge from submit-queue

Add timeout for image pulling

Fix #26300.

With this PR, if image pulling makes no progress for *1 minute*, the operation will be cancelled. Docker reports progress for every 512kB block (See [here](3d13fddd2b/pkg/progress/progressreader.go (L32))), *512kB/min* means the throughput is *<= 8.5kB/s*, which should be kind of abnormal?

It's a little hard to write unit test for this, so I just manually tested it. If I set the `defaultImagePullingStuckTimeout` to 0s, and `defaultImagePullingProgressReportInterval` to 1s, image pulling will be cancelled.
```
E0601 18:48:29.026003   46185 kube_docker_client.go:274] Cancel pulling image "nginx:latest" because of no progress for 0, latest progress: "89732b811e7f: Pulling fs layer "
E0601 18:48:29.026308   46185 manager.go:2110] container start failed: ErrImagePull: net/http: request canceled
```

/cc @kubernetes/sig-node 
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-03 04:02:20 -07:00
..
api/v1alpha1/stats Track image storage usage for docker containers 2016-04-25 16:00:34 -07:00
cadvisor Merge pull request #24771 from timstclair/event-store 2016-05-27 15:56:13 -07:00
client Make name validators return string slices 2016-05-18 00:48:01 -07:00
cm Revert "Fix system container detection in kubelet on systemd" 2016-05-28 16:11:53 +02:00
config Clean-up sources ready tracking 2016-05-06 12:11:29 -04:00
container Merge pull request #26029 from luxas/mkdir_all 2016-05-27 11:40:01 -07:00
custommetrics Spelling fixes inspired by github.com/client9/misspell 2016-02-18 06:58:05 +07:00
dockertools Add timeout for image pulling 2016-06-02 10:49:17 -07:00
envvars Fix the rest of the code 2016-04-29 17:12:10 -04:00
eviction kubelet support for max grace period during soft eviction 2016-05-20 11:30:08 -04:00
leaky
lifecycle Expose errors from libecycle hooks as events for the pod. 2016-05-24 11:12:53 -07:00
metrics 1) Add docker operation timeout metrics. 2016-05-06 10:53:13 -07:00
network Merge pull request #26398 from euank/various-kubenet-fixes 2016-05-29 04:04:22 -07:00
pleg Kill our atomic pkg, now that 1.6 is req'd 2016-05-08 20:30:37 -07:00
pod Delete pod with uid as precondition. 2016-05-05 14:34:49 -07:00
prober Add init container loading to the kubelet 2016-05-17 00:29:53 -04:00
qos Show resources in pod descriptions by sorted names. 2016-05-25 23:51:37 +02:00
rkt Merge pull request #25851 from euank/fixJournaldUsage 2016-06-02 15:53:39 -07:00
server Merge pull request #26253 from xiangpengzhao/fix_assertnotnil 2016-05-29 14:13:00 -07:00
status Add init container loading to the kubelet 2016-05-17 00:29:53 -04:00
types move common lables used outside of containr runtime out of dockertools 2016-05-25 23:10:19 -07:00
util Merge pull request #24921 from feiskyer/merge-exec 2016-05-15 02:58:15 -07:00
OWNERS Move blunderbuss assignees into tree 2016-03-02 20:46:32 -05:00
container_bridge.go Improve go report card by fixing typos in comments 2016-03-04 18:30:59 -08:00
disk_manager.go kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
disk_manager_test.go kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
doc.go
flannel_helper.go Turn flannel off by default 2015-11-25 09:43:48 +01:00
image_manager.go kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
image_manager_test.go kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
kubelet.go Attach/Detach Controller Kubelet Changes 2016-06-02 16:47:11 -07:00
kubelet_cadvisor.go kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
kubelet_cadvisor_test.go Reduce kubelet LOC: extract cadvisor 2016-05-06 00:26:48 -04:00
kubelet_getters.go Reduce kubelet LOC: extract getters 2016-05-04 02:25:22 -04:00
kubelet_getters_test.go Reduce kubelet LOC: extract getters 2016-05-04 02:25:22 -04:00
kubelet_test.go Detangle Attach/Detach from GCE PD 2016-05-22 08:28:29 -04:00
networks.go rename release_1_2 to internalclientset 2016-02-05 14:02:28 -08:00
oom_watcher.go Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
oom_watcher_test.go Move test-only files to test-only packages 2016-03-01 09:11:32 -08:00
pod_workers.go Add killPodNow to kubelet 2016-05-12 19:17:08 -04:00
pod_workers_test.go Add killPodNow to kubelet 2016-05-12 19:17:08 -04:00
reason_cache.go Add reason cache 2016-01-30 00:25:50 -08:00
reason_cache_test.go Add unit test for reason cache 2016-01-30 00:25:50 -08:00
root_context_linux.go Bump cadvisor to fix interface stats bugs & improve performance 2015-12-21 17:07:21 +00:00
root_context_unsupported.go
runonce.go kubelet: Use MkdirAll instead of Mkdir 2016-05-22 00:23:18 +03:00
runonce_test.go kubelet/cadvisor: Refactor cadvisor disk stat/usage interfaces 2016-05-19 11:13:47 -07:00
runtime.go add NetworkStatus in NetworkPlugin interface for kubelet to consume 2016-05-04 13:46:31 -07:00
util.go Add init container loading to the kubelet 2016-05-17 00:29:53 -04:00
volume_manager.go Attach/Detach Controller Kubelet Changes 2016-06-02 16:47:11 -07:00
volumes.go Attach/Detach Controller Kubelet Changes 2016-06-02 16:47:11 -07:00