- 22, Oct 2024
- #1
Некоторые узлы в моих k8 становятся не готовыми по такой причине:
/var/lib/docker/containers/7a25173.../secrets/kubernetes.io/serviceaccount
и такие события, как
lsof | grep 7a25173
были созданы. Журналы Kubelet показывают, что служба докеров на этом узле перестает отвечать на запросы:
grep 7a25173 /proc/*/mounts
когда я запускаю команду типа Apr 14 23:42:03 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:42:03.981683639+08:00" level=error msg="Handler for DELETE /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 returned error: Unable to remove filesystem for 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244: remove /var/lib/docker/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/secrets/kubernetes.io/serviceaccount: device or resource busy"
Apr 14 23:43:04 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:43:04.028395839+08:00" level=error msg="Handler for POST /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/stop returned error: Container 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 is already stopped"
Apr 14 23:43:04 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:43:04.586632491+08:00" level=error msg="Handler for DELETE /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 returned error: Unable to remove filesystem for 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244: remove /var/lib/docker/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/secrets/kubernetes.io/serviceaccount: device or resource busy"
Apr 14 23:44:04 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:44:04.632661696+08:00" level=error msg="Handler for POST /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/stop returned error: Container 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 is already stopped"
Apr 14 23:44:05 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:44:05.196332354+08:00" level=error msg="Handler for DELETE /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 returned error: Unable to remove filesystem for 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244: remove /var/lib/docker/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/secrets/kubernetes.io/serviceaccount: device or resource busy"
Apr 14 23:45:05 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:45:05.243038518+08:00" level=error msg="Handler for POST /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/stop returned error: Container 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 is already stopped"
Apr 14 23:45:05 VM-107-170-centos dockerd-current[18822]: time="2022-04-14T23:45:05.801770728+08:00" level=error msg="Handler for DELETE /v1.26/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244 returned error: Unable to remove filesystem for 7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244: remove /var/lib/docker/containers/7a25173915c6cd33525164c598f2eb19220e18e0080dac706228461fcfe86244/secrets/kubernetes.io/serviceaccount: device or resource busy"
......
, there's no response. Some error logs from docker.service
говоря, что докер застрял в мертвой петле:
- Docker не удалось удалить каталог, связанный с контейнером, для «Устройство или ресурс занято»
- Docker попытался остановить этот контейнер, но контейнер уже остановлен.
- Docker попытался удалить каталог, связанный с контейнером, но не смог из-за «Устройство или ресурс занято»
- Docker попытался остановить этот контейнер, но контейнер уже остановлен.
- ......
docker ps
Я пытался найти использование этого каталога с помощью таких команд, как Apr 15 11:28:13 VM-111-129-centos kubelet[31862]: E0415 11:28:13.376516 31862 remote_runtime.go:394] "ExecSync cmd from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" containerID="2ed62cff85bbbd5a9883c468fe466539b46bfb3b2b55a0296266ee9df4506c5f" cmd=[grep ok /tmp/server.status]
Apr 15 11:28:13 VM-111-129-centos kubelet[31862]: E0415 11:28:13.460312 31862 remote_runtime.go:394] "ExecSync cmd from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" containerID="3a933afc5abf0e153f796c7601cc2476c52b8d40add51d76d88b38c32e517139" cmd=[grep ok /tmp/server.status]
Apr 15 11:28:13 VM-111-129-centos kubelet[31862]: E0415 11:28:13.536756 31862 remote_runtime.go:394] "ExecSync cmd from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" containerID="5d369008b9f4e026ae84a7364240393bf410da00b094cd36ef8c5a80189ef62e" cmd=[grep ok /tmp/server.status]
......
or Warning ContainerGCFailed 11m kubelet rpc error: code = Unknown desc = Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Warning ContainerGCFailed 88s (x9 over 44m) kubelet rpc error: code = DeadlineExceeded desc = context deadline exceeded"
но ничего не найдено. Каталог "PLEG is not healthy: pleg was last seen active XXXXX ago; threshold is 3m0s"
is not able to be removed manually for "Device or resource busy"
Это произошло с каждым узлом моего кластера, один за другим. Я понятия не имею, как найти причину.
#докер #кубернетес