本文へスキップ
BecomeCoder

Kubernetesコース · 第2章 Pod ― 最小の実行単位 · レッスン7

Podとは ― コンテナを包む最小単位

ローカル実施

導入

Kubernetes に「コンテナを1個動かして」と頼むと、実際にはコンテナがそのまま置かれるのではなく、Pod という薄い包みに包まれて動きます。この Pod こそ、Kubernetes がスケジュールし管理する最小の単位です。

説明

Pod(ポッド) とは、1つ以上のコンテナをまとめて包む、実行の最小単位です。Pod の名前は「エンドウ豆のさや(pod)」に由来し、さやの中に豆(コンテナ)が入っているイメージです。

1つの Pod の中に入ったコンテナたちは、次を共有します。

  • ネットワーク(同一IP … 同じ Pod のコンテナは同じIPアドレスを持ち、互いに localhost(自分自身)で通信できる。
  • ボリューム(storage) … 同じ保存領域をマウントして、ファイルを受け渡しできる。
graph TB
    subgraph pod["Pod(1つのIPを共有)"]
        C1[コンテナ<br/>アプリ本体]
        V[(共有ボリューム)]
        C1 --- V
    end
    N[ノード] --> pod

重要なのは、多くの場合 1つの Pod には 1つのコンテナ だけを入れる、という点です。「1Pod=1アプリ」が基本形と考えて構いません。では、なぜコンテナを直接扱わず Pod という一段の包みを挟むのか。それは、複数のコンテナを「同じ場所で・同じIPで・密に協力させたい」ケース(後述のサイドカー)に対応するためと、Kubernetes が管理する単位を統一するためです。

まずは「Kubernetes が配置・再起動・監視する対象は Pod である」と覚えてください。次のレッスンで、その Pod を実際に YAML で書いてみます。