Pod ぽっど
簡単に言うとこんな感じ!
PodはKubernetesで「アプリを動かす最小の入れ物」だよ!コンテナ(アプリの箱)を1個以上まとめて包んだ単位で、KubernetesはこのPod単位でアプリを起動・停止・管理するんだ。お弁当箱の中に「ご飯+おかず」が一緒に入ってるイメージ!
Podとは
Pod(ポッド) は、Kubernetesにおいてアプリケーションをデプロイ(展開)する際の最小単位です。1つ以上のコンテナ(Dockerなどで作ったアプリの実行環境)をひとまとめにしたグループで、これ単位でKubernetesクラスター上に配置・管理されます。
Podの特徴は、同じPod内のコンテナがネットワークアドレス(IPアドレス)とストレージ(ボリューム)を共有する点です。たとえば「Webアプリ本体」と「ログ収集エージェント」を同じPodに入れると、localhost経由で通信でき、ファイルも共有できます。複数のプロセスが密接に連携する場面で非常に便利な設計です。
一方でPodは使い捨て(Ephemeral) が前提です。障害が起きたり、スケールアップの必要が生じたりすると、古いPodを捨てて新しいPodが作られます。「このPodが永遠に動き続ける」という前提は持たないように設計することが重要です。
Podの構造と主要な概念
| 要素 | 説明 |
|---|---|
| コンテナ(Container) | Pod内で実際に動くアプリの実行単位。1Podに複数持てる |
| IPアドレス | Pod単位で1つ割り当てられる。同Pod内のコンテナで共有 |
| ボリューム(Volume) | Pod内のコンテナ間でファイルを共有するための記憶領域 |
| ラベル(Label) | Podに付けるタグ。Service やDeploymentからPodを特定するために使う |
| ライフサイクル | Pending → Running → Succeeded / Failed の順で遷移する |
Pod内のコンテナ構成パターン
Pod内のコンテナは「1つのメインコンテナ+サポート役のサブコンテナ」という形が一般的です。このサブコンテナのことを サイドカー(Sidecar)パターン と呼びます。
| パターン | 構成例 | 用途 |
|---|---|---|
| 単体コンテナ | Webアプリのみ | シンプルな構成 |
| サイドカー | Webアプリ + ログ収集エージェント | ログ・監視の付加 |
| アンバサダー | Webアプリ + プロキシ | 外部通信の仲介 |
| アダプター | Webアプリ + 変換コンテナ | データ形式変換 |
覚え方:「Pod=マメのサヤ」
Podは英語で「豆のさや」という意味です。さやの中に豆(コンテナ)が複数入っているイメージで覚えると忘れません!Kubernetesの名前の由来である「舵手(かじしゅ)」が、さやごとコンテナを運んでいるイメージです。
歴史と背景
- 2013年 — Dockerが登場し、コンテナ技術が一般に普及し始める
- 2014年 — GoogleがKubernetesをオープンソースとして公開。社内システム「Borg」の設計思想をベースに開発。PodはBorgの「task group」に相当する概念
- 2015年 — Kubernetes v1.0リリース。CNCFに寄贈される。Podが基本単位として正式に確立
- 2016〜2017年 — PodをベースにDeployment・ReplicaSet・StatefulSetなどの上位リソースが整備され、直接Podを操作する機会が減っていく
- 2020年代 — マイクロサービス・クラウドネイティブ設計が主流となり、PodはKubernetesの「原子」として業界標準の概念に定着
PodとDeploymentの関係・周辺リソース
実際の運用ではPodを直接作ることはほとんどありません。Podを管理・監視する上位リソース(Deployment や StatefulSet)を使ってPodを間接的に操作するのが一般的です。
主要リソースとPodの使い分け
| リソース | Podとの関係 | 主な用途 |
|---|---|---|
| Deployment | ReplicaSet経由でPodを管理 | WebサーバーなどステートレスなアプリにK |
| ReplicaSet | 指定した数のPodを維持する | Deploymentに内包される形が多い |
| StatefulSet | 順序・固定名付きでPodを管理 | DB・メッセージキューなどデータを持つアプリ |
| DaemonSet | 全ノードに1つずつPodを配置 | ログ収集・監視エージェントなど |
| Job / CronJob | 完了したら終わるPodを管理 | バッチ処理・定期タスク |
関連する規格・RFC
この用語に直接対応するIETF RFCやISO規格はありません。Kubernetesの仕様はCNCF(Cloud Native Computing Foundation)によって管理されており、以下のリソースが公式の定義となります。
| 規格・仕様 | 内容 |
|---|---|
| Kubernetes API仕様(v1 Pod) | PodリソースのAPI定義(公式ドキュメント) |
| OCI Runtime Specification | Pod内で動くコンテナの実行環境仕様(Open Container Initiative) |
関連用語
- Kubernetes — コンテナ化されたアプリの自動管理(オーケストレーション)を行うOSSプラットフォーム
- コンテナ — アプリとその実行環境をまとめてパッケージ化した軽量な仮想化単位
- Docker — コンテナの作成・実行に広く使われるプラットフォーム
- Deployment — PodをReplicaSet経由で管理し、ローリングアップデートを提供するKubernetesリソース
- Service — Podへの安定したネットワークアクセスを提供するKubernetesリソース
- ReplicaSet — 指定した数のPodが常に稼働するよう維持するKubernetesリソース
- Namespace — Kubernetesクラスター内でリソースを論理的に分離する仕組み
- マイクロサービス — アプリを小さな独立したサービス群に分割して開発・運用するアーキテクチャ手法