【ぽっど】

Pod(Kubernetes) とは?

💡 Kubernetesでコンテナを包む「最小の入れ物」
📌 このページのポイント
Node Pod アプリ コンテナ1 サイドカー コンテナ2 ログ収集 コンテナ3 localhost localhost 共有ネットワーク(同一IP) 10.244.1.5 共有ボリューム /data(全コンテナからアクセス可)
Kubernetes Podの構造
ひよこ ひよこ

PodってコンテナをそのままKubernetesで動かせばいいんじゃないの?

ペンギン先生 ペンギン先生

Kubernetesコンテナを直接管理するのではなく、Podという単位で管理するんだ。Podがある理由は「密接に連携する複数のコンテナをまとめたい」ケースがあるから。例えばWebサーバーとログ収集コンテナをセットで動かすときはPodに入れると便利だよ。

ひよこ ひよこ

1つのPodに2つのコンテナを入れるとどんなメリットがあるの?

ペンギン先生 ペンギン先生

同じPodのコンテナlocalhostで通信できてストレージも共有できるんだ。メインのアプリコンテナとサイドカーコンテナ(ログ送信・設定注入など補助的な役割)のパターンがよく使われるよ。

ひよこ ひよこ

PodのIPって再起動したら変わるの?

ペンギン先生 ペンギン先生

そう、PodはIPが固定されていない。Podが再起動したり別のノードに移動するとIPが変わる。だからPodを直接IPで呼ぶのではなく、固定のエンドポイントを提供する「Service」を経由してアクセスするのが基本的なパターンなんだ。

ひよこ ひよこ

PodのQoS(Quality of Service)クラスって何?evictionの順序に関係するって聞いたんだけど。

ペンギン先生 ペンギン先生

これはKubernetesを深く使い始めた人でも混乱しやすいポイントで、ノードのメモリが足りなくなったとき「どのPodを先に追い出すか」の優先度がQoSクラスで決まるんだ。BestEffort(リソース制限なし)が一番先に追い出され、Burstable(requestとlimitが違う)が次、Guaranteed(requestとlimitが同じ)が最後に残る。設定する意識なくても自動でクラスが決まるから、メモリ不足でPodが突然消えるという事故が起きたときに「あのPodにはrequestを設定していなかった」という原因につながることがあるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Pod」って出てきたら「Kubernetesコンテナを動かす最小のグループ単位のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Pod」 = 英語でサヤ・集まり(エンドウ豆のさやなど)
💬 豆がさやの中にまとまって入っている様子が、コンテナをまとめて入れるPodのイメージに重なるよ
← 用語集にもどる