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

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์Šค์ผ€์ค„๋Ÿฌ ๊ฐ„๋‹จ ์ •๋ฆฌ

by ํŒกํŽ‘ํ 2023. 11. 10.
728x90

๐Ÿ“Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์Šค์ผ€์ค„๋Ÿฌ

  • ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด Pod๋ฅผ ๋…ธ๋“œ์— ํ• ๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์˜ ๋…ธ๋“œ์— ์ ์ ˆํžˆ ๋ถ„๋ฐฐํ•˜์—ฌ ์‹คํ–‰ํ•ด์•ผ ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋Ÿฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ "์Šค์ผ€์ค„๋Ÿฌ(Scheduler)"์ด๋‹ค.
  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Pod๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์˜ ์ ์ ˆํ•œ ๋…ธ๋“œ์— ์ž๋™์œผ๋กœ ํ• ๋‹นํ•œ๋‹ค.
    • ์ด๋ฅผ "์ž๋™ ์Šค์ผ€์ค„๋ง(Auto Scheduling)"์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.
    • ์Šค์ผ€์ค„๋Ÿฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฆฌ์†Œ์Šค ์ƒํƒœ์™€ ๊ฐ Pod์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ์ตœ์ ์˜ ํ• ๋‹น์„ ๊ฒฐ์ •ํ•œ๋‹ค.
  • Pod ๋“ฑ์˜ YAML ํŒŒ์ผ์—๋Š” NodeName์ด๋ž€ ํ•„๋“œ๋ฅผ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ด๋‹น ํŒŒ๋“œ๋ฅผ ๋„์šธ ๋…ธ๋“œ๋ฅผ ์ง์ ‘ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Pod์˜ ์Šค์ผ€์ค„๋ง์„ ์œ„ํ•ด YAML ํŒŒ์ผ์— nodeName์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
    • ์œ„์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ Pod์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ ์ ˆํ•œ ๋…ธ๋“œ์— ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ๊ฐ์˜ Pod์— ๋Œ€ํ•œ ๋…ธ๋“œ ํ• ๋‹น์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ ๋„ ํšจ์œจ์ ์ธ ์ž์› ํ™œ์šฉ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿค– ์ž๋™ ์Šค์ผ€์ค„๋Ÿฌ

  • minikube๋กœ ์‹คํ–‰ํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‚ด namespace ์ค‘ kube-system์˜ pod ๋ชฉ๋ก์„ ์‚ดํŽด๋ณด๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” kube-schduler-minikube๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ž๋™ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ YAML ํŒŒ์ผ ์ž‘์„ฑ ์‹œ nodeName์„ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ์Šค์ผ€์ค„๋ง๋œ๋‹ค.
  • minikube๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ๋…ธ๋“œ๋งŒ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๋…ธ๋“œ๋ฅผ ์ง€์ •ํ•ด์„œ ํ•ด๋‹น ๋…ธ๋“œ์— ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ node๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋‹ค์ค‘ ๋…ธ๋“œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

 

โš’๏ธ minikube ๋‹ค์ค‘ ๋…ธ๋“œ ํ™˜๊ฒฝ ๊ตฌ์ถ•

  • minikube node list ๋ช…๋ น์–ด๋กœ ์ดˆ๊ธฐ node ๋ฆฌ์ŠคํŠธ๋ฃฐ ์ถœ๋ ฅํ•ด๋ณด๋ฉด minikube๋ผ๋Š” node๊ฐ€ ํ•˜๋‚˜์žˆ๋‹ค.
  • minikube node add --worker ๋ช…๋ น์–ด๋กœ ์›Œ์ปค ๋…ธ๋“œ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • minikube-m02๋ผ๋Š” ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

 

๐Ÿ“– ์˜ˆ์‹œ

  • ์œ„์™€ ๊ฐ™์ด spec์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์— nodeName์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ผ๋ถ€๋Ÿฌ ์กด์žฌํ•˜์ง€ ์•Š๋Š” node ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค.

 

  • node๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— pending ์ƒํƒœ๊ฐ€ ์œ ์ง€๋˜๋‹ค๊ฐ€ ์ž๋™์ ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ๋‹ค.
  • describe๋ฅผ ํ†ตํ•ด ๋ณธ ํŒŒ๋“œ์˜ ์ •๋ณด์—์„œ Node ๋ถ€๋ถ„์— Node02๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ฒˆ์—๋Š” ์œ„์—์„œ ์ƒ์„ฑํ•œ m02 ๋…ธ๋“œ๋กœ ์ง€์ •ํ•ด๋ณด์ž.

 

  • nodeName์„ minikube-m02๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

 

  • kubectl apply ๋ช…๋ น์–ด๋กœ ์ˆ˜์ •ํ•œ YAML ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋‹ˆ ContainerCreating ์ƒํƒœ์—์„œ Running์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉฐ Node ์—ญ์‹œ ์„ค์ •ํ•œ ๋…ธ๋“œ(m02)๋กœ ์ง€์ •๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ ์Šค์ผ€์ค„๋ง์„ ๊ฒฐ์ •ํ•˜๋Š” ์š”์ธ

  • ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋‹ค์–‘ํ•œ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์Šค์ผ€์ค„๋ง ๊ฒฐ์ •์„ ๋‚ด๋ฆฐ๋‹ค.
  • ๋…ธ๋“œ์˜ ๋ฆฌ์†Œ์Šค ๊ฐ€์šฉ์„ฑ(CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ), ์Šคํ† ๋ฆฌ์ง€ ์ œ์•ฝ ์กฐ๊ฑด, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ฑ ๋“ฑ์ด ์žˆ๋‹ค.
  • ๋˜ํ•œ, ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๋…ธ๋“œ ์„ ํƒ ๊ธฐ์ค€(annotation, taint, affinity ๋“ฑ)์„ ๊ณ ๋ คํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” nodeName์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ๋…ธ๋“œ์— Pod๋ฅผ ์ง์ ‘ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์ฐธ๊ณ 

https://peterica.tistory.com/371?category=1144021

๋คผํŠผ

Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests

728x90