
単一ノードの 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 でノードのディスクを使用しているものを確認するには、次の手順に従います。
Node に SSH で接続します。
ncdu
次のコマンドを使用して、ノードにパッケージをインストールします。sudo apt-get install ncdu
ncdu
次のコマンドを使用して、ノードのルート ディレクトリで実行します。sudo ncdu /
ノードのディスクのスキャンが完了するまで待ちます
ncdu
。ディレクトリのリストとそれぞれのサイズが表示されます。矢印キーを使用してディレクトリとサブディレクトリを移動し、どのディレクトリが最も多くのディスク領域を占有しているかを確認します。
kubectl
最も多くのスペースを占有しているディレクトリを特定したら、次のコマンドを実行して、どのポッドがそのディレクトリを使用しているかを確認できます。kubectl describe pod <pod-name>
<pod-name>
確認したいポッドの名前に置き換えます。Volume
コマンドの出力でセクションを探しますkubectl describe pod
。ポッドにマウントされている PVC (Persistent Volume Claim) が表示されます。kubectl
次のコマンドを使用して PVC を記述します。kubectl describe pvc <pvc-name>
<pvc-name>
ポッドにマウントされた PVC の名前に置き換えます。コマンドの出力で
StorageClass
およびセクションを探します。PVC が使用している StorageClass と、そのアクセス方法がわかります。Access Modes
kubectl describe pvc
StorageClass 構成をチェックして、ディスク使用量の問題を引き起こしている可能性のあるストレージ制限またはクォータが設定されていないかどうかを確認します。
これらの手順に従うことで、Kubernetes のノード上でどのポッドが最も多くのディスク領域を使用しているかを特定できるようになります。