d_june :)
HOLYMOLY
d_june :)
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ ๋ณด๊ธฐ (79)
    • ๐ŸšขKubernetes (22)
      • Overview (5)
      • kubernetes In Action (16)
      • Tips (1)
    • ๐ŸงLinux (8)
      • ๊ฐœ๋… (5)
      • Tips (3)
    • โŒจProgrammers (30)
      • Level1 (30)
    • ๐Ÿ’พDatabase (5)
      • SQLD ์ž๊ฒฉ์ฆ (5)
      • Tibero (0)
    • ๐ŸŽข์ฃผ์‹์™•๋ž„ํ”„ (12)
      • ์ฃผ๋ฆฐ์ด TOP (12)
    • ๐Ÿ“•๐Ÿ“—๐Ÿ“˜์ด๋‹ฌ์˜ ๋…์„œ์™• (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
d_june :)

HOLYMOLY

[k8s] drain, cordon, uncordon ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•
๐ŸšขKubernetes/Tips

[k8s] drain, cordon, uncordon ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•

2022. 8. 18. 16:29

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋ถˆ์•ˆ์ •ํ•œ ์›Œ์ปค ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ ์ ๊ฒ€ํ•˜๊ฑฐ๋‚˜ ๊ต์ฒดํ•ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค.
์ด๋•Œ ํŠน์ • ๋…ธ๋“œ์— 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 ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

 

 

 

 

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    d_june :)
    d_june :)

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”