Veuillez utiliser ce modèle lorsque vous signalez un bogue et fournissez autant d'informations que possible. Si vous ne le faites pas, votre bogue pourrait ne pas être résolu en temps opportun. Merci!
Ce qui s'est passé : J'ai récemment vu un certain nombre d'expulsions qui semblent être dues à la pression du disque:
$$$ 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
En jetant un œil à kubectl get events
, je vois ces avertissements:
$$$ 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
Creuser un peu plus profondément:
$$$ 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
Il y a en fait remarquablement peu ici. Ce message ne dit rien sur la raison pour laquelle ImageGC a été lancée ou pourquoi il n'a pas pu récupérer plus d'espace.
Ce à quoi vous vous attendiez : Image GC fonctionne correctement, ou du moins ne parvient pas à planifier les pods sur des nœuds qui ne disposent pas d'un espace disque suffisant.
Comment le reproduire (le moins et le plus précisément possible) : exécutez et arrêtez autant de pods que possible sur un nœud afin d'encourager la pression du disque. Observez ensuite ces erreurs.
Y a-t-il autre chose que nous devons savoir? : n / a
Environnement :
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
/ genre bug
/ sig gcp
Je viens de mettre à niveau ma version principale et mes nœuds vers 1.11.3-gke.18 pour voir si cela pourrait être utile, mais je vois toujours exactement la même chose.
Le FWIW "Taille du disque de démarrage en Go (par nœud)" a été défini au minimum, 10 Go.
@samuela une mise à jour sur le problème? Je vois le même problème.
@hgokavarapuz Aucune mise à jour d'après ce que j'ai entendu. Def semble être un problème sérieux pour GKE.
@samuela J'ai vu ce problème sur AWS, mais j'ai pu
@hgokavarapuz Intéressant ... peut-être que cela a quelque chose à voir avec le système d'exploitation / configuration du nœud alors.
Vous devez déboguer davantage ce qui cause exactement ce problème.
Le mercredi 12 décembre 2018 à 13 h 23, samuela [email protected] a écrit:
@hgokavarapuz https://github.com/hgokavarapuz Intéressant ... peut-être ceci
a quelque chose à voir avec le nœud OS / setup alors.-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/kubernetes/kubernetes/issues/71869#issuecomment-446748663 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AmWWLdQjFnWgM5jeutfY6YqJBQ9l2l8gks5u4XO2gaJpZM4ZJWSq
.
-
Je vous remercie
Hemanth
@hgokavarapuz vérifie les journaux de kubelet pour des indices
J'ai pu réparer le mien, c'était un problème avec l'AMI que j'utilisais et dont le dossier / var était monté sur un volume EBS avec une taille restreinte, provoquant le problème de création de conteneurs Docker. Ce n'était pas directement évident à partir des journaux, mais la vérification de l'espace et d'autres choses l'ont clairement montré.
@hgokavarapuz Êtes-vous sûr que cela résout le problème et ne nécessite pas simplement plus de téléchargements d'images pour que le bogue se produise?
Dans mon cas, cela se produisait dans les tailles de disque autorisées par GKE, donc je dirais qu'il y a certainement encore une sorte de bogue dans GKE ici au moins.
Il serait également bon d'avoir une sorte de position officielle sur la taille de disque minimale requise pour exécuter kubernetes sur un nœud sans obtenir cette erreur. Sinon, on ne sait pas exactement quelle taille les volumes doivent être pour être dans les spécifications pour l'exécution de kubernetes.
@samuela Je n'ai pas essayé sur GKE mais c'était le problème sur l'AWS avec certaines AMI. Peut-être qu'il y a un problème avec GKE.
Nous atteignons quelque chose de similaire sur GKE v1.11.5-gke.4. Il semble y avoir un problème avec GC qui ne suit pas, comme le montrent les événements suivants:
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
En analysant les journaux de kubelet, je vois les entrées suivantes:
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
Il semble que quelque chose retient le GC pour récupérer le stockage assez rapidement. Le nœud semble finalement récupérer, mais certains pods sont expulsés dans le processus.
Je rencontre le même problème. J'ai déployé la pile avec kops sur AWS et ma version k8s est la 1.11.6. Le problème est que j'ai une application par semaine lorsque la pression du disque s'est produite.
même problème ici. J'ai étendu les volumes ebs en pensant que cela réglerait le problème.
en utilisant
ami k8s-1.10-debian-jessie-amd64-hvm-ebs-2018-08-17 (ami-009b9699070ffc46f)
J'ai rencontré un problème similaire mais sur AKS. Lorsque nous réduisons le cluster avec az cli
, puis augmentons, je pense que les nouveaux nœuds sont propres, je veux dire sans aucun déchet mais
$ 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
et quand je ssh dans l'un d'eux, je peux voir beaucoup de vieilles images comme
$ 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
ou
$ 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
ce qui est fou car je vois beaucoup d'erreurs ci-dessous
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 : Il n'y a pas d'étiquettes sig sur ce problème. Veuillez ajouter une étiquette sig soit:
en mentionnant un sig: @kubernetes/sig-<group-name>-<group-suffix>
par exemple, @kubernetes/sig-contributor-experience-<group-suffix>
pour notifier l'expérience du contributeur sig, OU
spécifier l'étiquette manuellement: /sig <group-name>
par exemple, /sig scalability
pour appliquer l'étiquette sig/scalability
Remarque: la méthode 1 déclenchera un e-mail au groupe. Voir la liste des groupes .
Le <group-suffix>
de la méthode 1 doit être remplacé par l'un de ceux-ci: _ bogues, demandes de fonctionnalités, révisions pr, échecs de test, propositions _.
Les instructions pour interagir avec moi en utilisant les commentaires PR sont disponibles ici . Si vous avez des questions ou des suggestions concernant mon comportement, veuillez signaler un problème sur le
Je frappe ceci sur Openstack en utilisant la v1.11.10
Le nœud est complètement à court d'espace disque et les journaux de kubelet sont maintenant une boucle de:
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"
Le problème pour moi a été causé par un conteneur prenant beaucoup d'espace disque en peu de temps. Cela s'est produit dans plusieurs nœuds. Le conteneur a été expulsé (tous les pods du nœud l'étaient), mais le disque n'a pas été récupéré par kubelet.
J'ai dû du /var/lib/docker/overlay -h | sort -h
pour trouver quels conteneurs faisaient cela et les supprimer manuellement. Cela a fait sortir les nœuds de Disk Pressure
et ils ont récupéré (l'un d'eux avait besoin d'un reboot -f
).
Cela m'arrive aussi. J'ai 8 nœuds dans un cluster EKS, et pour une raison quelconque, un seul nœud a ce problème GC. Cela s'est produit deux fois et les étapes ci-dessous sont ce que j'ai fait pour résoudre le problème. Quelqu'un connaît-il une méthode meilleure / prise en charge pour ce faire? https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#maintenance -on-a-node
Face au même problème.
kubectl drain --delete-local-data --ignore-daemonsets $NODE_IP && kubectl uncordon $NODE_IP
était suffisant pour nettoyer le stockage sur disque.
Le FWIW "Taille du disque de démarrage en Go (par nœud)" a été défini au minimum, 10 Go.
Merci beaucoup. Cela a fonctionné avec moi
/ nœud sig
@ HayTran94 @samuela @KIVagant @dattim
realImageGCManager # freeSpace a un journal au niveau 5 si certaines images ne sont pas éligibles pour GC.
par exemple
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
Pouvez-vous mettre le niveau de journal à 5 et voir s'il existe un indice donné par realImageGCManager # freeSpace?
Merci
@rubencabrera
Dans le journal que vous avez publié:
no such image: "sha256:redacted"
Avez-vous eu l'occasion de vérifier si l'image sous-jacente existait ou non?
Merci
Veuillez me garder hors de cette boucle.
Je ne sais pas pourquoi je suis copié dans cet e-mail
Merci et salutations,
Ashutosh Singh
Le lundi 13 avril 2020 00:21, Zhihong Yu [email protected] a écrit:
@rubencabrera https://github.com/rubencabrera
Dans le journal que vous avez publié:aucune image de ce type: "sha256: caviardé"
Avez-vous eu l'occasion de vérifier si l'image sous-jacente existait ou
ne pas ?Merci
-
Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/kubernetes/kubernetes/issues/71869#issuecomment-612684868 ,
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/ADS6CKHTR2QTDJOWNKMLX23RMI5FXANCNFSM4GJFMSVA
.
@rubencabrera
Dans le journal que vous avez publié:no such image: "sha256:redacted"
Avez-vous eu l'occasion de vérifier si l'image sous-jacente existait ou non?
Merci
Salut, @tedyu
Oui, j'ai vérifié cela, nous utilisons des référentiels privés et les images non disponibles sont un problème fréquent, donc c'était ma première pensée en voyant cette erreur. L'image était disponible et fonctionnait dans d'autres nœuds du même cluster.
Quelqu'un a-t-il trouvé un moyen de persuader le ramasse-miettes de k8 de se déclencher sur un disque qui n'est pas le système de fichiers racine? Nous devons utiliser un disque secondaire (SSD) pour / var / lib / docker pour résoudre les problèmes de performances d'EKS (voir https://github.com/awslabs/amazon-eks-ami/issues/454). Mais le garbage collection ne se déclenche pas et nous débordons parfois ce disque secondaire.
Les problèmes disparaissent après 90 jours d'inactivité.
Marquez le problème comme récent avec /remove-lifecycle stale
.
Les problèmes périmés pourrissent après 30 jours supplémentaires d'inactivité et finissent par se fermer.
Si ce problème peut être résolu en toute sécurité, veuillez le faire avec /close
.
Envoyez vos commentaires à sig-testing, kubernetes / test-infra et / ou fejta .
/ cycle de vie périmé
/ remove-lifecycle obsolète
Nous avons commencé à souffrir de ce problème la semaine dernière. Kubernetes 1.17.9, construit avec Kops 1.17.1, auto-hébergé dans AWS, utilisant l'AMI k8s-1.17-debian-stretch-amd64-hvm-ebs-2020-01-17, docker 19.03.11.
Cela s'est produit sur deux nœuds distincts au cours de la semaine dernière, qui ont tous deux présenté ceci:
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
et df
sur le nœud ne sont pas d'accord sur la quantité d'espace utilisée:
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 /
Monter le périphérique racine sur un autre point de montage pour se débarrasser des autres systèmes de fichiers montés permet à du
de s'accorder systématiquement sur l'espace utilisé, mais df
n'est toujours pas d'accord:
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/
Je pense que cela peut être dû à des processus contenant des fichiers supprimés ouverts. Mais le redémarrage de kubelet ne libère pas cet espace, et ce serait le processus que je soupçonnerais de provoquer cela. Le redémarrage de docker n'a pas non plus libéré de l'espace.
La première fois que cela s'est produit, j'ai fini par mettre fin au Node après plusieurs heures d'enquête infructueuse, mais maintenant que cela se reproduit, je ne peux pas en faire la solution permanente au problème.
Point de données intéressant: containerd a supprimé des fichiers ouverts:
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)
Le redémarrage de containerd.service n'a pas non plus libéré de l'espace ni supprimé ces descripteurs de fichiers.
Commentaire le plus utile
Face au même problème.
kubectl drain --delete-local-data --ignore-daemonsets $NODE_IP && kubectl uncordon $NODE_IP
était suffisant pour nettoyer le stockage sur disque.