如何找出 kubernetes 中哪些節點正在使用我的節點磁碟?

如何找出 kubernetes 中哪些節點正在使用我的節點磁碟?

我有一個單節點 kubernetes 集群,我收到磁碟使用率超過 70% 的通知。當我在節點上獲得 shell 並運行時,df我發現它/使用了 75% 的可用區塊。我還看到很多這樣的條目:

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

我有兩個使用持久性磁碟區(不是主機磁碟區)的服務,除了 docker 映像之外,我想不出還有什麼可能會耗盡所有這些儲存。

我怎麼知道是什麼在我的 kubernetes 叢集上使用了這麼多儲存空間?

答案1

要了解 Kubernetes 中哪些節點正在使用您的節點磁碟,您可以按照以下步驟操作:

  1. 透過 SSH 連接到您的節點。

  2. ncdu使用以下命令在您的節點上安裝該套件:

    sudo apt-get install ncdu
    
  3. ncdu使用以下命令在節點的根目錄上運行:

    sudo ncdu /
    
  4. 等待ncdu完成掃描節點磁碟。它將顯示目錄列表及其各自的大小。

  5. 使用箭頭鍵瀏覽目錄和子目錄,找出佔用磁碟空間最多的目錄和子目錄。

  6. 確定佔用空間最多的目錄後,您可以kubectl透過執行以下命令來找出哪個 pod 正在使用它:

    kubectl describe pod <pod-name>
    

    替換<pod-name>為您要檢查的 Pod 的名稱。

  7. Volume在命令的輸出中尋找該部分kubectl describe pod。它將向您顯示安裝在 Pod 上的 PVC(持久卷聲明)。

  8. 使用kubectl以下命令來描述 PVC:

    kubectl describe pvc <pvc-name>
    

    替換<pvc-name>為安裝在 Pod 上的 PVC 的名稱。

  9. 在命令的輸出中尋找StorageClass和部分。它會告訴您 PVC 正在使用哪個 StorageClass 以及如何存取它。Access Modeskubectl describe pvc

  10. 檢查 StorageClass 配置,查看是否存在可能導致磁碟使用問題的任何儲存限製或配額設定。

透過執行這些步驟,您應該能夠識別 Kubernetes 中哪個 pod 使用了節點上最多的磁碟空間。

相關內容