๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

ํšจ์œจ์ ์ธ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ: Kubernetes๋กœ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ตœ์ ํ™”ํ•˜๊ธฐ

Kubernetes: ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ˜์‹ 

Kubernetes, ํ”ํžˆ K8s๋กœ ์•Œ๋ ค์ง„ ์ด ํ”Œ๋žซํผ์€ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ, ํ™•์žฅ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. Google์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ํ˜„์žฌ Cloud Native Computing Foundation(CNCF)์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ๋ช‡ ๋…„ ๊ฐ„ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ธ๊ธฐ๊ฐ€ ๊ธ‰์ฆํ•˜๋ฉด์„œ, K8s๋Š” ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

Kubernetes์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

Kubernetes๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž๋™ํ™”๋œ ๋ฐฐํฌ ๋ฐ ๋กค์•„์›ƒ: Kubernetes๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์„œ๋น„์Šค ๋ฐœ๊ฒฌ๊ณผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ: K8s๋Š” ๊ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ IP ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ DNS ์ด๋ฆ„์„ ์ง€์ •ํ•˜์—ฌ ์„œ๋น„์Šค ๋ฐœ๊ฒฌ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ž๋™ ์Šค์ผ€์ผ๋ง: Kubernetes๋Š” ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์ž์ฒด ์น˜์œ : ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Kubernetes๊ฐ€ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋™์œผ๋กœ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

  5. ๋น„๋ฐ€ ๊ด€๋ฆฌ ๋ฐ ๊ตฌ์„ฑ ์„ค์ •: Kubernetes๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ, OAuth ํ† ํฐ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Kubernetes ์•„ํ‚คํ…์ฒ˜

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

  • API ์„œ๋ฒ„: ํด๋Ÿฌ์Šคํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” RESTful API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค์ผ€์ค„๋Ÿฌ: ์ƒ์„ฑ๋œ Pod์˜ ๋ฐฐ์น˜ ์ž‘์—…์„ ๋‹ด๋‹นํ•˜์—ฌ ์ ์ ˆํ•œ ์Šฌ๋ ˆ์ด๋ธŒ ๋…ธ๋“œ๋ฅผ ์„ ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํŠธ๋กค๋Ÿฌ ๋งค๋‹ˆ์ €: ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ฐ์‹œํ•˜๊ณ , ์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • etcd: ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ถ„์‚ฐํ˜• ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

Kubernetes์˜ ์ด์ 

Kubernetes๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฅ์ ์„ ์ œ๊ณตํ•˜์—ฌ ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํšจ์œจ์„ฑ: K8s๋Š” ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์„œ๋ฒ„ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

  2. ์œ ์—ฐ์„ฑ: Kubernetes๋Š” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต์ž์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์ผ๊ด€๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  3. ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ƒํƒœ๊ณ„: Kubernetes๋Š” ํ™œ๋ฐœํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋‹ค์–‘ํ•œ ํˆด, ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์™€ ์šด์˜์ž๊ฐ€ ์‰ฝ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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

Kubernetes์˜ ๋ฐœ์ „๊ณผ ํ•จ๊ป˜ ๋ฏธ๋ž˜์˜ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์†”๋ฃจ์…˜์ด ์–ด๋–ป๊ฒŒ ์ง„ํ™”ํ• ์ง€ ์ง€์ผœ๋ณด๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šด ๊ณผ์ œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.