Podがなにか分からないから弁当ケースで表現してもらう
KubernetesのPodとは何かを弁当ケースに例えて理解します。1つ以上のコンテナをまとめたものであるPodの概念を、実務で遭遇した場面から学んだことをまとめました。
目次
現職でお客様報告時の一幕
リーダー「Pod 数を増やせば解決します!」
私「...(Pod ってなにか分かんねぇ...)」
となったので、そもそも Pod って何かをざっくりでいいから理解することにしました。
ざっくり理解
- Pod = 1 つ以上のコンテナをまとめたもの(コンテナたちをまとめて管理するランチボックス)
- コンテナ = Web サーバー(Nginx)や DB(MySQL)を動かすための単位
- Kubernetes = Pod を大量に管理する仕組み(工場の管理システムのようなもの)
📦 コンテナ = お弁当
お弁当(コンテナ)の中には「ご飯」や「おかず(アプリ)」が入っており、それぞれの弁当は独立していて他の弁当と混ざらない。
🎁 Pod = お弁当を入れるランチボックス
1 つ以上のお弁当(コンテナ)を入れるランチボックス(Pod)
- Nginx + ログ収集コンテナを 1 つの Pod に入れる
- アプリ + 監視ツールを 1 つの Pod に入れる
🏭 Kubernetes = 大量のランチボックスを管理する工場
ランチボックス(Pod)を適切に増やしたり減らしたりする
お弁当が腐ったら(コンテナが落ちたら)、新しいのを作る
なんでPod数を増やせば解決する?
ロードバランサーがリクエストを複数の Pod に分散するからと言われています。
ロードバランサーは、来たリクエストを適切に分散して特定の Pod だけに負荷が偏らないようにします。
Kubernetes にはオートスケール機能があるので、Pod を自動で増やすことも可能です。
解決しない場合もある
以下のようなケースでは Pod を増やすだけでは解決しない可能性もあります。
- DB が遅い → データを取得するのが遅いと、Pod を増やしてもスピードアップしない。
- API の処理が重い → そもそも 1 回の処理に時間がかかるなら、Pod を増やしても効果が薄い。
- ネットワークが詰まる → 通信が遅いと、Pod を増やしてもレスポンスが遅いまま。
おわりに
現職のプロジェクトにアサインされて 2 年経過しますが、いまだに技術的な部分は理解できていないところが多いです。
まずは分からないことを GPT に投げて、なにかに例えてもらうことで自身の理解度が高まると考えています。
分からないことをそのままにしない、大事ですね👍️