Kubernetes: `Fehler beim Sammeln der erforderlichen Anzahl von Bildern. Wollte 473842483 Bytes freigeben, hat aber 0 Bytes freigegeben`

Erstellt am 8. Dez. 2018  ·  30Kommentare  ·  Quelle: kubernetes/kubernetes

Bitte verwenden Sie diese Vorlage, während Sie einen Fehler melden, und geben Sie so viele Informationen wie möglich an. Wenn Sie dies nicht tun, wird Ihr Fehler möglicherweise nicht rechtzeitig behoben. Vielen Dank!

Was ist passiert? Ich habe in letzter Zeit eine Reihe von Räumungen gesehen, die anscheinend auf den Druck auf die Festplatte zurückzuführen sind:

$$$ 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

Wenn ich mir kubectl get events , sehe ich folgende Warnungen:

$$$ 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

Ein bisschen tiefer graben:

$$$ 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

Hier gibt es eigentlich bemerkenswert wenig. Diese Nachricht sagt nichts darüber aus, warum ImageGC initiiert wurde oder warum nicht mehr Speicherplatz wiederhergestellt werden konnte.

Was Sie erwartet haben : Image GC funktioniert ordnungsgemäß oder plant Pods zumindest nicht auf Knoten, auf denen nicht genügend Speicherplatz vorhanden ist.

So reproduzieren Sie es (so minimal und präzise wie möglich) : Führen Sie so viele Pods wie möglich auf einem Knoten aus und stoppen Sie sie, um den Druck auf die Festplatte zu fördern. Beobachten Sie dann diese Fehler.

Was müssen wir noch wissen? : n / a

