Kubernetes(K8s)๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์•ฑ์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด Docker ๊ธฐ๋ฐ˜์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ํ•œ ์ฐจ์› ๋” ๋ฐœ์ „์‹œ์ผฐ์œผ๋ฉฐ, ํ˜„์žฌ ํด๋ผ์šฐ๋“œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์˜ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

Kubernetes์˜ ํŠน์ง•

์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ ๊ด€๋ฆฌ์˜ ์ž๋™ํ™”

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

๋ฆฌ์†Œ์Šค์™€ ๊ถŒํ•œ ๊ด€๋ฆฌ

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

์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ๋ฆฌ์†Œ์Šค ์ œ์–ด

Docker๋„ Dockerfile์„ ํ†ตํ•ด ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ์ฝ”๋“œ๋กœ ์ •์˜ํ•˜์ง€๋งŒ, Kubernetes์—์„œ๋Š” ๋” ๋‚˜์•„๊ฐ€ ๋„คํŠธ์›Œํฌ, ๊ถŒํ•œ ๋“ฑ ๋” ๋งŽ์€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ฝ”๋“œ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌ์†Œ์Šค (CRD)๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•˜์—ฌ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ์„œ ๋ชจ๋“  ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ ์ •์˜ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” IaC(Infrastructure as Code)์— ํ•œ ๊ฑธ์Œ ๋” ๋‹ค๊ฐ€์„œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

CNCF

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

Kubernetes์˜ ๋‹จ์ 

  • Kubernetes๋Š” ๋Œ€๊ทœ๋ชจ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์— ์ ํ•ฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ๋ถˆํ•„์š”ํ•œ ๊ด€๋ฆฌ ์š”์†Œ๊ฐ€ ๋Š˜์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๊ฝค ๋งŽ์€ ์ง€์‹์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ง„์ž…์žฅ๋ฒฝ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  • ์ง์ ‘ ๊ตฌ์ถ•ํ•œ K8s, ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ Amazon EKS, GKE ๋“ฑ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์กฐ๊ธˆ์”ฉ ์šฉ์–ด์™€ ์‚ฌ์šฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”Œ๋žซํผ์ด ๋‹ฌ๋ผ์ง„๋‹ค๋ฉด ์–ด๋Š ์ •๋„ ์ถ”๊ฐ€ ํ•™์Šต๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋‹จ์ ๋“ค๋กœ ์ธํ•ด ์•„์ง ์†Œ๊ทœ๋ชจ ์กฐ์ง์ด๋‚˜ ์Šคํƒ€ํŠธ์—…์—์„œ๋Š” Kubernetes๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