Wie kann ich herausfinden, was die Festplatte meines Knotens in Kubernetes verwendet?

Wie kann ich herausfinden, was die Festplatte meines Knotens in Kubernetes verwendet?

Ich habe einen Kubernetes-Cluster mit einem einzigen Knoten und habe eine Benachrichtigung erhalten, dass die Festplattennutzung über 70 % liegt. Wenn ich eine Shell auf dem Knoten starte und ausführe, dfsehe ich, dass /75 % der verfügbaren Blöcke genutzt werden. Ich sehe auch eine Reihe von Einträgen wie diesen:

overlay         51432064 36953456  12350764  75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/47d405a81214ec9b81ccdffae3674260fa2946d30bdd3b398aa1c2d283c8577e/rootfs
overlay         51432064 36953456  12350764  75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/569d1fe262f6bf1a59ca99163f231a426d2251ac1beabc47a0393066f48b3e0e/rootfs
overlay         51432064 36953456  12350764  75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/32d14863f46e922b7e0b2bbee8a5321c5fabb5811352449d90e486b94161a8cb/rootfs
overlay         51432064 36953456  12350764  75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/8c3fa2f9467e792036782e9587f748f846d61fdc23d9afaecc7e7835e6db4f2b/rootfs
overlay         51432064 36953456  12350764  75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/626b21093218edcda466ce6d4f31e7b975a0c0473d233fc062ed657499541fc9/rootfs
overlay         51432064 36953456  12350764  75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/c1a7484e1beca4ec1299fc5017002d6fecc9890c86e3246a8bdf53fcc45cf576/rootfs

Ich habe zwei Dienste, die persistente Volumes (keine Host-Volumes) verwenden, und mir fällt nichts anderes als Docker-Images ein, das den gesamten Speicher belegen könnte.

Wie kann ich herausfinden, was so viel Speicher in meinem Kubernetes-Cluster verbraucht?

Antwort1

Um herauszufinden, was die Festplatte Ihres Knotens in Kubernetes verwendet, können Sie die folgenden Schritte ausführen:

  1. Melden Sie sich per SSH bei Ihrem Knoten an.

  2. Installieren Sie das ncduPaket mit dem folgenden Befehl auf Ihrem Knoten:

    sudo apt-get install ncdu
    
  3. Führen Sie es ncduim Stammverzeichnis Ihres Knotens mit dem folgenden Befehl aus:

    sudo ncdu /
    
  4. Warten Sie, ncdubis der Scan der Festplatte Ihres Knotens abgeschlossen ist. Es wird eine Liste der Verzeichnisse und ihrer jeweiligen Größe angezeigt.

  5. Navigieren Sie mit den Pfeiltasten durch die Verzeichnisse und Unterverzeichnisse, um herauszufinden, welches den meisten Speicherplatz beansprucht.

  6. Wenn Sie das Verzeichnis identifiziert haben, das den meisten Speicherplatz beansprucht, können Sie kubectlmit dem folgenden Befehl herausfinden, welcher Pod es verwendet:

    kubectl describe pod <pod-name>
    

    Ersetzen Sie es <pod-name>durch den Namen des Pods, den Sie überprüfen möchten.

  7. Suchen Sie Volumein der Ausgabe des kubectl describe podBefehls nach dem Abschnitt. Er zeigt Ihnen den PVC (Persistent Volume Claim), der auf dem Pod gemountet ist.

  8. Verwenden Sie kubectlzur Beschreibung des PVC den folgenden Befehl:

    kubectl describe pvc <pvc-name>
    

    Ersetzen Sie es <pvc-name>durch den Namen des PVC, das auf der Kapsel montiert wurde.

  9. Suchen Sie in der Ausgabe des Befehls nach den Abschnitten StorageClassund . Darin erfahren Sie, welche StorageClass der PVC verwendet und wie darauf zugegriffen wird.Access Modeskubectl describe pvc

  10. Überprüfen Sie die StorageClass-Konfiguration, um festzustellen, ob Speichergrenzen oder -kontingente festgelegt sind, die möglicherweise Probleme bei der Datenträgernutzung verursachen.

Wenn Sie diese Schritte befolgen, sollten Sie in der Lage sein, zu ermitteln, welcher Pod den meisten Speicherplatz auf Ihrem Knoten in Kubernetes verwendet.

verwandte Informationen