[Kubernetes] 1. Container Deployment์™€ Kubernetes

๋ฐ˜์‘ํ˜•

์ €์—๊ฒŒ ์žˆ์–ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” Docker Swarm์„ ์ง€๋‚˜ ์ด์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋˜ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ด์ง์„ ํ•œ ํšŒ์‚ฌ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ฒŒ ๋˜์–ด ์ฃผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด ๋•Œ๋ถ€ํ„ฐ Docker Swarm ๋ณด๋‹ค๋Š” Kubernetes๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ์ด ์ž์ฃผ ์ƒ๊ฒจ๋‚ฌ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ธ€์€ Docker๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋งŒ Kubernetes์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋ชจ๋ฅด๊ณ , ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„๋“ค์—๊ฒŒ ๋“œ๋ฆฌ๋Š” ๊ธ€์˜ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค. 

 

 

 

Container Deployment์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ์˜ค๊ธฐ๊นŒ์ง€..

Kubernetes๋Š” Go ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Google์—์„œ ๊ฐœ๋ฐœํ•˜์—ฌ 2014๋…„์— ๊ณต๊ฐœ๋œ Container Orchestration tool์ž…๋‹ˆ๋‹ค. ๋จผ์ € ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด, ์ปจํ…Œ์ด๋„ˆ๋Š” OS์˜ ์ž์›์„ ๊ณต์œ ํ•œ ํ˜•ํƒœ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋‚ธ ํ˜•ํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์™œ ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์„ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ์˜จ ๊ฒƒ์ผ๊นŒ์š”?

 

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

 

  • Traditional Deployment

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

  • Virtualized Deployment

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

    ๋” ์ข‹์€ ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๋‹ค์‹œ ๊ตฌ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์šด์˜์ฒด์ œ ๋“ฑ์˜ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•  ํ•„์š” ์—†์ด ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์žˆ๊ณ , ์„œ๋ฒ„ ์šด์˜์„ ์œ„ํ•ด ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋ฅผ ํ•œ ๋Œ€ ๋” ๋‘ฌ์•ผํ•˜๋Š” ๋น„์šฉ์„ ํ™•์‹คํ•˜๊ฒŒ ์ ˆ๊ฐ์‹œ์ผœ์ฃผ๋Š” ์š”์†Œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  • Container Deployment

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

    ๋ฆฌ๋ˆ…์Šค ์ง„์˜์˜ Xen์ด๋‚˜ KVM, QEMU๋ฅผ ํฌํ•จํ•˜์—ฌ ์œˆ๋„์šฐ ์ง„์˜์˜ Hyper-V ๋ชจ๋‘ ๊ฐ€์ƒํ™” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค ๋ชจ๋‘ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ๊ณ ๋ฅด๊ฒŒ ๋ถ„๋ฐฐํ•˜์ง€๋งŒ CPU ๋“ฑ์˜ ์ฃผ์š” ์ž์›๋“ค์„ ๋‚˜๋ˆ„์ง€๋งŒ ๊ทธ๋“ค์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํ• ๋‹น ๋ฐ›๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ž์›์„ ์†Œ๋ชจํ•ฉ๋‹ˆ๋‹ค. 

    ๊ทธ๋ž˜์„œ ๋‚˜ํƒ€๋‚œ ๊ฒƒ์ด ๋ฐ”๋กœ ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€์ƒํ™” ๋ฐฐํฌ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ ์€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ฐ€์ƒํฌ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ๋ณด๋‹จ, ๋กœ๋“œ๋œ ์šด์˜์ฒด์ œ ์ž์›์„ ๊ณต์œ ํ•˜์—ฌ ์ƒˆ๋กœ์šด ์šด์˜์ฒด์ œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. 


