[k8s] 롤아웃 버전업/롤백
Posted by Albert 1Day 18Hour 31Min 41Sec ago [2025-04-18]
기존 nginx 1.24 버전에서 1.25 버전으로 롤아웃 버전업
1. 우선 nginx 1.24pod 생성
albert@k8s-master:~/work/ch09/ex04$ vi deploy-nginx-124.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ex
spec:
replicas: 4
selector:
matchLabels:
app.kubernetes.io/name: web-deploy
template:
metadata:
labels:
app.kubernetes.io/name: web-deploy
spec:
containers:
- name: nginx
image: nginx:1.24
1.24버전 deploy
albert@k8s-master:~/work/ch09/ex04$ kubectl apply -f deploy-nginx-124.yml
deployment.apps/deploy-ex created
deploy 확인
albert@k8s-master:~/work/ch09/ex04$ kubectl describe deployment deploy-ex
Name: deploy-ex
Namespace: default
CreationTimestamp: Fri, 18 Apr 2025 01:52:24 +0000
Labels: <none>
Annotations: deployment.kubernetes.io/revision: 1
Selector: app.kubernetes.io/name=web-deploy
Replicas: 4 desired | 4 updated | 4 total | 4 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app.kubernetes.io/name=web-deploy
Containers:
nginx:
Image: nginx:1.24
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: deploy-ex-54c55bbc54 (4/4 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 24s deployment-controller Scaled up replica set deploy-ex-54c55bbc54 to 4
1.25 버전 deploy yml파일 생성
albert@k8s-master:~/work/ch09/ex04$ vi deploy-nginx-125.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ex
spec:
replicas: 4
selector:
matchLabels:
app.kubernetes.io/name: web-deploy
template:
metadata:
labels:
app.kubernetes.io/name: web-deploy
spec:
containers:
- name: nginx
image: nginx:1.25
기존 deploy-nginx-124.yml 파일과 deploy-nginx-124.yml 차이 확인
albert@k8s-master:~/work/ch09/ex04$ diff deploy-nginx-124.yml deploy-nginx-125.yml
17c17
< image: nginx:1.24
---
> image: nginx:1.25
nginx 1.25 버전 deploy에 적용
albert@k8s-master:~/work/ch09/ex04$ kubectl apply -f deploy-nginx-125.yml
deployment.apps/deploy-ex configured
적용하면 일부 pod들은 종료되고 일부 pod들은 새로 생성되는 부분 확인됨 (순차적으로 버전변경됨)
albert@k8s-master:~/work/ch09/ex04$ kubectl get deploy,rs,po -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/deploy-ex 3/4 3 3 3m21s nginx nginx:1.25 app.kubernetes.io/name=web-deploy
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/deploy-ex-54c55bbc54 2 2 2 3m21s nginx nginx:1.24 app.kubernetes.io/name=web-deploy,pod-template-hash=54c55bbc54
replicaset.apps/deploy-ex-7696c56d99 3 3 1 48s nginx nginx:1.25 app.kubernetes.io/name=web-deploy,pod-template-hash=7696c56d99
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/deploy-ex-54c55bbc54-2bqdq 1/1 Running 0 3m21s 192.168.84.145 k8s-work2<none>
pod/deploy-ex-54c55bbc54-crz6x 1/1 Terminating 0 3m21s 192.168.182.202 k8s-work1<none>
pod/deploy-ex-54c55bbc54-g6gt2 1/1 Running 0 3m21s 192.168.182.201 k8s-work1<none>
pod/deploy-ex-7696c56d99-7pk9w 0/1 ContainerCreating 0 1sk8s-work2 <none>
pod/deploy-ex-7696c56d99-c5r94 0/1 ContainerCreating 0 48sk8s-work2 <none>
pod/deploy-ex-7696c56d99-rjwvj 1/1 Running 0 48s 192.168.182.203 k8s-work1<none>
2분후 다시 확인시 정상적으로 신규 pod들이 생성된걸확인할 수 있고 nginx버전을 확인시 1.25 로 변경 된거 확인할수있다.
albert@k8s-master:~/work/ch09/ex04$ kubectl get deploy,rs,po -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/deploy-ex 4/4 4 4 3m34s nginx nginx:1.25 app.kubernetes.io/name=web-deploy
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/deploy-ex-54c55bbc54 0 0 0 3m34s nginx nginx:1.24 app.kubernetes.io/name=web-deploy,pod-template-hash=54c55bbc54
replicaset.apps/deploy-ex-7696c56d99 4 4 4 61s nginx nginx:1.25 app.kubernetes.io/name=web-deploy,pod-template-hash=7696c56d99
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/deploy-ex-7696c56d99-7pk9w 1/1 Running 0 14s 192.168.84.148 k8s-work2<none>
pod/deploy-ex-7696c56d99-c5r94 1/1 Running 0 61s 192.168.84.147 k8s-work2<none>
pod/deploy-ex-7696c56d99-qwtc6 1/1 Running 0 11s 192.168.182.204 k8s-work1<none>
pod/deploy-ex-7696c56d99-rjwvj 1/1 Running 0 61s 192.168.182.203 k8s-work1<none>
albert@k8s-master:~/work/ch09/ex04$ kubectl describe deployment deploy-ex
Name: deploy-ex
Namespace: default
CreationTimestamp: Fri, 18 Apr 2025 01:52:24 +0000
Labels: <none>
Annotations: deployment.kubernetes.io/revision: 2
Selector: app.kubernetes.io/name=web-deploy
Replicas: 4 desired | 4 updated | 4 total | 4 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app.kubernetes.io/name=web-deploy
Containers:
nginx:
Image: nginx:1.25
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: deploy-ex-54c55bbc54 (0/0 replicas created)
NewReplicaSet: deploy-ex-7696c56d99 (4/4 replicas created)
버전업후 문제가 있을시 롤백필요시
albert@k8s-master:~/work/ch09/ex04$ kubectl rollout undo deployment deploy-ex
deployment.apps/deploy-ex rolled back
롤백후 버전확인
albert@k8s-master:~/work/ch09/ex04$ kubectl describe deployment deploy-ex
Name: deploy-ex
Namespace: default
CreationTimestamp: Fri, 18 Apr 2025 01:52:24 +0000
Labels: <none>
Annotations: deployment.kubernetes.io/revision: 3
Selector: app.kubernetes.io/name=web-deploy
Replicas: 4 desired | 4 updated | 4 total | 4 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app.kubernetes.io/name=web-deploy
Containers:
nginx:
Image: nginx:1.24
끝