Rolling Update
서버를 실제로 서비스할 때 서비스적인 장애와 배포에 있어서 부담감을 최소화하고, 서비스가 중단되지 않도록 배포하는 무중단 배포 방법 중 하나
새 버전을 배포하면서, 새 버전 인스턴스를 하나씩 늘려가고 기존 버전의 인스턴스를 하나식 줄여나가는 방식
새 버전의 인스턴스로 트래픽이 이전되기 전까지 이전 버전과 새 버전의 인스턴스가 동시에 존재할 수 있다는 단점이 있지만, 시스템을 무중단으로 업데이트할 수 있다.
Deployment
RC를 이용한 롤링 업데이트 과정을 자동화해주는 추상화 개념
Rolling Update를 이용하여 인스턴스를 업그레이드하고, 변경 내용을 실행 취소하며, 필요에 따라 변경을 일시 중지/재개하는 기능 제공
배포 정의 파일을 이용해 생성하며, 정의 파일의 내용은 ReplicaSet의 정의 파일과 유사하다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-replicaset
labels:
app: myapp
type: front-end
spec:
template:
# pod 정의 파일의 메타데이터부분부터 옮기면 됨
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
container:
- name: nginx-container
image: nginx
replicas: 3
selector:
matchLabels:
tier: front-end
명령어
# 생성
kubectl create -f deployment-definition.yml
# doployments 조회
kubectl get doployments
# 자동 생성된 replicaset 조회
kubectl get replicaset
# 자동 생성된 pod 조회
kubectl get pods
# 모든 개체 조회
kubectl get all
참고문서