Kubernetes でノードのディスクを使用しているものを確認するにはどうすればよいですか?

Kubernetes でノードのディスクを使用しているものを確認するにはどうすればよいですか?

単一ノードの Kubernetes クラスターがあり、ディスク使用率が 70% を超えたという通知を受け取りました。ノードでシェルを取得して実行すると、使用可能なブロックの 75% が使用されているdfことがわかります/。次のようなエントリもいくつか表示されます。

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

永続ボリューム (ホスト ボリュームではない) を使用するサービスが 2 つありますが、このストレージをすべて使用しているのは Docker イメージ以外には考えられません。

Kubernetes クラスターでこれほど多くのストレージを使用しているものを把握するにはどうすればよいでしょうか?

答え1

Kubernetes でノードのディスクを使用しているものを確認するには、次の手順に従います。

  1. Node に SSH で接続します。

  2. ncdu次のコマンドを使用して、ノードにパッケージをインストールします。

    sudo apt-get install ncdu
    
  3. ncdu次のコマンドを使用して、ノードのルート ディレクトリで実行します。

    sudo ncdu /
    
  4. ノードのディスクのスキャンが完了するまで待ちますncdu。ディレクトリのリストとそれぞれのサイズが表示されます。

  5. 矢印キーを使用してディレクトリとサブディレクトリを移動し、どのディレクトリが最も多くのディスク領域を占有しているかを確認します。

  6. kubectl最も多くのスペースを占有しているディレクトリを特定したら、次のコマンドを実行して、どのポッドがそのディレクトリを使用しているかを確認できます。

    kubectl describe pod <pod-name>
    

    <pod-name>確認したいポッドの名前に置き換えます。

  7. Volumeコマンドの出力でセクションを探しますkubectl describe pod。ポッドにマウントされている PVC (Persistent Volume Claim) が表示されます。

  8. kubectl次のコマンドを使用して PVC を記述します。

    kubectl describe pvc <pvc-name>
    

    <pvc-name>ポッドにマウントされた PVC の名前に置き換えます。

  9. コマンドの出力でStorageClassおよびセクションを探します。PVC が使用している StorageClass と、そのアクセス方法がわかります。Access Modeskubectl describe pvc

  10. StorageClass 構成をチェックして、ディスク使用量の問題を引き起こしている可能性のあるストレージ制限またはクォータが設定されていないかどうかを確認します。

これらの手順に従うことで、Kubernetes のノード上でどのポッドが最も多くのディスク領域を使用しているかを特定できるようになります。

関連情報