들어가며: Pod를 안정적으로 운영하는 방법
Kubernetes에서 Pod는 일시적으로 종료되거나 재시작될 수 있는 단위입니다.
운영 환경에서는 지정된 수의 Pod가 항상 실행 중이어야 애플리케이션의 가용성을 보장할 수 있습니다.
이를 자동으로 관리하는 리소스가 바로 ReplicaSet입니다.
이번 글에서는 다음 내용을 다룹니다.
- ReplicaSet이란?
- ReplicaSet과 Pod의 관계
- ReplicaSet YAML 작성법
- Pod 개수를 조절하는 방법(스케일링)
- Deployment와의 차이점
목차 (Table of Contents)
- ReplicaSet이란?
- ReplicaSet의 핵심 기능
- ReplicaSet vs Deployment
- ReplicaSet YAML 구조
- ReplicaSet 생성 및 확인
- ReplicaSet 스케일링
- 실습 예제
- FAQ (Answer Engine Optimization)
- 핵심 요약
- 마무리
1. ReplicaSet이란?
ReplicaSet은 지정한 수의 Pod 복제본(Replica)이 항상 실행되도록 보장하는 Kubernetes 리소스입니다.
Pod가 비정상 종료되거나 노드 장애가 발생하면 ReplicaSet이 새로운 Pod를 자동으로 생성합니다.
2. ReplicaSet의 핵심 기능
- 자동 복구(Self-healing): Pod가 죽으면 자동 재생성
- 스케일링:
replicas
값을 조절해 Pod 개수를 동적으로 변경 - 라벨 기반 관리: 특정 라벨을 가진 Pod만 관리
3. ReplicaSet vs Deployment
- ReplicaSet: Pod의 개수를 보장하는 리소스
- Deployment: ReplicaSet을 관리하면서 롤링 업데이트, 버전 관리 등의 고급 기능 제공
즉, 운영 환경에서는 Deployment를 주로 사용하고, ReplicaSet은 Deployment의 하위 개념입니다.
4. ReplicaSet YAML 구조
예시 YAML:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: my-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
주요 필드:
replicas
: 원하는 Pod 복제본 개수selector
: 관리할 Pod 라벨 지정template
: Pod 템플릿 정의
5. ReplicaSet 생성 및 확인
ReplicaSet 생성:
kubectl apply -f replicaset.yaml
상태 확인:
kubectl get rs
kubectl get pods
6. ReplicaSet 스케일링
Pod 개수를 늘리거나 줄이려면:
kubectl scale rs my-replicaset --replicas=5
YAML 파일에서 replicas
값을 변경한 후 kubectl apply
로 적용해도 됩니다.
7. 실습 예제
ReplicaSet 생성
kubectl apply -f replicaset.yaml
Pod 삭제 후 복구 확인
kubectl delete pod <pod-name> kubectl get pods
삭제된 Pod가 다시 자동 생성되는 것을 확인할 수 있습니다.
8. FAQ (Answer Engine Optimization)
Q1. ReplicaSet과 ReplicationController의 차이는?
A. ReplicaSet은 **라벨 셀렉터(matchExpressions)**와 같은 더 유연한 셀렉터를 지원하며, ReplicationController의 개선 버전입니다.
Q2. 왜 Deployment 대신 ReplicaSet만 쓰는 경우가 있나요?
A. 단순히 Pod 수를 보장하는 기능만 필요할 때 ReplicaSet을 직접 사용할 수 있습니다.
Q3. Pod 개수가 지정 개수보다 많은 경우 ReplicaSet은 어떻게 하나요?
A. 필요 이상 Pod가 있으면 ReplicaSet이 초과 Pod를 종료시킵니다.
9. 핵심 요약
개념 | 설명 |
---|---|
ReplicaSet | Pod 복제본 수를 보장하는 리소스 |
스케일링 | replicas 값을 조정하여 Pod 개수 관리 |
Deployment | ReplicaSet을 포함해 롤링 업데이트 기능 제공 |
실습 포인트 | Pod 삭제 시 자동 복구 확인 |
10. 마무리
ReplicaSet은 Kubernetes 애플리케이션의 가용성과 안정성을 유지하기 위한 필수 요소입니다.
'개발 창고 > Server' 카테고리의 다른 글
Kubernetes 레플리카셋(ReplicaSet) 완벽 이해하기 (2) | 2025.08.02 |
---|---|
Kubernetes 리소스 - Deployment 완벽 이해하기 (1) | 2025.08.01 |
네트워킹 - Part4: 네트워크 모델 살펴보기 (2) | 2025.07.30 |
네트워킹 - Part3 정리 (3) | 2025.07.29 |
네트워킹 - Part3: 서비스 타입 알아보기 (1) | 2025.07.28 |