Kubernetes에서 deploy
, rs
, ds
, sts
는 각각 Deployment, ReplicaSet, DaemonSet, StatefulSet을 나타내는 약어입니다. 이들은 다양한 애플리케이션 워크로드를 관리하기 위해 사용되는 주요 리소스 유형으로, 각 리소스는 고유한 목적과 기능을 가지고 있습니다.
1. Deployment (deploy)
설명:
- Deployment는 애플리케이션을 배포하고 관리하는 데 가장 일반적으로 사용되는 리소스입니다. 주로 무상태 애플리케이션(stateless applications)에 적합하며, 원하는 수의 복제본을 유지하고 트래픽을 분산할 수 있습니다.
주요 기능:
- 스케일링: 원하는 수만큼의 Pod를 손쉽게 늘리거나 줄일 수 있습니다.
- 롤링 업데이트 및 롤백: 중단 없이 애플리케이션을 업데이트하고, 문제가 발생하면 롤백할 수 있습니다.
- 자동 복구: Pod에 장애가 발생하면 자동으로 재시작되거나 대체됩니다.
사용 사례:
- 웹 서버, API 서버 같은 무상태 애플리케이션에 적합합니다.
2. ReplicaSet (rs)
설명:
- ReplicaSet은 특정 수의 Pod가 항상 실행되도록 보장하는 리소스입니다.
Deployment
가 ReplicaSet을 관리하고 생성하여 애플리케이션을 배포하는데, ReplicaSet은 Pod의 정확한 복제본 수를 유지하는 역할을 합니다. 일반적으로 직접 사용하는 경우는 드물며, Deployment와 함께 사용됩니다.
주요 기능:
- 지속적인 복제본 유지: 정의된 수의 Pod가 실행되도록 보장하여, Pod가 죽으면 자동으로 새로운 Pod를 생성합니다.
사용 사례:
- Deployment와 함께 사용되어 무상태 애플리케이션의 안정적인 복제본 수를 유지합니다.
3. DaemonSet (ds)
설명:
- DaemonSet은 클러스터 내의 각 노드마다 하나의 Pod가 실행되도록 보장하는 리소스입니다. 각 노드에 필요한 시스템 서비스나 에이전트를 배포할 때 주로 사용됩니다.
주요 기능:
- 모든 노드에 단일 Pod: 클러스터 내 모든 노드에 특정 Pod를 실행하도록 하며, 새 노드가 추가되면 자동으로 해당 노드에 Pod를 생성합니다.
- 자동 업데이트 및 유지: 노드 수가 변경되더라도 자동으로 관리하여 모든 노드에 Pod가 실행되도록 합니다.
사용 사례:
- 로그 수집기, 모니터링 에이전트와 같은 시스템 에이전트에 적합합니다.
4. StatefulSet (sts)
설명:
- StatefulSet은 각 Pod가 고유한 ID와 영구 스토리지를 가지며, 정해진 순서대로 생성 및 종료되는 등 상태가 필요한 애플리케이션을 배포하고 관리하기 위해 사용됩니다.
주요 기능:
- 고유한 네트워크 ID: 각 Pod가 고유한 네트워크 ID를 가지고 생성 순서에 따라 정렬됩니다.
- 고정된 스토리지 제공: 각 Pod는 고유의 영구 스토리지 볼륨을 가지며, Pod가 재시작해도 데이터가 유지됩니다.
- 순차적 배포 및 종료: 안정성을 위해 Pod를 순차적으로 생성 및 종료합니다.
사용 사례:
- 데이터베이스, 분산 시스템 등 상태 저장 애플리케이션에 적합합니다.
요약
- Deployment (deploy): 무상태 애플리케이션 배포 및 관리, 롤링 업데이트, 롤백 가능.
- ReplicaSet (rs): Pod 복제본 수 유지, Deployment가 생성 및 관리.
- DaemonSet (ds): 각 노드마다 하나의 Pod 실행, 로그 수집 및 모니터링 같은 시스템 서비스에 적합.
- StatefulSet (sts): 고유 ID와 스토리지가 필요한 상태 저장 애플리케이션에 적합하며, 순차적 배포 및 종료가 필요함.
각 리소스는 애플리케이션의 특성과 필요에 맞추어 선택적으로 사용됩니다.
'IT > kubernetes[k8s]' 카테고리의 다른 글
쿠버네티스 서비스(Service) (0) | 2024.11.13 |
---|---|
쿠버네티스 - 노드 (1) | 2024.11.08 |
클러스터의 개념 (0) | 2024.11.07 |
쿠버네티스 구성 요소 (1) | 2024.10.21 |
Kubernetes 소개 (8) | 2024.10.21 |