Pod
1つ以上のContainerのグループ
同じPod内のContainerはネットワークとストレージを共有する
Kubernetesの最小デプロイ単位
Podは一時的なリソースである
永続的なものではない
必要に応じて気軽に再作成されるイメージを持つmrsekut.icon
Pod単体は直接管理しない
作ろうと思えば直接作れるが、
一般的には、Deployment (k8s) や ReplicaSet などの上位リソースを使って管理する
/mrsekut-book-4873119014/091 (4.2 Pod)
#wip
/mrsekut-book-4798183962/164 (6.1 Podのライフサイクルを知ろう)
https://qiita.com/MahoTakara/items/f5130bb6e9e493c46c6b
https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/explore/explore-intro/
こあたん🇦🇺こあらの学校 (@KoalaEnglish180)
動物によって変わる「群れ」の呼び方
https://gyazo.com/30b9a5847f4652f40ca64a5f1ac40f19
クジラ(Docker)の群れはpodと言うらしい
GPT-4.icon
2. Pod の構成要素
Podは以下のようなリソースを含みます。
1. コンテナ(Containers)
Pod の中に含まれるアプリケーションコンテナ(通常1つだが、複数でも可)。
例えば nginx のようなWebサーバを含める。
2. ネットワーク(Networking)
Pod 内のコンテナは、同じIPアドレス を持つ。
Podごとに個別のIPアドレス が付与され、外部からアクセスできる。
3. ストレージ(Storage)
Pod内のコンテナでボリュームを共有 できる(例:PersistentVolume)。
4. メタデータ
Podの名前、ラベル、アノテーションなど。
---
3. Podのライフサイクル
Pod は 永続的なものではなく、一時的なもの です。
🔹 ライフサイクルのステータス
table:table
ステータス 説明
------------ -------------------------
Pending スケジューリング中(まだ実行されていない)
Running すべてのコンテナが実行中
Succeeded すべてのコンテナが正常終了
Failed コンテナが異常終了
Unknown 状態が不明(ネットワーク障害など)
Pod は障害が発生すると再起動されず、新しいPodが作成 されます(そのため、通常は Deployment (k8s) などの上位リソースで管理)。
---
4. Podの作成方法
Kubernetes では、 kubectl コマンドを使用して Pod を作成できます。
1. 簡単なPodを作成
code:sh
kubectl run mypod --image=nginx
mypod という名前の Pod を作成
nginx イメージを使用
2. マニフェストファイルを使ったPodの定義
YAML 形式で Pod を定義し、適用することもできます。
code:yaml
apiVersion: v1
kind: Pod
metadata:
name: mypod
labels:
app: web
spec:
containers:
name: nginx-container
image: nginx
ports:
containerPort: 80
適用方法
code:sh
kubectl apply -f mypod.yaml