๊ฐ„๋‹จํ•˜์ง€๋งŒ ์‹ฌ์ธต์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์˜ ์„œ๋ฒ„ ์šด์˜ ๋ฐฉ์‹์„ ๋งŒ๋“ค๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •์„ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค. ์–ธ๋“ฏ ๋ณด๊ธฐ์—๋Š” ๊ฐ€์ƒํ™” ๋ฐฐํฌ ๋ฐฉ์‹์—์„œ ์„ฑ๋Šฅ ์ฐจ์ด ๊ทน๋ณต์„ ์œ„ํ•ด์„œ๋งŒ ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ ๋ฐฉ์‹์ด ๋„์ž…๋œ ๊ฒƒ ๋ฟ์ธ ๋“ฏํ•œ๋ฐ, ๊ทธ ์™ธ์—๋„ ๋‹ค๋ฅธ ์žฅ์ ์ด ์žˆ์„ ๊ฒƒ ๊ฐ™๋„ค์š”. ์–ด๋– ํ•œ ์ข‹์€ ์ ์ด ์žˆ์„๊นŒ์š”?

 

  • ์‰ฌ์šด ์ด๋ฏธ์ง€ ์ƒ์„ฑ

    ๊ฐ€์ƒํ™” ์†”๋ฃจ์…˜์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹จ์ˆœํžˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜๊ณ ๊ฐ€ ๋์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์–ด๋–ค ์šด์˜์ฒด์ œ์˜ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ค ์šด์˜์ฒด์ œ์˜ ์„ค์ •์„ ๊ฐ€์ง€๊ณ  ํ•ด์•ผํ•˜๋Š”์ง€ ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๋ชจ๋‘ ๋‹ด๊ฒจ์ ธ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ฐ€์ง„ ์—ญ๋Ÿ‰๋ณด๋‹ค ๋” ๋งŽ์€ ์—ญ๋Ÿ‰์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. 

    ๊ทธ๋Ÿฌ๋‚˜ ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ ๋ฐฉ์‹์—์„œ๋Š” ์ด๋ฏธ ์„ค์น˜๋œ ์šด์˜์ฒด์ œ์˜ ์ž์›์„ ๊ณต์œ ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ์™€ ๊ทธ ์„ค์ •์€ ๋ชจ๋‘ ๋ฉ”์ธ ์šด์˜์ฒด์ œ๋ฅผ ๋”ฐ๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ์–ด๋””๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ธ์ง€๋ฅผ ์กฐ์ •ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์ฃ .

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ฐ€์ง„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ธฐ์ˆ ๊ณผ ์ •ํ•ด์ง„ ํ™˜๊ฒฝ ์„ค์ •๋งŒ ๋งž์ถฐ์ฃผ๋ฉด ์‰ฝ๊ฒŒ ์šด์˜ ์„œ๋ฒ„ ํ•œ ๋Œ€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜ ํ™˜๊ฒฝ ์–ด๋””์„œ๋“  ๋˜‘๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์ผ๊ด€์„ฑ

    ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ ๋ฐฉ์‹์€ ์–ด๋–ค ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด๋„ ๋ฉ”์ธ ์šด์˜์ฒด์ œ์˜ ํ™˜๊ฒฝ๋งŒ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํด๋ผ์šฐ๋“œ, ๋žฉํ†ฑ, ๋ฐ์Šคํฌํ†ฑ ์–ด๋””์„œ๋“ ์ง€ ๋™์ผํ•˜๊ฒŒ ๊ตฌ๋™๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐ€์ƒํ™” ์†”๋ฃจ์…˜์˜ ๊ฒฝ์šฐ, ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์†”๋ฃจ์…˜ ๋งค๋‹ˆ์ € (Hyper-V ๋“ฑ)์„ ์„ค์น˜ํ•˜๊ณ , ์ด ์„ค์ •์— ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

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

  • ๋Š์Šจํ•œ ์šด์˜์ด ๊ฐ€๋Šฅํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

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

 

 

 

Container Orchestration Tool์ด ํ•„์š”ํ•œ ์ด์œ 

์šฐ๋ฆฌ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์œ„์—์„œ ๋ดค๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํšจ์œจ์ ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ผ๋ฐ˜์ ์ธ ํ™ˆํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด, ์šด์˜์ฒด์ œ์—์„œ ์ œ๊ณตํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ์›น ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ ํ˜„๋Œ€์˜ ์„œ๋น„์Šค๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ณด๋‹ค๋„ ๋” ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ , ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

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

 

์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋งค๋‹ˆ์ €๋งŒ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ, ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋งค๋‹ˆ์ €๊ฐ€ ๋ณด๊ด€ํ•ด๋’€๋‹ค๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๊บผ๋‚ด ์“ฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹จ์ผ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์ง€๊ณ , ์ด์— ๋”ฐ๋ผ์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? ์ปจํ…Œ์ด๋„ˆ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด๋“ค์„ ๊ตฌ์„ฑํ•˜๊ณ , ๋‹ค์Œ์— ์žฌ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ฐฐ๋ณด๋‹ค ๋ฐฐ๊ผฝ์ด ๋” ํฌ๊ฒ ์ฃ ?

 

