【ぽっど】

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のイメージに重なるよ
← 用語集にもどる