반응형
그저 사이드 플젝에서 한 번 써보고 싶어서... 쿠버네티스를 공부를 하면서 정리하는 글입니다.
Deployment
Deployment는 Replicaset의 상위 오브젝트이기 때문에 Deployment를 생성하면 해당 Deployment에 대응하는 Replicaset도 함께 생성된다. 따라서 Deployment를 사용하면 Pod, Replicaset을 직접 생성할 필요가 없다.
Deployment를 사용하는 이유?
쿠버네티스는 그럼 왜 Replicaset을 그대로 사용하지 않고, 굳이 상위 개념인 Deployment를 사용해서 간접적으로 Replicaset을 생성하는 것 일까?
Deployment를 사용하는 핵심적인 이유는 애플리케이션의 업데이트와 배포를 더욱 편하기 만들기 위해서이다.
Deployment는 이름처럼 컨테이너 애플리케이션을 배포하고 관리하는 역할을 담당한다.
예를 들어서 애플리케이션을 버전 업데이트할 때 Replicaset의 변경 사항을 저장하는 Revision을 남겨 롤백을 가능하게 해주고, 무중단 서비스를 위해 Pod의 롤링 업데이트의 전략을 지정할 수도 있습니다. (배포 전략은 아래에서 확인)
Deployment을 이용한 다양한 배포 전략
각 배포 전략은 아래 링크를 참고.
1. Recreate
- 가장 단순한 배포 전략으로, 기존 버전의 파드를 모두 삭제한 다음 새로운 버전의 파드를 생성하는 방법.
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-1
spec:
selector:
matchLabels:
type: app
replicas: 2
strategy:
type: Recreate
template:
metadata:
labels:
type: app
spec:
containers:
- name: container
image: ...
2. Rolling Update
- 기존 버전의 서버를 하나씩 죽이고 새로운 버전의 서버를 하나씩 띄우면서 순차적으로 교체하는 방법이다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-1
spec:
selector:
matchLabels:
type: app
replicas: 2
strategy:
type: RollingUpdate
template:
metadata:
labels:
type: app
spec:
containers:
- name: container
image: ...
출처: www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88,
도서) 시작하세요! 도커/쿠버네티스
반응형
'DevOps & SRE > Docker & kubernetes' 카테고리의 다른 글
[쿠버네티스 공부] Namespace (0) | 2021.02.21 |
---|---|
[쿠버네티스 공부] ConfigMap, Secret (0) | 2021.02.18 |
[쿠버네티스 공부] Replicaset은 무엇일까? (0) | 2021.02.11 |
[쿠버네티스 공부] Controller는 어떤 역할을 할까? (0) | 2021.02.11 |
[쿠버네티스 공부] Volume의 종류 (0) | 2021.02.11 |