📦
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に投げて、なにかに例えてもらうことで自身の理解度が高まると考えています。
分からないことをそのままにしない、大事ですね👍️
Discussion