728x90
๐ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐฐํฌ ์ ๋ต ๊ด๋ จ ์ฉ์ด ์ ๋ฆฌ
๋กค๋ง ์ ๋ฐ์ดํธ(Rolling Update)
- ๋กค๋ง ์
๋ฐ์ดํธ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฐํฌ ์ ๋ต ์ค ํ๋์ด๋ค.
- ๋ค๋ฅธ ๋ฐฐํฌ ์ ๋ต์ธ ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐฐํฌ์ด๋ ์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ ๊ตฌํ ๊ฐ๋ฅํ๋ค.
- ์ด์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ง์ ์ผ๋ก ์ ๊ฑฐํ๊ณ ์๋ก์ด ๋ฒ์ ์ ์ถ๊ฐํจ์ผ๋ก์จ ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ค.
- ๋กค๋ง ์ ๋ฐ์ดํธ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฉ์ฑ์ ์ ์งํ๋ฉด์ ์์ ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ์งํํ ์ ์๋ค.
- ์ฟ ๋ฒ๋คํฐ์ค์์๋ ReplicaSet ๋๋ Deployment ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋กค๋ง ์ ๋ฐ์ดํธ๋ฅผ ๊ตฌํํ ์ ์๋ค.
- yaml ํ์ผ์ ์ง์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ ์ค๋ช ์ ์๋ค.
๋กค์์(Rollout)
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ดํธ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ํํ๋ ๊ณผ์ ์ ๋งํ๋ค.
- ๋กค์์์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ด์ ๋ฒ์ ๊ณผ ์๋ก์ด ๋ฒ์ ๊ฐ์ ์ ํ์ ์ํํ๊ฒ ์ํํ ์ ์๋ค.
๐ ๋ํ๋ก์ด๋จผํธ ์์ yaml ํ์ผ
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tier: backend
name: my-deployment
spec:
replicas: 4
selector:
matchLabels:
tier: backend
strategy: # ์๋ ์ค๋ช
type: RollingUpdate # ์๋ ์ค๋ช
rollingUpdate: # ์๋ ์ค๋ช
maxUnavailiable: 1 # ์๋ ์ค๋ช
maxSurge: 2 # ์๋ ์ค๋ช
template:
metadata:
labels:
tier: backend
spec:
containers:
- image: my-springboot:0.1
name: my-springboot
ports:
- containerPort: 8080
strategy
- strategy ์์ฑ์ ์ฌ์ฉํ์ฌ Deployment์ ๋ฐฐํฌ ์ ๋ต์ ์ง์ ํ ์ ์๋ค.
type
- ๋ฐฐํฌ ์ ๋ต์ ์ข ๋ฅ๋ฅผ ์ง์ ํ๋ค.
- ์ฃผ๋ก "Recreate"์ "RollingUpdate" ๋ ๊ฐ์ง ์ ํ์ด ์ฌ์ฉ๋๋ค.
- Recreate
- ์๋ก์ด ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ธฐ ์ํด ์ด์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ญ์ ํ๊ณ ์๋ก์ด ๋ฒ์ ์ ์์ฑํ๋ค.
- RollingUpdate
- ๋กค๋ง ์ ๋ฐ์ดํธ ์ ๋ต์ ์ฌ์ฉํ์ฌ ์๋ก์ด ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ง์ ์ผ๋ก ๋ฐฐํฌํ๋ค.
- ์ด์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ฑฐํ๊ณ ์๋ก์ด ๋ฒ์ ์ ์ถ๊ฐํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ค.
rollingUpdate
- "RollingUpdate" ์ ๋ต์ ์ ํํ ๊ฒฝ์ฐ ์ด ์์ฑ์ ์ฌ์ฉํ์ฌ ๋กค๋ง ์ ๋ฐ์ดํธ์ ์ธ๋ถ ์ฌํญ์ ์ง์ ํ ์ ์๋ค.
maxUnavailable
- ์ ๋ฐ์ดํธ ์ค ์ ๊ฑฐํ Pod์ ์ต๋ ์๋ฅผ ์ง์ ํ๋ค.
- %๋ก ์ ์ฉ ๊ฐ๋ฅํ๋ค.
maxSurge
- ์ ๋ฐ์ดํธ ์ค ์ถ๊ฐ๋ก ์์ฑํ ์ ์๋ Pod์ ์ต๋ ์๋ฅผ ์ง์ ํ๋ค.
- %๋ก ์ ์ฉ ๊ฐ๋ฅํ๋ค.
๐ ๏ธ ๋ช ๋ น์ด๋ก ์ ๋ฐ์ดํธํ๊ธฐ
๋ํ๋ก์ด๋จผํธ ์ต์ด ์์ฑ
kubectl create -f <yaml ํ์ผ๋ช
>.yml
- ๋ํ๋ก์ด๋จผํธ๋ฅผ ์ต์ด๋ก ์์ฑํ๋ค.
๋ช ๋ นํ ์ ๊ทผ์ผ๋ก ์ด๋ฏธ์ง ์ ๋ฐ์ดํธ
kubectl set image deployment <deployment name> <containder name>=<image name>:<version>
- ์ด๋ฏธ ๋์์ ธ ์๋ deployment ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํ๋ค.
- ์ต์ด ์คํํ ๋ ์ฌ์ฉํ yml ํ์ผ์๋ ์ด๋ ํ ๋ณํ๋ ์ฃผ์ง ์๋๋ค.
์ ์ธํ ์ ๊ทผ์ผ๋ก ์ด๋ฏธ์ง ์ ๋ฐ์ดํธ
kubectl apply -f <yaml ํ์ผ๋ช
>.yml
- ์ง์ yml ํ์ผ์์ ๋ณ๊ฒฝ๋ ์ด๋ฏธ์ง์ ๋ฒ์ ํ๊ทธ๋ก ์์ ํ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ์์ด๋ค.
์ ๋ฐ์ดํธ ์ฌ๋ถ ํ์ธํ๊ธฐ
kubectl rollout status deployment/<yaml ํ์ผ์ ๋ช
์ํ Deployment Name>
kubectl rollout status deployment/my-deployment # example ์๋ ๋ช
๋ น์ด๋ ๋์ผ
- ํด๋น ๋ํ๋ก์ด๋จผํธ ๊ฐ์ฒด์ ์ํ๋ฅผ ํ์ธํ์ฌ ์ ๋ฐ์ดํธ๊ฐ ์ ์์ ์ผ๋ก ์งํ๋์๋์ง ์ฒดํฌํ ์ ์๋ค.
kubectl rollout history deployment/my-deployment
- ํด๋น ๋ํ๋ก์ด๋จผํธ ๊ฐ์ฒด์ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด๋ ๊ฒ์ด๋ค.
์ ๋ฐ์ดํธ ๋กค๋ฐฑํ๊ธฐ
kubectl rollout undo deployment/my-deployment --to-revision=2
- ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑ๋๋ค.
- --to-revision์ ์ฌ์ฉํ๋ฉด ํน์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ ์ ์๋ค.
์ฐธ๊ณ
๋คผํผ
Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests
728x90