์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋ถ์์ ํ ์์ปค ๋
ธ๋์ ๋ํด์ ์ ๊ฒํ๊ฑฐ๋ ๊ต์ฒดํด์ผํ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค.
์ด๋ ํน์ ๋
ธ๋์ pod๊ฐ ์ค์ผ์ค๋ง๋์ง ์๋๋ก ์ค์ ํ๊ฑฐ๋ pod๋ค์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฎ๊ธธ ํ์๊ฐ ์๋ค.
์ด๋ ์ฌ์ฉ ๊ฐ๋ฅํ kubectl ๋ช ๋ น์ด๊ฐ cordon, drain ์ด๋ค.
[cordon]
cordon์ ํน์ ๋ ธ๋์ pod๊ฐ ์ค์ผ์ฅด๋ง๋์ง ์๋๋ก ์ค์ ํ๋ค.
๋ ธ๋ ํ์ธ
kubectl --kubeconfig $KUBE_CONFIG get nodes
cordon
kubectl cordon $NODENAME
cordon์ ์คํํ ๋ ธ๋๋ status๊ฐ ready์์ ready,SchedulingDisabled๋ก ๋ณ๊ฒฝ๋๋ฉฐ, pod๊ฐ ๋์ด์ ์ค์ผ์ฅด๋ง๋์ง ์๋๋ค.
uncordon
kubectl uncordon $NODENAME
uncordon์ ์คํํ ๋ ธ๋๋ status๊ฐ ๋ค์ ready ์ํ๋ก ๋ณ๊ฒฝ๋์ด pod๊ฐ ๋ค์ ์ค์ผ์ฅด๋ง ๋๋ค.
[drain]
์์ ๋์ ๋ ธ๋์ pod๋ฅผ ์์ ํ๊ฒ ์ถ์ถํ์ฌ ํด๋น pod๋ด์ ์ปจํ ์ด๋๋ค์ Graceful termination ํํ๋ก ์ข ๋ฃ ๊ฐ๋ฅํ๋ค.
๋ ธ๋ ํ์ธ
kubectl --kubeconfig $KUBE_CONFIG get nodes
์์ ๋์ ๋ ธ๋์ Pod ์ถ์ถ
kubectl --kubeconfig $KUBE_CONFIG drain $NODENAME
ํด๋น ๋
ธ๋์ ์๋ pod ๋ค์ terminating ๋๊ฑฐ๋ pending ๋๋ค.
-๋
ธ๋๊ฐ ํ๋์ธ ๊ฒฝ์ฐ
terminating ์ํ์ธ pod๋ค์ ์์ง ์์ ํ ์ข
๋ฃ๋์ง ์์ ์ํ๋ฅผ ๊ฐ๋ฅดํค๋ฉฐ, ๋
ธ๋๊ฐ SchedulingDisabled์ํ์ด๊ธฐ ๋๋ฌธ์
pod๋ค์ ์ค์ผ์ฅด๋ง๋์ง ๋ชปํ๊ณ pending ์ํ๊ฐ ๋๋ค.
-๋
ธ๋๊ฐ ์ฌ๋ฌ๋์ธ ๊ฒฝ์ฐ
๋
ธ๋๊ฐ ์ฌ๋ฌ๊ฐ๋ผ๋ฉด pod๋ค์ ๋ค๋ฅธ ๋
ธ๋๋ก ์ด๋๋์ด ์ค์ผ์ฅด๋ง ๋๋ค.
์์ ์ดํ ํด๋น ๋ ธ๋์ ๋ค์ pod๊ฐ ์ค์ผ์ค๋ง ๋๋๋ก ์ค์น
kubectl --kubeconfig $KUBE_CONFIG uncordon $NODENAME
ํด๋น ๋ ธ๋์ ์์ ์ด ์๋ฃ๋์๋ค๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก uncordon ์ ์ํํ๋ฉด ํด๋น ๋ ธ๋๊ฐ ๋ค์ ready ์ํ๋ก ๋ณ๊ฒฝ๋๋ค.