Kubernetes Study Chanllenge Day3

DevRocket·2025년 11월 2일

https://zesty.co/finops-glossary/replicasets-in-kubernetes/


ReplicaSet과 Deployment 핵심 정리

쿠버네티스에서 애플리케이션을 안정적으로 운영하기 위해서는
Pod를 일정 개수로 유지하고, 무중단으로 새 버전을 배포할 수 있는 구조가 필요하다.
이 역할을 담당하는 대표적인 리소스가 바로 ReplicaSetDeployment다.


ReplicaSet이란

ReplicaSet은 지정된 수의 Pod를 항상 일정하게 유지하는 역할을 한다.
즉, 사용자가 원하는 개수(예: 3개)로 Pod를 정의하면,
쿠버네티스가 실제 실행 중인 Pod의 수를 지속적으로 감시하고
부족하면 새로 만들고, 초과하면 제거한다.

이때 ReplicaSet은 Pod의 이름으로 직접 관리하지 않고,
label(라벨)selector(선택자) 를 기준으로 Pod를 식별한다.
즉, 특정 label을 가진 Pod만 ReplicaSet의 관리 대상이 되며,
새로 생성되는 Pod에도 동일한 label이 붙어야 관리 범위 안에 포함된다.

핵심 동작 개념

  • Pod가 의도한 개수보다 줄면 자동으로 새로 생성
  • 반대로 너무 많으면 불필요한 Pod를 제거
  • label과 selector가 일치하는 Pod만 관리 대상이 됨
  • Pod의 이름은 ReplicaSet이 자동으로 생성하며, 사용자는 직접 관리하지 않는다

구조 요약

ReplicaSet은 크게 다음 세 부분으로 구성된다.

항목설명
metadataReplicaSet의 이름 및 라벨 정보
spec.replicas유지할 Pod의 개수
spec.selector어떤 Pod를 관리할지 구분하는 기준(라벨 선택자)
spec.template새로 만들 Pod의 기본 템플릿(라벨, 이미지, 포트 등 정의)

동작 원리 요약

  1. 사용자가 replicas: 3 으로 정의
  2. ReplicaSet이 selector 조건에 맞는 Pod를 감시
  3. Pod가 2개면 → 새 Pod 1개 추가
  4. 4개면 → 1개 삭제
    이 과정을 지속적으로 반복해 지정된 수를 항상 유지한다.

결국 ReplicaSet은 label과 selector를 기준으로 Pod를 그룹화하고,
그 그룹 내에서 지정된 개수를 자동으로 유지하도록 동작한다.


Deployment란

Deployment는 ReplicaSet을 기반으로 버전 관리와 롤링 업데이트 기능을 추가한 리소스다.
즉, ReplicaSet을 직접 다루지 않아도 애플리케이션의 배포·업데이트를 자동으로 처리한다.

Deployment의 역할

  • 새로운 버전의 이미지를 배포할 때,
    기존 Pod를 한꺼번에 삭제하지 않고 순차적으로 교체(무중단 배포).
  • 이전 버전 ReplicaSet의 상태를 기억하기 때문에
    문제가 생기면 언제든 이전 버전으로 롤백 가능.
  • 내부적으로 ReplicaSet을 생성·관리하지만,
    사용자는 Deployment 단위로만 조작한다.

Deployment의 주요 필드

필드의미
metadata.nameDeployment 이름
spec.replicas유지할 Pod 개수
spec.selector.matchLabels관리할 Pod의 라벨 기준
spec.templatePod 템플릿 (컨테이너 이미지, 포트 등)
strategy업데이트 방식 (RollingUpdate 또는 Recreate)

Deployment의 작동 방식

  1. 사용자가 Deployment를 정의하고 kubectl apply 실행
  2. 쿠버네티스가 해당 정의를 바탕으로 ReplicaSet 생성
  3. ReplicaSet이 필요한 수만큼 Pod를 배포
  4. 이미지 버전이 바뀌면 새 ReplicaSet을 만들어 순차적으로 교체 (Rolling Update)
  5. 문제가 생기면 이전 ReplicaSet을 활성화해 복구 (Rollback)

ReplicaSet vs Deployment 비교

구분ReplicaSetDeployment
주요 목적지정된 수의 Pod 유지배포 및 버전 관리
Pod 생성/삭제직접 정의된 템플릿 기준내부 ReplicaSet 자동 관리
업데이트수동 관리Rolling Update 지원
롤백 기능없음이전 버전으로 되돌리기 가능
실제 운영에서의 사용보조 리소스주로 Deployment 사용

0개의 댓글