๋ชฉ์ฐจ
ย Rollout and Versioning
์๋ก์ด ๋ฐฐํฌ์ ์์์ ๋กค์์์ ํธ๋ฆฌ๊ฑฐ์ด๋ค. ์ฒ์ ๋ฐฐํฌ๋ฅผ ์์ฑํ๋ฉด ๋กค์์์ด ์์๋๊ณ , ์๋ก์ด ๋กค์์์ ์๋ก์ด ๋ฐฐํฌ revision๋ฅผ ์์ฑํ๋ค. ์ปจํ
์ด๋ ๋ฒ์ ์ด ์๋ก ์
๋ฐ์ดํธ๋๋ฉด ์ ๋กค์์์ด ํธ๋ฆฌ๊ฑฐ๋๊ณ , ์ ๋ฐฐํฌ revision์ด ์์ฑ๋๋ค.
์ด๋ ๋ฐฐํฌ์ ์ผ์ด๋ ๋ณํ๋ฅผ ์ถ์ ํ ์ ์๊ฒ ํด์ฃผ๊ณ , ํ์ ์ ์ด์ ๋ฒ์ ์ผ๋ก์ ๋กค๋ฐฑ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
ย Rollout Command
โข
rollout์ ์ํ ํ์ธ
kubectl rollout status deployment/myapp-deployment
Bash
๋ณต์ฌ
โข
revision ๋ฐ deployment history ํ์ธ
kubectl rollout history deployment/myapp-deployment
Bash
๋ณต์ฌ
ย Deployment Strategy
๋ฐฐํฌ ์ ๋ต์๋ ๋ ๊ฐ์ง ์ ํ์ด ์๋ค
Recreate Strategy
๋ฐฐํฌ๋ ์ธ์คํด์ค ๋ณต์ ๋ณธ์ ๋ชจ๋ ํ๊ดดํ๊ณ ์ธ์คํด์ค์ ์๋ก์ด ๋ฒ์ ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด ์ ๋ต์ ๋ฌธ์ ์ ์ ๊ตฌ ๋ฒ์ ์ด ๋ค์ด๋๊ณ ์ ๋ฒ์ ์ด ๋ฐฐํฌ๋๋ ๋์ ์ฌ์ฉ์๊ฐ ํด๋น ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ทผํ ์ ์๋ค๋ ์ ์ด๋ค. ํด๋น ๋ฌธ์ ์ ์ผ๋ก ์ธํด ์ฟ ๋ฒ๋คํฐ์ค์ ๊ธฐ๋ณธ ๋ฐฐํฌ ์ ๋ต์ ์๋๋ค.
kubectl describe ๋ช
๋ น์ด๋ฅผ ํตํด ํ์ธํด๋ณด์์ ๋ StartegyType์ด Recreate์ธ ๊ฒ์ ํ์ธํ ์ ์๊ณ , Replica๋ฅผ ํ๋ฒ์ 0์ผ๋ก ์ถ์์์ผฐ๋ค๊ฐ 5๋ก ๋๋ฆฐ ๊ฒ์ ๋ณผ ์ ์๋ค.
Rolling Update Strategy
ํ๋ฒ์ ์ธ์คํด์ค๋ฅผ ์ ๊ฑฐํ์ง ์๊ณ ๊ตฌ ๋ฒ์ ์ ํ๋์ฉ ๋ค์ด์ํค๋ฉฐ ์ ๋ฒ์ ์ ํจ๊ป ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด ์ ๋ต์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ค์ด๋์ง ์๊ณ ์
๊ทธ๋ ์ด๋๋ ์ํํด์ง๋ค. ํด๋น ์ ๋ต์ ๊ธฐ๋ณธ ๋ฐฐํฌ ์ ๋ต์ผ๋ก, ๋ฐฐํฌ ์ ๋ต์ ์ง์ ํ์ง ์์ผ๋ฉด ๋กค๋ง ์
๋ฐ์ดํธ ์ ๋ต์ด ์ฌ์ฉ๋๋ค.
kubectl describe ๋ช
๋ น์ด๋ฅผ ํตํด ํ์ธํด๋ณด์์ ๋ StartegyType์ด RollingUpdate์ธ ๊ฒ์ ํ์ธํ ์ ์๊ณ , Replica๋ฅผ ํ๋์ฉ ์ค์๋ค ๋์๋ค ํ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
ย Upgrades
์ ๋ฐฐํฌ๊ฐ ์์ฑ๋๋ฉด ๋จผ์ ๋ ํ๋ฆฌ์นด ์
์ ์์ฑํด ๋ ํ๋ฆฌ์นด ๊ฐ์์ ๋ง๋ Pod๊ฐ ์์ฑ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ด ์
๊ทธ๋ ์ด๋ ๋ ๋, ๋ฐฐํฌ ๊ฐ์ฒด๋ ๋ด๋ถ์ ์ผ๋ก ์๋ก์ด ๋ ํ๋ฆฌ์นด ์
์ ์์ฑํ๊ณ , ๊ฑฐ๊ธฐ์ ์ปจํ
์ด๋๋ฅผ ๋ฐฐํฌํ๊ธฐ ์์ํ๋ค. ๋์์ ์ด์ ๋ ํ๋ฆฌ์นด ์
์ ์๋ ํ๋๋ฅผ ๋กค๋ง ์
๋ฐ์ดํธ ์ ๋ต์ ๋ฐ๋ผ ํ๋์ฉ ์ข
๋ฃ์ํจ๋ค.
ย Rollback
์
๊ทธ๋ ์ด๋ ํ ์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋กค๋ฐฑ์ ์งํํด์ผํ๋๋ฐ, ์ฟ ๋ฒ๋คํฐ์ค๋ ์ด์ revision์ผ๋ก ๋กค๋ฐฑ์ด ๊ฐ๋ฅํ๋ค. kubectl rollout undo ๋ช
๋ น์ ์คํํ๋ฉด ์๋ก ์์ฑ๋์๋ ๋ฐฐํฌ์ Pod๋ ํ๊ดด๋๊ณ , ์ด์ ๋ฒ์ ์ ๋ ํ๋ฆฌ์นด ์
์ Pod๋ฅผ ๋ถ๋ฌ์จ๋ค.
kubectl rollout undo deployment/myapp-deployment
Bash
๋ณต์ฌ
ย Summarize Commands
# Create
kubectl create -f deployment-definition.yml
# Get
kubectl get deployments
# Update
kubectl apply -f deployment-definition.yml
# Update - Image (์ ์ ํ์ผ์ ๋ฐ๋์ง ์๊ธฐ ๋๋ฌธ์ ์คํ deployment์ ์ ์ ํ์ผ์ ์ฐจ์ด๊ฐ ๋ฐ์)
kubectl set image deployment/<deployment_name> <container_name>=<image>
# Status
kubectl rollout status deployment/myapp-deployment
kubectl rollout history deployment/myapp-deployment
# Rollback
kubectl rollout undo deployment/myapp-deployment
Bash
๋ณต์ฌ