쿠버네티스 - ReplicaSet

목차

참고

ReplicaSet

쿠버네티스에서 실행되는 Pod 의 Replica(복제본) 를 생성하고 지정된 Pod 수를 유지하는 오브젝트

ReplicaSet 은 파드의 개수를 모니터링하고, 파드의 개수가 지정된 개수보다 적으면 새로운 파드를 생성하고, 파드의 개수가 지정된 개수보다 많으면 기존의 파드를 삭제합니다.

ReplicaSet은 특정 파드의 복제본 수를 지정하는 것을 목표로 합니다. 파드를 정의하는 템플릿과 함께 ReplicaSet을 생성하면 ReplicaSet은 해당 템플릿을 기반으로 복제본 파드를 생성합니다. 만약 파드의 복제본 수가 ReplicaSet의 목표값보다 적다면, ReplicaSet은 추가 파드를 생성하여 원하는 복제본 수를 유지하려고 시도합니다. 반대로, 파드의 복제본 수가 ReplicaSet의 목표값보다 많다면, ReplicaSet은 파드를 제거하여 원하는 복제본 수를 줄이려고 시도합니다.

ReplicaSet은 파드의 복제본 수를 모니터링하며, 다양한 상황에서 자동으로 조치를 취합니다. 예를 들어, ReplicaSet이 파드의 수를 감지하고 즉시 새로운 복제본을 생성하여 장애가 발생한 파드를 대체할 수 있습니다. ReplicaSet은 롤링 업데이트(rolling update)를 통해 애플리케이션 버전 업그레이드도 관리할 수 있습니다. 이는 예전 버전의 파드를 점진적으로 제거하고 새 버전의 파드를 생성하여 서비스 중단을 최소화합니다.

일반적으로 ReplicaSet은 디플로이먼트(Deployment)와 함께 사용됩니다. 디플로이먼트는 ReplicaSet을 쉽게 정의하고 관리할 수 있는 리소스입니다. ReplicaSet은 주로 파드의 복제본 수를 관리하는 데 사용되지만, 디플로이먼트는 업데이트 전략, 롤백, 롤링 업데이트 등을 지원하여 애플리케이션 배포 및 관리를 더욱 편리하게 할 수 있습니다.

요약하자면, ReplicaSet은 쿠버네티스에서 파드의 복제본 수를 관리하고 유지하는 기능을 제공하는 오브젝트로, 파드의 가용성과 확장성을 보장합니다.

ReplicaSet 생성

ReplicaSet은 label 을 체크해서 원하는 수의 Pod 이 없으면 새로운 Pod 을 생성합니다. 이를 설정으로 표현하면 다음과 같습니다.

정의 설명
spec.replicas 원하는 Pod의 개수
spec.selector label 체크 조건
spec.template 생성할 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

ReplicatSet 적용 및 확인

kubectl apply -f ReplicaSet.yaml

ReplicatSet 검색

# default Namespace 내의 ReplicatSet 검색
kubectl get replicasets
# 모든 Namespace 내의 ReplicatSet 검색
kubectl get replicasets --all-namespaces
# 단축어를 사용한 검색
kubectl get rs
# 상세한 검색
kubectl get replicasets -o wide

Scale Out

Share