【ぽっど】

Pod(Kubernetes) とは?

💡 Kubernetesの「最小の実行単位」
📌 このページのポイント
Pod ― Kubernetesのコンテナ管理単位 Node(ノード) Pod A アプリ コンテナ サイドカー コンテナ 共有ボリューム / ネットワーク (localhost) Pod B Web コンテナ DB コンテナ 共有ボリューム / ネットワーク (localhost) 最小デプロイ単位 Pod単位でスケール IPアドレス共有 Pod内はlocalhost通信 ライフサイクル共有 一緒に起動・停止
Kubernetes Podのコンテナ管理単位のイメージ
ひよこ ひよこ

コンテナPodの違いは?

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

コンテナは1つのプロセスを隔離した実行環境。PodKubernetesが管理する1つ以上のコンテナのグループ。Pod内のコンテナIPアドレスとストレージボリュームを共有する。ほとんどの場合1Pod=1コンテナだけど、ログ収集のサイドカーコンテナを同じPodに入れるパターンもあるんだよ

ひよこ ひよこ

Podは直接作るもの?

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

Podを直接作ることもできるけど、通常はDeployment経由で作る。Deploymentは「このPodを3つ維持して」と宣言し、ReplicaSetが実際にPodを作成・管理する。Pod単体だと障害時に自動復旧されないけど、Deploymentなら自動で再作成される。Pod単体の作成はデバッグ時くらいだよ

ひよこ ひよこ

Pod間の通信は?

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

Pod内のコンテナlocalhostで通信。Pod間はServiceリソースを介して通信する。各PodにはクラスタIPが割り当てられるけど、Podは一時的でIPが変わるから、Service名(DNS名)で通信するのが基本。my-service.my-namespace.svc.cluster.localのようなFQDN名前解決されるよ

ひよこ ひよこ

Podのライフサイクルは?

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

Pending(スケジュール待ち)→Running(実行中)→Succeeded/Failed(完了)→Unknown。Probeで状態を監視する。Liveness Probe(生存確認、失敗したら再起動)、Readiness Probe(受付可能確認、失敗したらServiceから外す)、Startup Probe(起動完了確認)の3種類。ヘルスチェックの設定は安定運用の鍵だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Pod」って出てきたら「Kubernetesコンテナをまとめる最小の実行単位」と思えればだいたいOK!
📖 おまけ:英語の意味
「Pod」 = さや・鞘(クジラやイルカの群れの意味も)
💬 Kubernetesのロゴが舵輪で、PodはDocker(コンテナ船)のクジラに関連した命名だよ
← 用語集にもどる