導入
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 で書いてみます。