반응형
Deployment
ReplicaSet을 컨트롤해서 Pod수를 조절
ReplicaSet에서 Rolling Update & Rolling Back 추가
Deployment 생성
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-nginx
spec:
replicas: 2
selector:
matchLabels:
app: webui
template:
metadata:
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
Deployment 스케일링
kubectl scale deployment <deploy_name> --replicas=<갯수>
# 예 : deploy-nginx이름의 deployment replicas를 3으로 스케일아웃하시오.
kubectl scale deployment deploy-nginx --replicas=3
반응형
예제 1
1. webserver 라는 이름으로 아래 정보의 deployment 를 생성하시오
• 이름: webserver
• replicas 수 : 2
• label: app_env_stage=dev
• container name: webserver
• container image: nginx:1.14
2. 다음, webserver Deployment 의 pod 수를 3개로 확장하시오 .
1. yaml 생성
kubectl create deployment webserver --replicas=2 --image=nginx:1.14 --dry-run=client -o yaml > webserver.yaml
2. yaml 수정
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app_env_stage: dev
name: webserver
spec:
replicas: 2
selector:
matchLabels:
app: webserver
template:
metadata:
labels:
app: webserver
spec:
containers:
- image: nginx:1.14
name: webserver
3. apply yaml
kubectl apply -f webserver.yaml
4. replicas 3개로 확장
kubectl scale deployment webserver --replicas=3
Rolling Update / Rollback
- Rolling Update
동작중인 애플리케이션의 서비스 중단 없이 점진적으로 Pod 업데이트
kubectl set image deployment <deploy_name> <container_name>=<new_version_image> --record
- Rollback
동작중인 애플리케이션 서비스 중단 없이 이전 버전으로 되돌리기
# history 확인
kubectl rollout history deployment <deploy_name>
# Rollback
kubectl rollout undo deployment <deploy_name>
kubectl rollout undo deployment <deploy_name> --to-revision=NUMBER
- 롤백하면 히스토리에 쌓이는게 아니고 되돌린 버전이 제일 최신으로 이동 (예제로 확인)
예제 2
예제1번 Deployment 업데이트 후 롤백
- 예제 1번 Deployment를 1.15로 업데이트
- 바로 1.16으로 업데이트
- 히스토리 확인 후 이전버전으로 롤백
1. nginx 1.15로 업데이트
kubectl set image deployment webserver webserver=nginx.1.15 --record
2. nginx 1.16, 1.17로 차례로 업데이트
kubectl set image deployment webserver webserver=nginx.1.16 --record
kubectl set image deployment webserver webserver=nginx.1.17 --record
3. 히스토리 확인
kubectl rollout history deployment webserver
4. 롤벡
kubectl rollout undo deployment webserver --to-revision=2
- 2버전으로 되돌릴 경우, 1.15가 가장 최신으로 이동함.
끝.
Thank you!
반응형
'Tools > Kubernetes' 카테고리의 다른 글
[CKA 도전 시리즈] 9. Configmap / Secret (0) | 2023.01.26 |
---|---|
[CKA 도전 시리즈] 8. Node 관리 / Pod Scheduling (0) | 2023.01.22 |
[CKA 도전 시리즈] 6. Pod (0) | 2023.01.17 |
[CKA 도전 시리즈] 5. RBAC 인증 (1) | 2023.01.13 |
[CKA 도전 시리즈] 4. kubernetes upgrade (0) | 2023.01.12 |