Пожалуйста, используйте этот шаблон при сообщении об ошибке и предоставьте как можно больше информации. Невыполнение этого может привести к тому, что ваша ошибка не будет исправлена своевременно. Благодаря!
Что произошло : в последнее время я наблюдал ряд выселений, которые, по-видимому, были вызваны давлением на диск:
$$$ kubectl get pod kumo-go-api-d46f56779-jl6s2 --namespace=kumo-main -o yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: 2018-12-06T10:05:25Z
generateName: kumo-go-api-d46f56779-
labels:
io.kompose.service: kumo-go-api
pod-template-hash: "802912335"
name: kumo-go-api-d46f56779-jl6s2
namespace: kumo-main
ownerReferences:
- apiVersion: extensions/v1beta1
blockOwnerDeletion: true
controller: true
kind: ReplicaSet
name: kumo-go-api-d46f56779
uid: c0a9355e-f780-11e8-b336-42010aa80057
resourceVersion: "11617978"
selfLink: /api/v1/namespaces/kumo-main/pods/kumo-go-api-d46f56779-jl6s2
uid: 7337e854-f93e-11e8-b336-42010aa80057
spec:
containers:
- env:
- redacted...
image: gcr.io/<redacted>/kumo-go-api<strong i="8">@sha256</strong>:c6a94fc1ffeb09ea6d967f9ab14b9a26304fa4d71c5798acbfba5e98125b81da
imagePullPolicy: Always
name: kumo-go-api
ports:
- containerPort: 5000
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-t6jkx
readOnly: true
dnsPolicy: ClusterFirst
nodeName: gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: default-token-t6jkx
secret:
defaultMode: 420
secretName: default-token-t6jkx
status:
message: 'The node was low on resource: nodefs.'
phase: Failed
reason: Evicted
startTime: 2018-12-06T10:05:25Z
Взглянув на kubectl get events
, я вижу эти предупреждения:
$$$ kubectl get events
LAST SEEN FIRST SEEN COUNT NAME KIND SUBOBJECT TYPE REASON SOURCE MESSAGE
2m 13h 152 gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s.156e07f40b90ed91 Node Warning ImageGCFailed kubelet, gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s (combined from similar events): failed to garbage collect required amount of images. Wanted to free 473948979 bytes, but freed 0 bytes
37m 37m 1 gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s.156e3127ebc715c3 Node Warning ImageGCFailed kubelet, gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s failed to garbage collect required amount of images. Wanted to free 473674547 bytes, but freed 0 bytes
Копаем немного глубже:
$$$ kubectl get event gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s.156e07f40b90ed91 -o yaml
apiVersion: v1
count: 153
eventTime: null
firstTimestamp: 2018-12-07T11:01:06Z
involvedObject:
kind: Node
name: gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s
uid: gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s
kind: Event
lastTimestamp: 2018-12-08T00:16:09Z
message: '(combined from similar events): failed to garbage collect required amount
of images. Wanted to free 474006323 bytes, but freed 0 bytes'
metadata:
creationTimestamp: 2018-12-07T11:01:07Z
name: gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s.156e07f40b90ed91
namespace: default
resourceVersion: "381976"
selfLink: /api/v1/namespaces/default/events/gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s.156e07f40b90ed91
uid: 65916e4b-fa0f-11e8-ae9a-42010aa80058
reason: ImageGCFailed
reportingComponent: ""
reportingInstance: ""
source:
component: kubelet
host: gke-kumo-customers-n1-standard-1-pree-0cd7990c-jg9s
type: Warning
На самом деле здесь очень мало. В этом сообщении ничего не говорится о том, почему был запущен ImageGC или почему ему не удалось освободить больше места.
Что вы ожидали : сборщик мусора изображений работает правильно или, по крайней мере, не может планировать поды на узлах, на которых недостаточно места на диске.
Как воспроизвести это (как можно точнее и минимальнее) : запустить и остановить как можно больше модулей на узле, чтобы повысить давление на диск. Затем обратите внимание на эти ошибки.
Что еще нам нужно знать? : н / д
Окружающая среда :
kubectl version
):Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.7", GitCommit:"0c38c362511b20a098d7cd855f1314dad92c2780", GitTreeState:"clean", BuildDate:"2018-08-20T10:09:03Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.7-gke.11", GitCommit:"fa90543563c9cfafca69128ce8cd9ecd5941940f", GitTreeState:"clean", BuildDate:"2018-11-08T20:22:21Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
uname -a
): Darwin D-10-19-169-80.dhcp4.washington.edu 18.0.0 Darwin Kernel Version 18.0.0: Wed Aug 22 20:13:40 PDT 2018; root:xnu-4903.201.2~1/RELEASE_X86_64 x86_64
/ добрый баг
/ sig gcp
Я только что обновил свою основную версию и узлы до 1.11.3-gke.18, чтобы посмотреть, поможет ли это, но я все еще вижу то же самое.
FWIW «Размер загрузочного диска в ГБ (на узел)» был установлен на минимум 10 ГБ.
@samuela есть
@hgokavarapuz Насколько я слышал, обновлений нет. Def кажется серьезной проблемой для GKE.
@samuela Я видел эту проблему на AWS, но смог обойти ее, используя другой AMI. Надо проверить, в чем разница в AMI, хотя из-за этого это происходит.
@hgokavarapuz Интересно ... может быть, это как-то связано с ОС / настройкой узла.
Однако необходимо отладить больше, что именно вызывает эту проблему.
В среду, 12 декабря 2018 г., в 13:23 samuela [email protected] написала:
@hgokavarapuz https://github.com/hgokavarapuz Интересно ... может это
имеет какое-то отношение к OS / настройке узла.-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/kubernetes/kubernetes/issues/71869#issuecomment-446748663 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AmWWLdQjFnWgM5jeutfY6YqJBQ9l2l8gks5u4XO2gaJpZM4ZJWSq
.
-
Спасибо
Hemanth
@hgokavarapuz проверьте логи kubelet на предмет подсказок
Мне удалось исправить мой, это была проблема с AMI, который я использовал, в котором папка / var была подключена к тому EBS с некоторым ограниченным размером, что вызвало проблему с созданием контейнеров Docker. Это не было напрямую очевидно из журналов, но проверка места и другие вещи прояснили.
@hgokavarapuz Вы уверены, что это действительно решает проблему, а не просто требует дополнительных загрузок изображений для возникновения ошибки?
В моем случае это происходило в пределах разрешенных GKE размеров дисков, поэтому я бы сказал, что, по крайней мере, здесь определенно все еще есть какая-то ошибка в GKE.
Также было бы хорошо иметь какую-то официальную позицию по минимальному размеру диска, необходимому для запуска кубернетов на узле без получения этой ошибки. В противном случае неясно, какого именно размера должны быть тома, чтобы соответствовать спецификации для работы кубернетов.
@samuela Я не пробовал использовать GKE, но это была проблема AWS с некоторыми AMI. Может быть, проблема в GKE.
Мы сталкиваемся с чем-то похожим на GKE v1.11.5-gke.4. Кажется, есть проблема с тем, что сборщик мусора не успевает, о чем свидетельствуют следующие события:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FreeDiskSpaceFailed 47m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 758374400 bytes, but freed 375372075 bytes
Warning FreeDiskSpaceFailed 42m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 898760704 bytes, but freed 0 bytes
Warning ImageGCFailed 42m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 898760704 bytes, but freed 0 bytes
Normal NodeHasDiskPressure 37m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 Node gke-v11-service-graph-pool-c6e93d11-k6h6 status is now: NodeHasDiskPressure
Warning FreeDiskSpaceFailed 37m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 1430749184 bytes, but freed 0 bytes
Warning ImageGCFailed 37m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 1430749184 bytes, but freed 0 bytes
Warning EvictionThresholdMet 36m (x21 over 37m) kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 Attempting to reclaim ephemeral-storage
Warning ImageGCFailed 32m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 1109360640 bytes, but freed 0 bytes
Warning FreeDiskSpaceFailed 27m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 1367126016 bytes, but freed 0 bytes
Warning ImageGCFailed 22m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 1885589504 bytes, but freed 0 bytes
Warning FreeDiskSpaceFailed 17m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 2438008832 bytes, but freed 0 bytes
Warning FreeDiskSpaceFailed 12m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 2223022080 bytes, but freed 0 bytes
Warning ImageGCFailed 7m kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 failed to garbage collect required amount of images. Wanted to free 2358378496 bytes, but freed 0 bytes
Normal NodeHasNoDiskPressure 2m (x4 over 4h) kubelet, gke-v11-service-graph-pool-c6e93d11-k6h6 Node gke-v11-service-graph-pool-c6e93d11-k6h6 status is now: NodeHasNoDiskPressure
Просматривая логи kubelet, я вижу следующие записи:
Feb 07 21:15:31 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: I0207 21:15:31.447179 1594 image_gc_manager.go:300] [imageGCManager]: Disk usage on image filesystem is at 99% which is over the high threshold (85%). Trying to free 2358378496 byte
Feb 07 21:15:31 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: E0207 21:15:31.452366 1594 kubelet.go:1253] Image garbage collection failed multiple times in a row: failed to garbage collect required amount of images. Wanted to free 2358378496 b
Feb 07 21:15:31 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: I0207 21:15:31.711566 1594 kuberuntime_manager.go:513] Container {Name:metadata-agent Image:gcr.io/stackdriver-agents/stackdriver-metadata-agent:0.2-0.0.21-1 Command:[] Args:[-o Kub
Feb 07 21:15:32 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: I0207 21:15:32.004882 1594 cloud_request_manager.go:89] Requesting node addresses from cloud provider for node "gke-v11-service-graph-pool-c6e93d11-k6h6"
Feb 07 21:15:32 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: I0207 21:15:32.008529 1594 cloud_request_manager.go:108] Node addresses from cloud provider for node "gke-v11-service-graph-pool-c6e93d11-k6h6" collected
Feb 07 21:15:34 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: I0207 21:15:34.817530 1594 kube_docker_client.go:348] Stop pulling image "gcr.io/stackdriver-agents/stackdriver-logging-agent:0.8-1.6.2-1": "e807eb07af89: Extracting [==============
Feb 07 21:15:34 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: E0207 21:15:34.817616 1594 remote_image.go:108] PullImage "gcr.io/stackdriver-agents/stackdriver-logging-agent:0.8-1.6.2-1" from image service failed: rpc error: code = Unknown desc
Feb 07 21:15:34 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: E0207 21:15:34.817823 1594 kuberuntime_manager.go:733] container start failed: ErrImagePull: rpc error: code = Unknown desc = failed to register layer: Error processing tar file(exi
Feb 07 21:15:35 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: W0207 21:15:35.057924 1594 kubelet_getters.go:264] Path "/var/lib/kubelet/pods/652e958e-2b1d-11e9-827c-42010a800fdc/volumes" does not exist
Feb 07 21:15:35 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: I0207 21:15:35.058035 1594 eviction_manager.go:400] eviction manager: pods fluentd-gcp-v3.1.1-spdfd_kube-system(652e958e-2b1d-11e9-827c-42010a800fdc) successfully cleaned up
Feb 07 21:15:35 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: E0207 21:15:35.091740 1594 pod_workers.go:186] Error syncing pod 7e06145a-2b1d-11e9-827c-42010a800fdc ("fluentd-gcp-v3.1.1-bgdg6_kube-system(7e06145a-2b1d-11e9-827c-42010a800fdc)"),
Feb 07 21:15:35 gke-v11-service-graph-pool-c6e93d11-k6h6 kubelet[1594]: W0207 21:15:35.179545 1594 eviction_manager.go:329] eviction manager: attempting to reclaim ephemeral-storage
Кажется, что-то удерживает сборщик мусора, чтобы достаточно быстро освободить хранилище. Узел выглядит так, как будто он в конечном итоге восстанавливается, но при этом некоторые поды удаляются.
Я столкнулся с той же проблемой. Я развернул стек с kops на AWS, и моя версия k8s - 1.11.6. Проблема в том, что у меня есть простои приложений в неделю, когда произошло давление на диск.
такая же проблема здесь. Я расширил объемы отливов, думая, что это исправит.
с помощью
ami k8s-1.10-debian-jessie-amd64-hvm-ebs-2018-08-17 (ami-009b9699070ffc46f)
Я столкнулся с аналогичной проблемой, но на AKS. Когда мы уменьшаем кластер с помощью az cli
а затем увеличиваем, я думаю, что новые узлы чистые, я имею в виду без всякого мусора, но
$ kubectl get no
NAME STATUS ROLES AGE VERSION
aks-agentpool-11344223-0 Ready agent 77d v1.12.4
aks-agentpool-11344223-1 Ready agent 9h v1.12.4
aks-agentpool-11344223-2 Ready agent 9h v1.12.4
aks-agentpool-11344223-3 Ready agent 9h v1.12.4
aks-agentpool-11344223-4 Ready agent 9h v1.12.4
aks-agentpool-11344223-5 Ready agent 9h v1.12.4
и когда я вхожу в один из них, я вижу множество старых изображений, например
$ docker images | grep addon-resizer
k8s.gcr.io/addon-resizer 1.8.4 5ec630648120 6 months ago 38.3MB
k8s.gcr.io/addon-resizer 1.8.1 6c0dbeaa8d20 17 months ago 33MB
k8s.gcr.io/addon-resizer 1.7 9b0815c87118 2 years ago 39MB
или же
$ docker images | grep k8s.gcr.io/cluster-autoscaler
k8s.gcr.io/cluster-autoscaler v1.14.0 ef6c40006faf 7 weeks ago 142MB
k8s.gcr.io/cluster-autoscaler v1.13.2 0f47d27d8e0d 2 months ago 137MB
k8s.gcr.io/cluster-autoscaler v1.12.3 9119261ec106 2 months ago 232MB
k8s.gcr.io/cluster-autoscaler v1.3.7 c711df426ac6 2 months ago 217MB
k8s.gcr.io/cluster-autoscaler v1.12.2 d67faca6c0aa 3 months ago 232MB
k8s.gcr.io/cluster-autoscaler v1.13.1 39c073d73c1e 5 months ago 137MB
k8s.gcr.io/cluster-autoscaler v1.3.4 6168be341178 6 months ago 217MB
k8s.gcr.io/cluster-autoscaler v1.3.3 bd9362bb17a5 7 months ago 217MB
k8s.gcr.io/cluster-autoscaler v1.2.2 2378f4474aa3 11 months ago 209MB
k8s.gcr.io/cluster-autoscaler v1.1.2 e137f4b4d451 14 months ago 198MB
что безумно, поскольку я вижу множество ошибок ниже
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FreeDiskSpaceFailed 15m kubelet, aks-agentpool-11344223-5 failed to garbage collect required amount of images. Wanted to free 1297139302 bytes, but freed 0 bytes
Warning FreeDiskSpaceFailed 10m kubelet, aks-agentpool-11344223-5 failed to garbage collect required amount of images. Wanted to free 1447237222 bytes, but freed 0 bytes
Warning ImageGCFailed 10m kubelet, aks-agentpool-11344223-5 failed to garbage collect required amount of images. Wanted to free 1447237222 bytes, but freed 0 bytes
@samuela : В этом вопросе нет
упоминание подписи: @kubernetes/sig-<group-name>-<group-suffix>
например, @kubernetes/sig-contributor-experience-<group-suffix>
чтобы уведомить участника о впечатлениях, ИЛИ
указание метки вручную: /sig <group-name>
например, /sig scalability
для применения метки sig/scalability
Примечание. Метод 1 инициирует отправку электронной почты группе. См. Список групп .
<group-suffix>
в методе 1 необходимо заменить одним из следующих: _ ошибки, запросы функций, предварительные обзоры, ошибки тестирования, предложения _.
Инструкции по взаимодействию со мной с помощью PR-комментариев доступны здесь . Если у вас есть вопросы или предложения, связанные с моим поведением, сообщите о проблеме в репозиторий kubernetes / test-infra .
Я нажимаю на это в Openstack, используя v1.11.10
Узлу полностью не хватает места на диске, и журналы kubelet теперь представляют собой цикл:
E1029 06:41:37.397348 8907 remote_runtime.go:278] ContainerStatus "redacted" from runtime service failed: rpc error: code = Unknown desc = unable to inspect docker image "sha256:redacted" while inspecting docker container "redacted": no such image: "sha256:redacted"
Oct 29 06:41:37 node-name bash[8907]: E1029 06:41:37.397378 8907 kuberuntime_container.go:391] ContainerStatus for redacted error: rpc error: code = Unknown desc = unable to inspect docker image "sha256:redacted" while inspecting docker container "redacted": no such image: "sha256:redacted"
Oct 29 06:41:37 node-name bash[8907]: E1029 06:41:37.397388 8907 kuberuntime_manager.go:873] getPodContainerStatuses for pod "coredns-49t6c_kube-system(redacted)" failed: rpc error: code = Unknown desc = unable to inspect docker image "sha256:redacted" while inspecting docker container "redacted": no such image: "sha256:redacted"
Oct 29 06:41:37 node-name bash[8907]: E1029 06:41:37.397404 8907 generic.go:241] PLEG: Ignoring events for pod coredns-49t6c/kube-system: rpc error: code = Unknown desc = unable to inspect docker image "sha256:redacted" while inspecting docker container "redacted": no such image: "sha256:redacted"
Проблема для меня была вызвана тем, что контейнер занял много места на диске за короткий промежуток времени. Это произошло в нескольких узлах. Контейнер был удален (каждый модуль в узле был), но диск не был возвращен kubelet.
Мне пришлось du /var/lib/docker/overlay -h | sort -h
, чтобы узнать, какие контейнеры делали это, и вручную удалить их. Это вывело узлы из Disk Pressure
и они восстановились (одному из них потребовался reboot -f
).
Это происходит и со мной. У меня 8 узлов в кластере EKS, и по какой-то причине только один узел имеет эту проблему с GC. Это случилось дважды, и я сделал следующие шаги, чтобы решить эту проблему. Кто-нибудь знает лучший / поддерживаемый метод для этого? https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#main maintenance -on-a-node
Столкнулся с такой же проблемой.
kubectl drain --delete-local-data --ignore-daemonsets $NODE_IP && kubectl uncordon $NODE_IP
было достаточно для очистки дискового хранилища.
FWIW «Размер загрузочного диска в ГБ (на узел)» был установлен на минимум 10 ГБ.
Большое спасибо. Это сработало со мной
/ sig узел
@ HayTran94 @samuela @KIVagant @dattim
realImageGCManager # freeSpace имеет журнал уровня 5, если определенное изображение не подходит для GC.
например
if image.lastUsed.Equal(freeTime) || image.lastUsed.After(freeTime) {
klog.V(5).Infof("Image ID %s has lastUsed=%v which is >= freeTime=%v, not eligible for garbage collection", image.id, image.lastUsed, freeTime)
continue
Можете ли вы установить уровень журнала до 5 и посмотреть, есть ли какая-то подсказка, которую дает realImageGCManager # freeSpace?
благодаря
@rubencabrera
В журнале, который вы разместили:
no such image: "sha256:redacted"
Была ли у вас возможность проверить, существует ли лежащее в основе изображение?
благодаря
Пожалуйста, держите меня подальше от этой петли.
Не знаю, почему меня скопировали в это письмо
С уважением,
Ашутош Сингх
В пн, 13 апреля 2020 г., 00:21 Zhihong Yu [email protected] написал:
@rubencabrera https://github.com/rubencabrera
В журнале, который вы разместили:нет такого изображения: "sha256: отредактировано"
Была ли у вас возможность проверить, существует ли лежащее в основе изображение или
нет?благодаря
-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/kubernetes/kubernetes/issues/71869#issuecomment-612684868 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/ADS6CKHTR2QTDJOWNKMLX23RMI5FXANCNFSM4GJFMSVA
.
@rubencabrera
В журнале, который вы разместили:no such image: "sha256:redacted"
Была ли у вас возможность проверить, существует ли лежащее в основе изображение?
благодаря
Привет @tedyu
Да, я проверил это, мы используем некоторые частные репозитории, и изображения недоступны - частая проблема, поэтому это была моя первая мысль, когда я увидел эту ошибку. Образ был доступен и работал на других узлах того же кластера.
Кто-нибудь придумал способ убедить сборщик мусора k8s запускаться на диске, который не является корневой файловой системой? Мы должны использовать дополнительный (SSD) диск для / var / lib / docker, чтобы решить проблемы с производительностью EKS (см. Https://github.com/awslabs/amazon-eks-ami/issues/454). Но сборка мусора не срабатывает, и мы иногда переполняем этот дополнительный диск.
Проблемы становятся устаревшими после 90 дней бездействия.
Отметьте проблему как новую с помощью /remove-lifecycle stale
.
Устаревшие выпуски гниют после дополнительных 30 дней бездействия и в конечном итоге закрываются.
Если сейчас можно безопасно закрыть эту проблему, сделайте это с помощью /close
.
Отправьте отзыв в sig-testing, kubernetes / test-infra и / или fejta .
/ жизненный цикл устаревший
/ remove-жизненный цикл устаревший
Мы начали страдать от этой проблемы на прошлой неделе. Kubernetes 1.17.9, созданный с помощью Kops 1.17.1, размещенный в AWS, с использованием AMI k8s-1.17-debian-stretch-amd64-hvm-ebs-2020-01-17, docker 19.03.11.
Это произошло на двух отдельных узлах за последнюю неделю, оба из которых были представлены следующим образом:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FreeDiskSpaceFailed 10m (x204 over 17h) kubelet, ip-10-224-54-0.us-west-2.compute.internal (combined from similar events): failed to garbage collect required amount of images. Wanted to free 5877565849 bytes, but freed 101485977 bytes
Warning ImageGCFailed 18s (x205 over 17h) kubelet, ip-10-224-54-0.us-west-2.compute.internal (combined from similar events): failed to garbage collect required amount of images. Wanted to free 5886654873 bytes, but freed 0 bytes
du
и df
на узле не согласны с тем, сколько места используется:
admin@ip-10-224-54-0:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 57G 48G 5.8G 90% /
admin@ip-10-224-54-0:~$ sudo du -sh /
du: cannot access '/proc/9856/task/9856/fd/3': No such file or directory
du: cannot access '/proc/9856/task/9856/fdinfo/3': No such file or directory
du: cannot access '/proc/9856/fd/4': No such file or directory
du: cannot access '/proc/9856/fdinfo/4': No such file or directory
11G /
admin@ip-10-224-54-0:~$ sudo du -sh --one-file-system /
6.6G /
При монтировании корневого устройства на другую точку монтирования, чтобы избавиться от других смонтированных файловых систем, du
последовательно соглашается на используемое пространство, но df
прежнему не соглашается:
admin@ip-10-224-54-0:~$ mkdir tmproot
admin@ip-10-224-54-0:~$ sudo mount /dev/nvme0n1p2 /home/admin/tmproot
admin@ip-10-224-54-0:~$ df -h tmproot/
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 57G 48G 5.8G 90% /home/admin/tmproot
admin@ip-10-224-54-0:~$ sudo du -sh tmproot/
6.6G tmproot/
admin@ip-10-224-54-0:~$ sudo du -sh --one-file-system tmproot/
6.6G tmproot/
Я думаю, это может быть связано с тем, что процессы содержат открытые удаленные файлы. Но перезапуск kubelet не освобождает это пространство, и я подозреваю, что это был процесс. Перезапуск докера также не освободил место.
В первый раз, когда это произошло, я завершил работу Node после нескольких часов бесплодного расследования, но теперь, когда это происходит снова, я не могу сделать это окончательным решением проблемы.
Интересная точка данных: containerd удалил открытые файлы:
admin@ip-10-224-54-0:~$ sudo lsof 2>&1| grep -v "no pwd entry" | grep deleted
container 12469 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12470 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12470 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12470 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12470 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12470 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12471 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12471 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12471 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12471 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12471 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12472 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12472 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12472 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12472 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12472 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12473 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12473 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12473 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12473 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12473 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12474 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12474 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12474 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12474 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12474 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12475 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12475 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12475 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12475 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12475 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12476 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12476 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12476 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12476 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12476 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12477 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 12477 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12477 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 12477 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 12477 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 19325 root cwd DIR 0,19 40 1180407868 /run/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12 (deleted)
container 12469 19325 root 4u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 19325 root 6u FIFO 259,2 0t0 2097336 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stdout.log (deleted)
container 12469 19325 root 7u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
container 12469 19325 root 8u FIFO 259,2 0t0 2097337 /var/lib/containerd/io.containerd.runtime.v1.linux/moby/34089ad41629df20f181ed191acec724c79fc879dc49287d29184f2fedfaba12/shim.stderr.log (deleted)
Перезапуск containerd.service также не освободил место и не избавился от этих файловых дескрипторов.
Самый полезный комментарий
Столкнулся с такой же проблемой.
kubectl drain --delete-local-data --ignore-daemonsets $NODE_IP && kubectl uncordon $NODE_IP
было достаточно для очистки дискового хранилища.