DevOps
[k8s] RollingUpdate
곱창국수
2024. 6. 7. 14:36
개념
kubernetes에서는 무중단 배포방식을 지원한다. 대표적인 무중단 배포방식으로는 Rolling Update라는 방식이 있다.
배포방식을 간략하게 설명하면, 새로운 Pod를 띄우고, 해당 Pod가 정상적으로 배포된 것이 확인되면, 기존 Pod가 하나 줄어드는 방식으로 점진적으로 업데이트된 Pod로 교체하여 무중단을 보장하며 배포하는 방식이다.
실습
다음 yaml을 rolling update 방식으로 배포하자!
rollingupdate.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend
namespace: default
spec:
replicas: 4
selector:
matchLabels:
name: webapp
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
name: webapp
spec:
containers:
- image: (원하는 이미지)
name: simple-webapp
ports:
- containerPort: 8080
protocol: TCP
kubectl apply -f rollingupdate.yaml
배포가 되었고, 새로운 이미지로 upgrade가 진행되는 경우 maxSurge 비율로 새로운 Pod가 추가되고, maxUnavailable 비율로 Pod가 제거된다.
이론적으로 어려운 내용은 아니지만, 무중단 배포는 현재 가장 많이 쓰이고, 흔하게 실무에서 사용되는 내용인 만큼 해당 배포 방식이나 이론에 대해서는 명확하게 알아야한다.