ReplicaSet 란
Pod의 복제본을 관리하고 유지하는 역할
ReplicaSet은 지정된 수의 파드 복제본을 유지하여 애플리케이션의 가용성을 보장한다.
만약 하나의 파드가 실패하거나 삭제되면, ReplicaSet은 새로운 파드를 생성하여 이 수를 유지시킵니다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
- Label이 app:nginx로 3개를 생성하고 유지합니다.
- 파드의 복제본을 유지하는데 사용, 업데이트 및 롤백 기능이 없음
Deployment란
ReplicaSet (→ Pod)을 관리하고, 애플리케이션의 버전 업데이트와 롤백, 롤아웃 전략을 정의합니다.
디플로이먼트를 통해 애플리케이션의 새로운 버전을 손쉽게 배포하고, 필요에 따라 이전 버전으로 롤백할 수 있습니다.
처리 과정
Deployement → ReplicaSet → Pod 관리

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
revisionHistoryLimit: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
ReplicaSet과 Deployment의 주요 차이점
- 목적과 기능
- ReplicaSet: 파드의 복제본을 관리하여 설정된 수의 파드가 항상 실행되도록 합니다.
- Deployment: 애플리케이션의 배포, 업그레이드, 롤백을 관리합니다. ReplicaSet을 생성하고 관리합니다.
- 업데이트와 롤백
- ReplicaSet: 애플리케이션의 업데이트나 롤백을 직접적으로 처리하지 않습니다.
- Deployement: 애플리케이션의 새로운 버전을 배포하고, 실패 시 이전 버전으로 롤백할 수 있습니다. (버전 관리 기능이 있음)
결론
ReplicaSet은 파드의 복제본을 관리하고 유지하는 역할을 수행
Deployment는 ReplicaSet을 활용하여 파드 복제본 관리와 애플리케이션의 배포와 업데이트를 처리합니다.
'Infra > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 컨테이너 및 파드에 메모리, CPU 할당 - 리소스 제한을 안하면 생기는 문제 (2) | 2024.10.03 |
---|---|
[K8S] Kubernetes Job, CronJob 이해 및 활용법 (0) | 2024.09.27 |
[Kubernets] 쿠버네티스 주요 특징 4가지 - Ingress, Service 로드밸런싱 차이 이해하기 (0) | 2024.07.25 |
GitOps 기반 Kubernetes 배포 자동화: Argo CD & GitHub 활용법 (0) | 2024.05.20 |
[K8S] Kubernetes deployment, service.yaml 코드 분석 및 작성하기 - 쿠버네티스 yaml (0) | 2024.05.20 |
ReplicaSet 란
Pod의 복제본을 관리하고 유지하는 역할
ReplicaSet은 지정된 수의 파드 복제본을 유지하여 애플리케이션의 가용성을 보장한다.
만약 하나의 파드가 실패하거나 삭제되면, ReplicaSet은 새로운 파드를 생성하여 이 수를 유지시킵니다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
- Label이 app:nginx로 3개를 생성하고 유지합니다.
- 파드의 복제본을 유지하는데 사용, 업데이트 및 롤백 기능이 없음
Deployment란
ReplicaSet (→ Pod)을 관리하고, 애플리케이션의 버전 업데이트와 롤백, 롤아웃 전략을 정의합니다.
디플로이먼트를 통해 애플리케이션의 새로운 버전을 손쉽게 배포하고, 필요에 따라 이전 버전으로 롤백할 수 있습니다.
처리 과정
Deployement → ReplicaSet → Pod 관리

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
revisionHistoryLimit: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
ReplicaSet과 Deployment의 주요 차이점
- 목적과 기능
- ReplicaSet: 파드의 복제본을 관리하여 설정된 수의 파드가 항상 실행되도록 합니다.
- Deployment: 애플리케이션의 배포, 업그레이드, 롤백을 관리합니다. ReplicaSet을 생성하고 관리합니다.
- 업데이트와 롤백
- ReplicaSet: 애플리케이션의 업데이트나 롤백을 직접적으로 처리하지 않습니다.
- Deployement: 애플리케이션의 새로운 버전을 배포하고, 실패 시 이전 버전으로 롤백할 수 있습니다. (버전 관리 기능이 있음)
결론
ReplicaSet은 파드의 복제본을 관리하고 유지하는 역할을 수행
Deployment는 ReplicaSet을 활용하여 파드 복제본 관리와 애플리케이션의 배포와 업데이트를 처리합니다.
'Infra > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 컨테이너 및 파드에 메모리, CPU 할당 - 리소스 제한을 안하면 생기는 문제 (2) | 2024.10.03 |
---|---|
[K8S] Kubernetes Job, CronJob 이해 및 활용법 (0) | 2024.09.27 |
[Kubernets] 쿠버네티스 주요 특징 4가지 - Ingress, Service 로드밸런싱 차이 이해하기 (0) | 2024.07.25 |
GitOps 기반 Kubernetes 배포 자동화: Argo CD & GitHub 활용법 (0) | 2024.05.20 |
[K8S] Kubernetes deployment, service.yaml 코드 분석 및 작성하기 - 쿠버네티스 yaml (0) | 2024.05.20 |