Pod은 자동으로 복구되지 않습니다. 하지만 Replicaset은 Pod을 정해진 수만큼 복제하고 관리할 수 있습니다.(Pod이 죽어도 자동으로 복제를 해준다.)
spec.replicas
: 원하는 Pod의 개수 설정spec.selector
: label 체크 조건(어떤 label을 가진 Pod을 찾을 건지 명시)spec.template
: 만약 조건에 맞는 Pod이 없다면 만들 Pod에 대한 조건을 명시apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: echo-rs
spec:
replicas: 1
selector:
matchLabels:
app: echo
tier: app
template:
metadata:
labels:
app: echo
tier: app
spec:
containers:
- name: echo
image: ghcr.io/subicura/echo:v1
kubectl apply -f [yaml 파일]
kubectl label pod/[pod 이름] app-
app-
를 이용하여 app
label을 삭제하였기 때문에 조건에 맞는 새로운 Pod이 생성된다.kubectl label pod/[pod 이름] app=echo
기존에 생성된 Pod에 app
label을 추가하면서 조건에 맞는 Pod이 두개가 되었기 때문에 다른 한개(기존에 사용되던 Pod)를 제거한다.ReplicaSet Controller
scheduler
철저한 작업의 분할