Orchestration tool์€ ์ด๋Ÿฌํ•œ ์ผ๋ จ์˜ ๊ณผ์ •์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์€ Orchestration tool์„ Kubernetes๋กœ ์‚ฌ์šฉํ–ˆ์„ ๋–„์˜ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ํ•œ ์„œ๋น„์Šค ๋‹จ์œ„๋ฅผ Deployment๋กœ ์žก๊ณ , ์ธ์Šคํ„ด์Šค์˜ ๋‹จ์œ„๋ฅผ Worker ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ ๋‹จ์œ„๋ฅผ Pod๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Kubernetes 2๋ฒˆ์งธ ์ด์•ผ๊ธฐ์—์„œ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ•œ ์„œ๋น„์Šค์˜ Deployment ๊ตฌ์„ฑ์„ ์ด๋ฏธ์ง€ํ™”ํ•˜๊ณ , ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰์‹œ์— ํ•ด๋‹น ํŒŒ์ผ์„ ์ฝ์–ด ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์—์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์—ฌ ๋ณต์žกํ•˜๊ณ  ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋กœ ๋ถ„ํ• ๋œ ์„œ๋น„์Šค ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

 

 

 

Kubernetes

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

 

Kubernetes๋Š” ๋‹ค๋ฅธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ์— ๋น„ํ•ด ๊ธฐ๋Šฅ์ด ๊ต‰์žฅํžˆ ๋งŽ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ œ ๊ฒฝํ—˜์— ์žˆ์–ด์„œ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์ ํ•ฉํ•œ ๋„๊ตฌ๋ผ๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•  ์ •๋„๋กœ ๊ทธ ๊ธฐ๋Šฅ์ด ๊ต‰์žฅํžˆ ๋งŽ์œผ๋ฉฐ ์ตœ๊ทผ์—๋Š” AWS, Google Cloud Platform, Azure ๋“ฑ ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ๋„ ์ง€์›ํ•˜์—ฌ ์ด์‹์„ฑ์ด ๊ต‰์žฅํžˆ ๋†’์Šต๋‹ˆ๋‹ค. 

 

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

 

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๋ณ„๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ•œ๋‹ค๋ฉด, ๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€ ์•Œ์•„์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Service Discovery์ž…๋‹ˆ๋‹ค. Spring Cloud์—์„œ๋Š” ์ด๋Ÿฌํ•œ Service Discovery๋กœ Hystrix๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 

 

Kubernetes์—์„œ๋Š” Service Discovery ๋˜ํ•œ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Spring Cloud๊ฐ€ Java ํ™˜๊ฒฝ์— ์ข…์†์ ์ด๋ผ๋ฉด, Kubernetes๋Š” ์–ด๋–ค ์–ธ์–ด, ํ”Œ๋žซํผ์ด๋“  ์ข…์†๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ๋งค๋ ฅ์ธ ๊ฒƒ์ด์ฃ .

 

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•จ์— ์žˆ์–ด ํŠนํžˆ DB๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Persistence Layer ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ์จ์•ผ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” Volume์„ ๋ณ„๋„๋กœ ๋งŒ๋“ค์–ด ์˜๊ตฌ ์ €์žฅ์†Œ๋ฅผ ๋ณ„๊ฐœ๋กœ ๋งŒ๋“ค์—ˆ์ง€์š”.

 

Kubernetes ๋˜ํ•œ ๋กœ์ปฌ ์ €์žฅ์†Œ ํ˜น์€ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž์—์„œ ์ œ๊ณตํ•˜๋Š” ์ €์žฅ์†Œ์ฒ˜๋Ÿผ ์›ํ•˜๋Š” Persistence Layer๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ์ด๋ฅผ ์‰ฝ๊ฒŒ ๋งˆ์šดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์†Œ๋ฉธ๋˜๋”๋ผ๋„ ๋ณ„๋„์˜ ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์˜๊ตฌ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋งค๋ ฅ์ด๋ฉฐ ํŠนํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” DB ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๊ฒฝ์šฐ, ๋งค๋ฒˆ DB๋ฅผ Unmountํ•˜๊ณ , ๋‹ค์‹œ ์žฌ๋งˆ์šดํŠธํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ๋œ์–ด์ค๋‹ˆ๋‹ค. 

 

 

 

 

๋งˆ์น˜๋ฉฐ...

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

 

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

 

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

 

๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ๋Š” Kubernetes์˜ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋“ค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments