Container Orchestration๐ŸŽบ๐ŸŽป๐Ÿ“ฏ๐ŸŽถ

Lzhtkยท2025๋…„ 6์›” 28์ผ

์˜ค๋Š˜์€ Container ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ ๊ทธ๋ฆฌ๊ณ  Docker ๋‹จ๋… ์‚ฌ์šฉ ํ™˜๊ฒฝ๊ณผ ๋น„๊ตํ•œ 3๊ฐ€์ง€ ์ฃผ์š” ํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ์•Œ์•„๋ณด์ž โ— โ•


Docker๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•œ๊ฑฐ ์•„๋‹ˆ์•ผ ? ๐Ÿค”

  • Container ๊ธฐ์ˆ ์€ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฐํฌ์™€ ์‹คํ–‰์„ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ˆœํ™”ํ–ˆ์ง€๋งŒ, ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋‚˜์˜จ๋‹ค.
  • ๋‹จ์ผ Container๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ˆ˜์ค€์—์„œ๋Š” Docker๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜์ง€๋งŒ, ์šด์˜ํ•˜๋Š” Container๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ์ž๋™ํ™”๋œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ Container Orchestration์ด ํ•„์š”ํ•ด์งˆ ๊ฒƒ์ด๋‹ค.
  • ์ฆ‰, ์ปจํ…Œ์ด๋„ˆ ์ˆ˜๊ฐ€ ์ ์„ ๋•Œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š์ง€๋งŒ, ์„œ๋น„์Šค๊ฐ€ ์„ฑ์žฅํ• ์ˆ˜๋ก ์šด์˜ ๋ณต์žก์„ฑ์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•œ๋‹ค.

Container Orchestration๋ž€ ? ๐ŸŽป

  • Container Orchestration์€ ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐฐํฌ, ๊ด€๋ฆฌ, ํ™•์žฅ, ๋ณต๊ตฌํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ๋กœ๋Š” Kubernetes๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด์™ธ์—๋„ Docker Swarm, Apache Mesos๋“ฑ์ด ์กด์žฌํ•œ๋‹ค.
  • Orchestration์˜ ์ฃผ์š” ๊ธฐ๋Šฅ
    • Container ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ๋ฐ ๊ด€๋ฆฌ
    • ์ž๋™ ์Šค์ผ€์ผ๋ง
    • ์žฅ์•  ๋ณต๊ตฌ ๋ฐ ์žฌ์‹œ์ž‘
    • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    • ๋ฐฐํฌ ์ „๋žต ๊ด€๋ฆฌ
    • ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ํ—ฌ์Šค์ฒดํฌ
    • ์„ ์–ธ์  ๊ตฌ์„ฑ(Yaml๋“ฑ์œผ๋กœ ์ธํ”„๋ผ ์ •์˜)

Docker ๋‹จ๋… ํ™˜๊ฒฝ์˜ ํ•œ๊ณ„์  ๐Ÿงฑ

  • Docker๋Š” ๊ฐ•๋ ฅํ•œ Container ์‹คํ–‰ ๋„๊ตฌ์ง€๋งŒ, ์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋‹ค์ˆ˜์˜ Container๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋ถ€์กฑํ•˜๋‹ค.
  • Docker๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
    • Container ๋ฐฐํฌ๋Š” ์ˆ˜๋™ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ฒ˜๋ฆฌ
    • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ๋žŒ์ด ์ง์ ‘ ์žฌ์‹œ์ž‘
    • ์ปจํ…Œ์ด๋„ˆ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ๊ด€๋ฆฌ ๋ณต์žก๋„ ๊ธ‰์ฆ
    • ์ธํ”„๋ผ ์„ค์ •์€ ๋ช…๋ น์–ด ๋˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ๊ด€๋ฆฌ -> ์ผ๊ด€์„ฑ/์žฌํ˜„์„ฑ ๋ถ€์กฑ

Orchestration์ด ํ•ด๊ฒฐํ•˜๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ๋ฌธ์ œ ๐ŸŽบ

1๏ธโƒฃ ์ž๋™ํ™•์žฅ

  • ๋ฌธ์ œ์ 
    • ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์‹œ, Container๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ณต์ œํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋Œ๋ ค์•ผํ•œ๋‹ค.
    • ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ถ€ํ•˜ ์ƒํ™ฉ์— ์‹ค์‹œ๊ฐ„ ๋Œ€์‘์ด ์–ด๋ ต๋‹ค.
  • Orchestration์ด ํ•ด๊ฒฐ โ•
    • Kubernetes๋Š” CPU/๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ž๋™์œผ๋กœ Pod ์ˆ˜๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.
    • ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์ง€๋ฉด Container ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ๋Š˜๋ฆฌ๊ณ , ์ค„์–ด๋“ค๋ฉด ์ค„์ž„ -> ๋ฆฌ์†Œ์Šค ์ตœ์ ํ™”
  • ์ฆ‰, ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ์ž๋™์œผ๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅ โ—
    2๏ธโƒฃ ์ž๊ฐ€ ๋ณต๊ตฌ
  • ๋ฌธ์ œ์ 
    • Container๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์ˆ˜๋™์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์žฌ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค.
    • ์šด์˜์ž์˜ ๊ฐœ์ž…์ด ํ•„์š”ํ•˜๊ณ  ๋ณต๊ตฌ๊ฐ€ ๋Šฆ์–ด์งˆ ์ˆ˜ ์žˆ์Œ.
  • Orchestration์ด ํ•ด๊ฒฐ โ•
    • Kubernetes๋Š” Pod ๋ฐ Container์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•œ๋‹ค.
    • Container๊ฐ€ ์ฃฝ์œผ๋ฉด ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์žฌ๋ฐฐ์น˜
    • ์„ค์ •ํ•œ ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‹ค์ œ ์ƒํƒœ๋ฅผ ์ž๋™์œผ๋กœ ๋ณต๊ตฌ
  • ์ฆ‰, ์žฅ์•  ๋ฐœ์ƒ ์‹œ ์ž๋™ ๊ฐ์ง€ ๋ฐ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค โ—
    3๏ธโƒฃ ์„ ์–ธ์  ์ธํ”„๋ผ
  • ๋ฌธ์ œ์ 
    • Docker CLI๋‚˜ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋กœ Container๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด, ์‹คํ–‰ ์ˆœ์„œ๋‚˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ์— ์žฌํ˜„์„ฑ๊ณผ ์ผ๊ด€์„ฑ ๋ถ€์กฑ
  • Orchestration์ด ํ•ด๊ฒฐ โ•
    • Kubernetes๋Š” Yaml ํŒŒ์ผ ๋“ฑ์œผ๋กœ ์ธํ”„๋ผ ์ƒํƒœ๋ฅผ ์ •์˜
    • ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์„ ์–ธํ•˜๋ฉด, ์‹œ์Šคํ…œ์ด ๊ทธ ์ƒํƒœ๋กœ ์ž๋™ ๊ตฌ์„ฑํ•œ๋‹ค.
  • ์ฆ‰, ์šด์˜ํ™˜๊ฒฝ์„ ์ฝ”๋“œ๋กœ ์ •์˜ํ•˜๊ณ  ํ†ต์ œ ๊ฐ€๋Šฅํ•˜๋ฉฐ "์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ• ์ง€"๊ฐ€ ์•„๋‹ˆ๋ผ "์–ด๋–ค ์ƒํƒœ๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š”์ง€"๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹

๋งˆ๋ฌด๋ฆฌ ๐ŸŽถ

์˜ค๋Š˜์€ ๋‹จ๋… Docker์˜ ํ•œ๊ณ„์ ์„ ๋ณด์™„ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.
Container Orchestration์€ ๊ทœ๋ชจ์™€ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ์ž๋™์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ์ˆ ์ด๋ผ๊ณ  ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜์—ฌ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ฑ์žฅํ•ด๋ณด์ž๐Ÿ’ฏ

0๊ฐœ์˜ ๋Œ“๊ธ€