📌 Deployments
- 제품 환경에서 응용 프로그램을 배포하기 위한 Controller
❕예시
- 웹서버가 운영환경에서 배포 되어야 함
- 한 개가 아니라 여러 개의 웹 서버 인스턴스가 실행됨
- Docker Hub에 새로운 버전의 응용 프로그램이 상용화 될때 무중단 배포
- 한번에 전체 인스턴스를 업그레이드 하는게 아니라 하나씩 업데이트
- 롤링 업데이트
- 업데이트 중 에러가 발생해 업그레이드를 취소하는 것도 가능
- 롤 아웃
💡Architecture
- Deployment가 ReplicaSet보다 더 포괄적인 구조
- 즉, Deployment는 ReplicaSet의 기능과 개념을 포함함
📋 Definition
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
labels:
tier: frontend
spec:
template:
metadata:
name: myapp-pod
labels:
tier: frontend
spec:
containers:
- name: nginx
image: nginx
replication: 3
selector:
matchLabels:
tier: frontend
⌨️ Command
$ kubectl create -f deployment-definition.yaml
$ kubectl get deployments
$ kubectl get replicaset // deployment가 replicaSet을 내포하고 있는 개념이라 조회 가능
$ kubectl get pods
$ kubectl get all // 쿠버네티스가 생성한 모든 object를 조회