Deployment
- 가장 일반적이고 권장되는 컨트롤러
- ReplicaSet을 관리하면서 자동으로 Pod를 생성/복제/업데이트
- 롤링 업데이트, 롤백, 스케일링 지원
- 웹 서비스 등의 무상태(stateless) 애플리케이션에 적합
정의
Deployment는 Pod를 제어하고 관리하는 상위 리소스입니다.
복수 개의 Pod를 생성하고 상태를 유지합니다.
배포, 롤백, 업데이트 등 자동화된 운영 기능 제공
주요 특징
자동 복구: Pod가 죽으면 새 Pod를 자동으로 생성합니다.
스케일링: 원하는 개수의 복제본(replicas) 유지 가능
롤링 업데이트 / 롤백 지원
실제 운영 환경에 사용
예시 (deployment.yaml)
apiVersion: apps/v1
kind: Deployment
metadata: // deployment의 이름을 설정
name: nginx-deployment
spec:
replicas: 3 // 파드의 개수를 몇개 유지할지 설정
selector: // 어떤 레이블의 파드를 선택하여 관리할지에 대한 설정
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
- spec.selector.matchLabels 와 template.metadata.labels 과 일치하여야 한다.