ephemeral-storage
Pod が生きている間だけ存在し、Pod が削除・再起動されると中身も消える一時的なディスク領域のこと
ノードのローカルディスクを共有する
1 つの Pod が大量に書き込むと同じノード上の他の Pod や kubelet 自身を巻き込んでディスクを枯渇させる
これを防ぐため、Pod 仕様で requests / limits を設定できる:
1 つのPod について、以下がすべて同じ ephemeral storage の枠を食う
コンテナの書き込み可能レイヤー
イメージは read-only で、その上に重ねた書き込み層
アプリがファイルを作る・ログを吐く・一時ファイルを置く、など
emptyDir ボリューム
Pod に紐づく一時ディレクトリ
ビルドの中間生成物やキャッシュの置き場によく使われる(medium: Memory を指定しない限りディスク上)
コンテナのログ
stdout/stderr に吐いた分(ノード上に溜まる)
Pod 仕様で requests / limits を設定できる
code:yaml
resources:
requests:
ephemeral-storage: "2Gi" # スケジューリングの目安
limits:
ephemeral-storage: "10Gi" # これを超えたら強制退去
requests
スケジューラがどのノードに置くか決める際の見積もり
limits
これを超えると kubelet がその Pod を evictさせる