๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[DevOps]/Kubernetes

kubernetes - Node Update(drain, cordon, uncordon)

by ํŒกํŽ‘ํ 2024. 1. 20.
728x90

๐Ÿ› ๏ธ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ์˜ ํด๋Ÿฌ์Šคํ„ฐ ์œ ์ง€๋ณด์ˆ˜

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ๊ฐ ๋…ธ๋“œ๋Š” ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ๊ฐ์ž์— ๋งž๋Š” OS์™€ Kubelet ๋ฒ„์ „์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ๋งŒ์•ฝ ์ด OS ํ˜น์€ kubelet ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜, ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ต์ฒดํ•˜๋Š” ๋“ฑ ๋…ธ๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜ ์ž‘์—…์ด ์ˆ˜ํ–‰๋  ๋•Œ ํŒŒ๋“œ์˜ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ๋“œ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๋Š” pod์˜ ์Šค์ผ€์ค„๋ง ์ •์ฑ…์„ ์ปค์Šคํ…€ํ•˜๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋…ธ๋“œ์˜ ํŒŒ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์˜ฎ๊ธฐ๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ drain

kubectl drain <nodeName> --ignore-daemonsets
  • drain์€ '๋ฌผ์„ ๋นผ๋‹ค'๋ผ๋Š” ๋œป์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํŒŒ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋…ธ๋“œ๋ฅผ ๋น„์šฐ๋Š” ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • `kubectl drain` ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋…ธ๋“œ๋Š” SchedulingDisabled ์ƒํƒœ๊ฐ€ ๋˜๊ณ , ๋…ธ๋“œ์— ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ํŒŒ๋“œ๊ฐ€ ์Šค์ผ€์ค„๋ง(์ถ”๊ฐ€)๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋˜ํ•œ, ํ•ด๋‹น ๋…ธ๋“œ์˜ ์ด๋ฏธ ์Šค์ผ€์ค„๋ง ๋˜์–ด์žˆ๋˜ ํŒŒ๋“œ๊ฐ€ ์—†์–ด์ง€๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์Šค์ผ€์ค„๋ง๋œ๋‹ค.
  • --ignore-daemonsets
    • Replicaset, Statefulset ๋“ฑ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” ํŒŒ๋“œ์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์ž๋™์œผ๋กœ ์Šค์ผ€์ค„๋ง๋œ๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜, Daemonset์˜ ๊ฒฝ์šฐ ๊ฐ ๋…ธ๋“œ์— ํŒŒ๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‹คํ–‰ํ•˜๋Š” ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋…ธ๋“œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ œ๊ฑฐ๋˜๋ฉด ํ•ด๋‹น ๋…ธ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํŒŒ๋“œ๋Š” ๊ทธ๋Œ€๋กœ ์ œ๊ฑฐ๋˜๋ฉฐ ๋‹ค๋ฅธ ํŒŒ๋“œ์— ์ถ”๊ฐ€์ ์œผ๋กœ ์Šค์ผ€์ค„๋ง๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.
  • Standalone ํŒŒ๋“œ์˜ ๊ฒฝ์šฐ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋ฐ›๊ณ ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ํŒŒ๊ดด๋œ๋‹ค.
  • kubelet์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” Static ํŒŒ๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ์— ๊ณ„์† ๋‚จ์•„์žˆ๊ฒŒ ๋œ๋‹ค.

 

๐Ÿ“Œ cordon & uncordon

kubectl cordon <nodeName>
kubectl uncordon <nodeName>
  • cordon์˜ ๊ฒฝ์šฐ '์–ด๋– ํ•œ ๊ฒฝ๊ณ„์˜ ์ €์ง€์„ `์ด๋ผ๋Š” ๋œป์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ํ•ด๋‹น ๋…ธ๋“œ์— ์ด๋ฏธ ์Šค์ผ€์ค„๋ง๋˜์–ด ์žˆ๋Š” ํŒŒ๋“œ๋Š” ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ์ถ”๊ฐ€์ ์ธ ์Šค์ผ€์ค„๋ง์„ ์ œํ•œํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • drain๊ณผ์˜ ์ฐจ์ด์ ์€ drain์˜ ๊ฒฝ์šฐ ๊ธฐ์กด์— ์Šค์ผ€์ค„๋ง๋˜์–ด์žˆ๋Š” ํŒŒ๋“œ ์—ญ์‹œ ์ œ๊ฑฐํ•˜์ง€๋งŒ cordon์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜๋Š” ํŒŒ๋“œ๋งŒ์„ ๋ง‰๋Š” ๋ฐ์— ์žˆ๋‹ค.
  • cordon ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋…ธ๋“œ๋Š” SchedulingDisabled ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. 
  • ์ดํ›„ uncordon์„ ์‚ฌ์šฉํ•˜๋ฉด SchedulingDisabled์—์„œ ๋ฒ—์–ด๋‚˜ ๋‹ค์‹œ ๋…ธ๋“œ์— ์ƒˆ๋กœ์šด ํŒŒ๋“œ๋ฅผ ์Šค์ผ€์ค„๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 

 

์ฐธ๊ณ 

Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests

๋คผํŠผ

https://velog.io/@koo8624/Kubernetes-Drain-Cordon-and-Uncordon

728x90