- when use
- 여러개의 인스턴스, pod 가있을 때, pod 에 있는 도커 이미지를 모든 인스턴스에서 업데이트 하고 싶다.
- 한번에 업그레이드가 아니라, 하나하나 순차적으로 업데이트 = 롤링 업데이트
- 업데이트 하다가, 오류가 발생할시, 롤백하고,수정 후 다시 롤아웃 시작을 deployment 기능을 이용해 할 수 있다.
apiVersion: apps/v1
kind: Deployment # 이게 중요
metadata:
name: myapp-deployment
labels:
app: myapp
type: front-end
spec:
template:
metadata:
name: myapp-pod
lables:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
replicas: 3
selector:
matchLables:
type: front-end
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
myapp-deployment 3 3 3 3 21s
# 자동으로 replica set 이 만들어짐.
- deployment 으로 생성된, replicaset 확인
$ kubectl get replicaset
NAME DESIRED CURRENT READY AGE
myapp-deployment-432dsf 3 3 3 21s
- replicaset 은 궁극적으로 POD 를 만든다.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
myapp-deployment-432dsf-1 1/1 RUNNING 0 21s
myapp-deployment-432dsf-2 1/1 RUNNING 0 21s
myapp-deployment-432dsf-3 1/1 RUNNING 0 21s
$ kubectl get all
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
myapp-deployment 3 3 3 3 21s
NAME DESIRED CURRENT READY AGE
myapp-deployment-432dsf 3 3 3 21s
NAME READY STATUS RESTARTS AGE
myapp-deployment-432dsf-1 1/1 RUNNING 0 21s
myapp-deployment-432dsf-2 1/1 RUNNING 0 21s
myapp-deployment-432dsf-3 1/1 RUNNING 0 21s