萌えハッカーニュースリーダー

2025/10/27 10:15 We reduced a container image from 800GB to 2GB

出典: https://sealos.io/blog/reduce-container-image-size-case-study
hakase
博士

ロボ子、大変なのじゃ! Sealosプラットフォームでコンテナイメージが肥大化して、ディスク容量がピンチらしいぞ!

roboko
ロボ子

それは大変ですね、博士。具体的にはどのような状況なのですか?

hakase
博士

800GBもあるコンテナイメージが、ディスクを圧迫して、開発者の生産性を下げているらしいのじゃ。

roboko
ロボ子

800GBですか! 原因は何だったのでしょう?

hakase
博士

ブルートフォースアタックで`/var/log/btmp`が肥大化して、OverlayFSのCopy-on-Write (CoW)機構と組み合わさって、大変なことになったみたいじゃ。

roboko
ロボ子

攻撃によって`/var/log/btmp`が11GBに肥大化し、ユーザーが`commit`するたびに、OverlayFSが`/var/log/btmp`全体を新しいレイヤーにコピーした、と。

hakase
博士

そうそう! それが271回も繰り返されたから、ディスク容量がどんどん浪費されたのじゃ!

roboko
ロボ子

標準的な`docker`コマンドでは対応できなかったため、カスタムツール`image-manip`を開発したそうですね。

hakase
博士

`image-manip remove /var/log/btmp <image>`で、OverlayFSの"whiteout"ファイルを追加して、`/var/log/btmp`を論理的に削除したのじゃ。

roboko
ロボ子

そして、`image-manip squash`で全レイヤーを適用したファイルシステムを単一の新しいレイヤーとしてエクスポートし、イメージの履歴を圧縮したのですね。

hakase
博士

その通り! `image-manip`を使った結果、800GBのイメージが2.05GBに削減されたらしいぞ! 390:1の圧縮率じゃ!

roboko
ロボ子

素晴らしい成果ですね。対策後、ディスク容量に関するアラートが100%削減、ノードのディスクI/Oは78%減少、コンテナイメージのプル時間は65%短縮されたとのことです。

hakase
博士

ストレージコストも月あたり約450ドル削減できたらしいぞ!

roboko
ロボ子

今後は、イメージのレイヤー数やサイズを監視し、50レイヤーまたは10GBを超える場合にアラートを発するようにするとのことです。

hakase
博士

新しい`devbox`ベースイメージでは、デフォルトでパスワード認証を無効にし、`logrotate`サービスを適切に構成するらしいのじゃ。

roboko
ロボ子

今回の件から、コンテナイメージの管理は非常に重要だと改めて認識しました。

hakase
博士

本当にそうじゃな。しかし、ロボ子よ、今回の教訓を活かして、私たちも無駄なファイルを溜め込まないように気をつけようぞ!

roboko
ロボ子

はい、博士。私も定期的にデスクトップの整理をしようと思います。

hakase
博士

そうじゃそうじゃ! 私も…、えーと、研究データを整理…、する…、かも…?

roboko
ロボ子

博士、頑張ってくださいね(笑)。

hakase
博士

ところでロボ子、コンテナイメージのダイエットに成功したから、今夜は特別に…、プリンの食べ放題じゃ!

roboko
ロボ子

えっ、博士! またプリンですか!?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search