728x90
📌 쿠버네티스 배포 전략 관련 용어 정리
롤링 업데이트(Rolling Update)
- 롤링 업데이트는 가장 일반적으로 사용되는 배포 전략 중 하나이다.
- 다른 배포 전략인 블루/그린 배포이나 카나리아 배포도 구현 가능하다.
- 이전 버전의 애플리케이션을 점진적으로 제거하고 새로운 버전을 추가함으로써 업데이트를 수행한다.
- 롤링 업데이트를 통해 애플리케이션의 가용성을 유지하면서 안정적인 업데이트를 진행할 수 있다.
- 쿠버네티스에서는 ReplicaSet 또는 Deployment 리소스를 사용하여 롤링 업데이트를 구현할 수 있다.
- yaml 파일에 직접 적용하는 방법은 아래 설명에 있다.
롤아웃(Rollout)
- 애플리케이션의 업데이트나 변경 사항을 수행하는 과정을 말한다.
- 롤아웃을 통해 애플리케이션의 배포를 관리하고, 이전 버전과 새로운 버전 간의 전환을 원활하게 수행할 수 있다.
📜 디플로이먼트 예시 yaml 파일
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tier: backend
name: my-deployment
spec:
replicas: 4
selector:
matchLabels:
tier: backend
strategy: # 아래 설명
type: RollingUpdate # 아래 설명
rollingUpdate: # 아래 설명
maxUnavailiable: 1 # 아래 설명
maxSurge: 2 # 아래 설명
template:
metadata:
labels:
tier: backend
spec:
containers:
- image: my-springboot:0.1
name: my-springboot
ports:
- containerPort: 8080
strategy
- strategy 속성을 사용하여 Deployment의 배포 전략을 지정할 수 있다.
type
- 배포 전략의 종류를 지정한다.
- 주로 "Recreate"와 "RollingUpdate" 두 가지 유형이 사용된다.
- Recreate
- 새로운 버전의 애플리케이션을 배포하기 위해 이전 버전의 애플리케이션을 모두 삭제하고 새로운 버전을 생성한다.
- RollingUpdate
- 롤링 업데이트 전략을 사용하여 새로운 버전의 애플리케이션을 점진적으로 배포한다.
- 이전 버전의 애플리케이션을 제거하고 새로운 버전을 추가하는 과정을 반복하여 업데이트를 수행한다.
rollingUpdate
- "RollingUpdate" 전략을 선택한 경우 이 속성을 사용하여 롤링 업데이트의 세부 사항을 지정할 수 있다.
maxUnavailable
- 업데이트 중 제거할 Pod의 최대 수를 지정한다.
- %로 적용 가능하다.
maxSurge
- 업데이트 중 추가로 생성할 수 있는 Pod의 최대 수를 지정한다.
- %로 적용 가능하다.
🛠️ 명령어로 업데이트하기
디플로이먼트 최초 생성
kubectl create -f <yaml 파일명>.yml
- 디플로이먼트를 최초로 생성한다.
명령형 접근으로 이미지 업데이트
kubectl set image deployment <deployment name> <containder name>=<image name>:<version>
- 이미 띄워져 있는 deployment 이미지를 교체한다.
- 최초 실행할 때 사용한 yml 파일에는 어떠한 변화도 주지 않는다.
선언형 접근으로 이미지 업데이트
kubectl apply -f <yaml 파일명>.yml
- 직접 yml 파일에서 변경된 이미지의 버전 태그로 수정 후 업데이트하는 방식이다.
업데이트 여부 확인하기
kubectl rollout status deployment/<yaml 파일에 명시한 Deployment Name>
kubectl rollout status deployment/my-deployment # example 아래 명령어도 동일
- 해당 디플로이먼트 객체의 상태를 확인하여 업데이트가 정상적으로 진행되었는지 체크할 수 있다.
kubectl rollout history deployment/my-deployment
- 해당 디플로이먼트 객체의 히스토리를 보는 것이다.
업데이트 롤백하기
kubectl rollout undo deployment/my-deployment --to-revision=2
- 이전 버전으로 롤백된다.
- --to-revision을 사용하면 특정 버전으로 롤백할 수 있다.
참고
뤼튼
Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests
https://velog.io/@_zero_/쿠버네티스-배포-전략RollingUpdate-BlueGreen-Canary-및-롤백Rollback-개념과-설정
728x90
'[DevOps] > Kubernetes' 카테고리의 다른 글
| kubernetes - Node Update(drain, cordon, uncordon) (0) | 2024.01.20 |
|---|---|
| kubernetes - initContainer : 초기화를 위한 컨테이너 (0) | 2024.01.17 |
| kubernetes - DaemonSet, Static Pod (0) | 2023.12.04 |
| 쿠버네티스 CKA 응시료 할인받고 접수하기(Cyber Monday 50% 할인) (2) | 2023.12.03 |
| kubernetes - 노드와 파드 간 상호작용 제어 기술(Taint, Toleration, Node Selector, Node Affinity) (2) | 2023.11.23 |