ReplicaSet
指定した数の Pod を常に維持 するためのcontroller
ユーザが直接触ることはなく、Deployment (k8s)が内部的に使う
/mrsekut-book-4873119014/091 (4.2 Pod)
#wip
GPT-4.icon
ReplicaSet は Kubernetes(K8s)のリソースの一つで、です。
1. ReplicaSet の役割
ReplicaSet の主な役割は Pod のレプリカ(複製)を管理 することです。
具体的には、次のようなことを自動で行います。
✅ 指定した数の Pod を常に維持
✅ Pod が消えたり落ちたら 自動的に再作成
✅ Pod が増えすぎたら 不要なものを削除
3. ReplicaSet の仕組み
ReplicaSet は ラベルセレクター(Label Selector) を使って 管理対象の Pod を識別 します。
動作の流れ
1. ラベルが一致する Pod を探す
ReplicaSet は、特定のラベル(例: app=web)を持つ Pod を管理する。
2. Pod の数をチェック
指定した数(replicas)よりも多い場合 → 余分な Pod を削除
指定した数よりも少ない場合 → 不足分の Pod を作成
---
4. ReplicaSet の作成
YAML を使って ReplicaSet を定義
以下は、3つの nginx Pod を管理する ReplicaSet の例です。
code:yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: my-replicaset
spec:
replicas: 3 # Pod を 3 つ維持
selector:
matchLabels:
app: my-app # このラベルを持つ Pod を管理
template:
metadata:
labels:
app: my-app # Pod のラベル
spec:
containers:
name: nginx
image: nginx
ports:
containerPort: 80
適用コマンド
$ kubectl apply -f replicaset.yaml
Pod の確認
$ kubectl get pods
5. ReplicaSet の動作確認
Pod を削除してみる
code:sh
kubectl delete pod <POD_NAME>
❗ ReplicaSet は すぐに新しい Pod を作成して補充 します。
Pod をスケールしてみる
code:sh
kubectl scale replicaset my-replicaset --replicas=5
🔹 Pod の数が5に増えることを確認
code:sh
kubectl get pods