Umwelt :

  • Kubernetes-Version (verwenden Sie 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"}
  • Cloud-Anbieter oder Hardwarekonfiguration: GKE
  • Betriebssystem (z. B. aus / etc / os-release): Ich verwende macOS 10.14, auf Knoten wird Container-Optimized OS (cos) ausgeführt.
  • Kernel (zB 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
  • Installieren Sie die Tools: n / a
  • Andere: n / a


/ Art Bug

areprovidegcp kinbug sinode

Hilfreichster Kommentar

Konnte das gleiche Problem.

kubectl drain --delete-local-data --ignore-daemonsets $NODE_IP && kubectl uncordon $NODE_IP war genug, um den Festplattenspeicher zu bereinigen.

Alle 30 Kommentare

/ sig gcp

Ich habe gerade meine Master-Version und meine Knoten auf 1.11.3-gke.18 aktualisiert, um zu sehen, ob dies hilfreich wäre, aber ich sehe immer noch genau das Gleiche.

FWIW "Bootdiskettengröße in GB (pro Knoten)" wurde auf das Minimum von 10 GB eingestellt.

@samuela irgendein Update zu dem Problem? Ich sehe das gleiche Problem.

@hgokavarapuz Soweit ich gehört habe kein Update. Def scheint ein ernstes Problem für GKE zu sein.

@samuela Ich habe dieses Problem in AWS gesehen, konnte es jedoch mit einem anderen AMI

@hgokavarapuz Interessant ... vielleicht hat das dann etwas mit dem Betriebssystem / Setup des Knotens zu tun.

Müssen mehr debuggen, was genau dieses Problem verursacht.

Am Mittwoch, den 12. Dezember 2018 um 13:23 Uhr schrieb samuela [email protected] :

@hgokavarapuz https://github.com/hgokavarapuz Interessant ... vielleicht das hier
hat dann etwas mit dem Node OS / Setup zu tun.

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/kubernetes/kubernetes/issues/71869#issuecomment-446748663 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AmWWLdQjFnWgM5jeutfY6YqJBQ9l2l8gks5u4XO2gaJpZM4ZJWSq
.

- -
Vielen Dank
Hemanth

@hgokavarapuz Überprüfen Sie die Kubelet-Protokolle auf Hinweise

Ich konnte mein Problem beheben. Es war ein Problem mit dem von mir verwendeten AMI, bei dem der Ordner / var auf einem EBS-Volume mit einer eingeschränkten Größe bereitgestellt wurde, was das Problem bei der Erstellung von Docker-Containern verursachte. War nicht direkt aus den Protokollen ersichtlich, aber die Überprüfung des Speicherplatzes und anderer Dinge machte es klar.

@hgokavarapuz Sind Sie sicher, dass dies das Problem tatsächlich behebt und nicht nur weitere

In meinem Fall geschah dies innerhalb der von GKE zugelassenen Festplattengrößen, daher würde ich sagen, dass es hier zumindest noch einen Fehler in GKE gibt.

Es wäre auch gut, eine offizielle Position zu der Mindestfestplattengröße zu haben, die erforderlich ist, um Kubernetes auf einem Knoten auszuführen, ohne diesen Fehler zu erhalten. Andernfalls ist nicht klar, wie groß die Volumes sein müssen, um innerhalb der Spezifikation für die Ausführung von Kubernetes zu liegen.

@samuela Ich habe GKE nicht ausprobiert, aber das war das Problem in der AWS mit einigen

Wir treffen etwas Ähnliches auf GKE v1.11.5-gke.4. Es scheint ein Problem zu geben, bei dem GC nicht mithält, wie aus den folgenden Ereignissen hervorgeht:

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

Beim Scannen der Kubelet-Protokolle werden folgende Einträge angezeigt:

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

Es scheint, als würde etwas den GC halten, um den Speicher schnell genug zurückzugewinnen. Der Knoten scheint sich irgendwann zu erholen, aber einige Pods werden dabei entfernt.

Ich stoße auf das gleiche Problem. Ich habe den Stack mit kops unter AWS bereitgestellt und meine k8s-Version ist 1.11.6. Das Problem ist, dass ich eine Anwendungsausfallzeit pro Woche habe, als der Plattendruck auftrat.

das gleiche Problem hier. Ich habe die ebs-Volumes erweitert und dachte, das würde das Problem beheben.
mit
ami k8s-1.10-debian-jessie-amd64-hvm-ebs-2018-08-17 (ami-009b9699070ffc46f)

Ich hatte ein ähnliches Problem, aber bei AKS. Wenn wir den Cluster mit az cli verkleinern und dann nach oben, würde ich denken, dass neue Knoten sauber sind, ich meine ohne Müll, aber

$ 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

und wenn ich in eines von ihnen ssh, kann ich viele alte Bilder wie sehen

$ 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

oder

$ 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

Das ist verrückt, da ich unten viele Fehler sehe

  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 : Es gibt keine Sig-Labels zu diesem Thema. Bitte fügen Sie ein Sig-Label hinzu, indem Sie entweder:

  1. Erwähnung einer Unterschrift: @kubernetes/sig-<group-name>-<group-suffix>
    Beispiel: @kubernetes/sig-contributor-experience-<group-suffix> , um die Erfahrung des Mitwirkenden zu benachrichtigen

  2. Manuelles Festlegen der Bezeichnung: /sig <group-name>
    Beispiel: /sig scalability , um das Label sig/scalability anzuwenden

Hinweis: Methode 1 löst eine E-Mail an die Gruppe aus. Siehe die Gruppenliste .
Das <group-suffix> in Methode 1 muss durch eines der folgenden ersetzt werden: _ Fehler, Feature-Anfragen, Pr-Reviews, Testfehler, Vorschläge _.

Anweisungen zur Interaktion mit mir mithilfe von PR-Kommentaren finden Sie hier . Wenn Sie Fragen oder Vorschläge zu meinem Verhalten haben, reichen Sie bitte ein Problem mit dem Repository

Ich treffe dies auf Openstack mit v1.11.10

Der Knoten hat keinen Speicherplatz mehr und Kubelet-Protokolle sind jetzt eine Schleife aus:

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"

Das Problem wurde für mich durch einen Container verursacht, der in kurzer Zeit viel Speicherplatz beansprucht. Dies geschah in mehreren Knoten. Der Container wurde entfernt (jeder Pod im Knoten war), aber die Festplatte wurde nicht von Kubelet zurückgefordert.

Ich musste du /var/lib/docker/overlay -h | sort -h , um herauszufinden, welche Container dies taten, und sie manuell löschen. Dies brachte die Knoten aus Disk Pressure und sie erholten sich (einer von ihnen benötigte ein reboot -f ).

Das passiert auch für mich. Ich habe 8 Knoten in einem EKS-Cluster, und aus irgendeinem Grund hat nur ein Knoten dieses GC-Problem. Dies ist zweimal passiert, und die folgenden Schritte habe ich ausgeführt, um das Problem zu beheben. Kennt jemand eine bessere / unterstützte Methode dafür? https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#maintenance -on-a-node

  1. Erhöhen Sie die Autoscaling-Gruppe für EKS um +1 (Ersatzknoten für den schlechten)
  2. Sperren Sie den fehlerhaften Knoten ab (kubectl cordon)
  3. Entleeren Sie den fehlerhaften Knoten (Kubectl Drain), um die Pods von diesem Knoten auf einen der anderen Knoten zu werfen
  4. Fügen Sie allen Knoten außer dem fehlerhaften Knoten einen Downscaling-Schutz hinzu
  5. Verringern Sie die Autoscaling-Gruppe für EKS um -1 (dies löscht den fehlerhaften Knoten, da dies der einzige ist, der nicht geschützt ist).
  6. Entfernen Sie den Downscaling-Schutz von allen Knoten

Konnte das gleiche Problem.

kubectl drain --delete-local-data --ignore-daemonsets $NODE_IP && kubectl uncordon $NODE_IP war genug, um den Festplattenspeicher zu bereinigen.

FWIW "Bootdiskettengröße in GB (pro Knoten)" wurde auf das Minimum von 10 GB eingestellt.

Vielen Dank. Es hat bei mir funktioniert

/ sig Knoten

@ HayTran94 @samuela @KIVagant @dattim
realImageGCManager # freeSpace hat ein Protokoll auf Stufe 5, wenn ein bestimmtes Bild nicht für die GC geeignet ist.
z.B

        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

Können Sie die Protokollstufe auf 5 setzen und prüfen, ob realImageGCManager # freeSpace einen Hinweis gibt?

Vielen Dank

@rubencabrera
In dem von Ihnen geposteten Protokoll:

no such image: "sha256:redacted"

Hatten Sie die Möglichkeit zu überprüfen, ob das zugrunde liegende Bild vorhanden ist oder nicht?

Vielen Dank

Bitte halten Sie mich aus dieser Schleife heraus.
Ich bin mir nicht sicher, warum ich in diese E-Mail kopiert werde

Danke & Grüße,
Ashutosh Singh

Am Montag, den 13. April 2020 um 00:21 Uhr schrieb Zhihong Yu [email protected] :

@rubencabrera https://github.com/rubencabrera
In dem von Ihnen geposteten Protokoll:

kein solches Bild: "sha256: redigiert"

Hatten Sie die Möglichkeit zu überprüfen, ob das zugrunde liegende Bild vorhanden war oder nicht?
nicht?

Vielen Dank

- -
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/kubernetes/kubernetes/issues/71869#issuecomment-612684868 ,
oder abbestellen
https://github.com/notifications/unsubscribe-auth/ADS6CKHTR2QTDJOWNKMLX23RMI5FXANCNFSM4GJFMSVA
.

@rubencabrera
In dem von Ihnen geposteten Protokoll:

no such image: "sha256:redacted"

Hatten Sie die Möglichkeit zu überprüfen, ob das zugrunde liegende Bild vorhanden ist oder nicht?

Vielen Dank

Hallo, @tedyu

Ja, ich habe das überprüft. Wir verwenden einige private Repositorys. Nicht verfügbare Bilder sind ein häufiges Problem. Daher war es mein erster Gedanke, als ich diesen Fehler sah. Das Image war verfügbar und wurde auf anderen Knoten desselben Clusters ausgeführt.

Hat jemand einen Weg gefunden, k8s Garbage Collection davon zu überzeugen, auf einer Festplatte zu feuern, die nicht das Root-Dateisystem ist? Wir müssen eine sekundäre (SSD) Festplatte für / var / lib / docker verwenden, um EKS-Leistungsprobleme zu beheben (siehe https://github.com/awslabs/amazon-eks-ami/issues/454). Aber die Garbage Collection wird nicht ausgelöst und manchmal läuft diese sekundäre Festplatte über.

Probleme sind nach 90 Tagen Inaktivität veraltet.
Markieren Sie das Problem mit /remove-lifecycle stale als frisch.
Veraltete Probleme verrotten nach weiteren 30 Tagen Inaktivität und schließen schließlich.

Wenn dieses Problem jetzt sicher geschlossen werden kann, tun Sie dies bitte mit /close .

Senden Sie Feedback an sig-testing, kubernetes / test-infra und / oder fejta .
/ Lebenszyklus abgestanden

/ remove-lifecycle veraltet

Wir haben in der letzten Woche angefangen, unter diesem Problem zu leiden. Kubernetes 1.17.9, erstellt mit Kops 1.17.1, selbst gehostet in AWS, unter Verwendung des AMI k8s-1.17-debian-strip-amd64-hvm-ebs-2020-01-17, Docker 19.03.11.

Dies ist in der letzten Woche auf zwei separaten Knoten geschehen, die beide Folgendes vorstellten:

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 und df auf dem Knoten sind sich nicht einig, wie viel Speicherplatz verwendet wird:

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    /

Wenn Sie das Root-Gerät an einen anderen Mountpoint mounten, um die anderen gemounteten Dateisysteme zu entfernen, erhalten Sie du , um den verwendeten Speicherplatz konsistent zu vereinbaren, aber df immer noch anderer Meinung:

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/

Ich denke, dies kann an Prozessen liegen, die gelöschte Dateien offen halten. Aber ein Neustart von kubelet macht diesen Speicherplatz nicht frei, und es wäre der Prozess, von dem ich vermuten würde, dass er dies verursacht. Durch den Neustart von Docker wurde auch kein Speicherplatz freigegeben.

Als dies das erste Mal passierte, beendete ich den Knoten nach mehreren Stunden erfolgloser Untersuchung, aber jetzt, da es wieder passiert, kann ich das nicht zur dauerhaften Lösung des Problems machen.

Interessanter Datenpunkt: Containerd hat geöffnete Dateien gelöscht:

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)

Durch einen Neustart von containerd.service wurde auch der Speicherplatz nicht freigegeben oder diese Dateihandles wurden nicht entfernt.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen