手当たり次第に書くんだ

飽きっぽいのは本能

Kubernetes disk-pressure で Pod が起動しない場合

Kubernetes で Pod が起動しなくなり、node.kubernetes.io/disk-pressure の taint が原因になっていた時のメモです。これは単なる Pod の問題ではなく、ノードのディスク使用量、container runtime、kubelet、バックアップ保存先の設計が Kubernetes のスケジューリングに表面化した状態として見ます。

この記事の位置づけ

この記事は、ノードのディスク不足によって Pod が起動しない場合の切り分け記事です。scheduler のエラーだけを見るのではなく、Node condition、taint、containerd / kubelet の保存領域、バックアップやログの置き場所を順に確認します。

関連する記事

次に進む

参考書籍

出ていたメッセージ

0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/disk-pressure: }, that the pod didn't tolerate.

原因

この時は、Pod 内のデータを毎日バックアップしており、そのバックアップデータでノード側のディスクがいっぱいになっていました。アプリケーションや Kubernetes の設定不備というより、ノードの空き容量不足が直接の原因です。

disk-pressure は、Kubernetes がノードのディスク逼迫を検知し、新しい Pod のスケジューリングや既存 Pod の維持に影響が出る状態です。原因はイメージ、ログ、一時ファイル、バックアップ、container runtime の保存領域など複数あり得ます。

確認すること

まず Kubernetes 側で Node condition と taint を確認し、次にノードへ入ってファイルシステムと containerd / kubelet の使用量を確認します。

kubectl describe node <node-name>
kubectl get node -o wide
kubectl get pod -A -o wide
kubectl get events -A --sort-by=.lastTimestamp
df -h
sudo du -xh /var/lib/containerd | sort -h | tail
sudo du -xh /var/lib/kubelet | sort -h | tail
sudo journalctl --disk-usage

/var/lib/containerd はコンテナイメージやスナップショット、/var/lib/kubelet は Pod 関連の状態やボリュームに関係します。どちらが肥大化しているかで、見るべき場所が変わります。

復旧の考え方

  • 不要なバックアップや一時ファイルを削除する。
  • コンテナイメージ、古いログ、containerd のスナップショットが肥大化していないか確認する。
  • 必要に応じて kubelet や container runtime の状態を確認する。
  • バックアップ保存先を Pod / node のローカルディスクに置き続けない。
  • 監視でディスク使用率を見て、disk-pressure になる前に気づけるようにする。

復旧時に重要なのは、単に空き容量を作ることだけではありません。なぜノードローカルにデータが増え続けたのかを確認し、バックアップ、ログ、永続データの置き場所を見直す必要があります。

やってはいけない見方

disk-pressure を Pod の再起動だけで直そうとすると、原因が残ったままになります。Pod を消しても、ノードのディスク逼迫が解消されなければ同じ問題が再発します。Kubernetes のイベントは入口であり、最終的にはノードの保存領域と運用設計を見る必要があります。

まとめ

disk-pressure は Kubernetes の問題というより、ノードのリソース不足が Kubernetes に表面化した状態です。Pod が起動しない時は、まず scheduler のエラー、node condition、ディスク使用量、container runtime の保存領域を確認します。

Kubernetes disk-pressure で Pod が起動しない場合

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る