2022๋…„ 11์›” 03์ผยท1๋ถ„ ์ฝ๊ธฐ

Kubernetes์—์„œ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ๊ตฌํ˜„: ์˜ต์…˜ ๋ฐ ์ด์ 

Kubernetes ํ™˜๊ฒฝ์—์„œ ์ด ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ํŒจํ„ด, ์žฅ์  ๋ฐ ์˜ต์…˜์„ ์‚ดํŽด๋ณด์„ธ์š”.

Kubernetes์—์„œ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ๊ตฌํ˜„: ์˜ต์…˜ ๋ฐ ์ด์ 

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

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

์ฒญ๋ก์ƒ‰ ๋ฐฐํฌ์˜ ๋ช‡ ๊ฐ€์ง€ ์ฃผ๋ชฉํ• ๋งŒํ•œ ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Kubernetes๋Š” ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ ๋ฐ ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํ™˜๊ฒฝ์œผ๋กœ ์ธ๊ธฐ๊ฐ€ ๋†’์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜์ง€๋งŒ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋กค๋ง ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฐํฌ ๊ฐœ์ฒด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์šดํƒ€์ž„ ์—†์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŒŸ(Pod)์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์–ด๋А ์ •๋„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Kubernetes๋กœ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋„๊ตฌ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

Argo ๋กค์•„์›ƒ์€ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐ ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ, ์‹คํ—˜ ๋ฐ ๊ธฐํƒ€ ์ ์ง„์  ์ œ๊ณต ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ๋ฐฐํฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” Kubernetes ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ CRD(Custom Resource Definitions)์˜ ์˜คํ”ˆ ์†Œ์Šค ์„ธํŠธ์ž…๋‹ˆ๋‹ค. ์„ ํƒ์ ์œผ๋กœ Kubernetes ์ˆ˜์‹  ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ์„œ๋น„์Šค ๋ฉ”์‹œ์™€ ํ†ตํ•ฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ์ค‘์— ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์ฟผ๋ฆฌํ•˜๊ณ  ํ•ด์„ํ•˜์—ฌ KPI(ํ•ต์‹ฌ ์„ฑ๊ณผ ์ง€ํ‘œ)๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋ฆด๋ฆฌ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์Šน๊ฒฉํ•˜๊ฑฐ๋‚˜ ๋กค๋ฐฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

GitLab CI/CD๋Š” ๋Œ€๊ทœ๋ชจ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•œ DevOps ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ๋ฌธ์ œ ์ถ”์  ๊ธฐ๋Šฅ ์™ธ์—๋„ GitLab์€ Blue-Green ๋ฐฐํฌ์™€ ๊ฐ™์€ ์ ์ง„์  ๋ฐฐํฌ ์ „๋žต์„ ํฌํ•จํ•˜์—ฌ Kubernetes ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ˆ˜๋™ ํŠธ๋ฆฌ๊ฑฐ ๋ฐฐํฌ ๋ฐ ์˜ˆ์•ฝ ๋ฐฐํฌ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” CI/CD ์ž๋™ํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์ฒญ๋ก์ƒ‰ ๋ฐฐํฌ ํŒจํ„ด, ๋‹ค์–‘ํ•œ ์ด์  ๋ฐ Kubernetes ํ™˜๊ฒฝ ๋‚ด์—์„œ ์ด ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์˜ต์…˜์„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Argo Rollouts, Flagger, GitLab CI/CD ๋˜๋Š” CircleCI์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ๊ณ ๋ คํ•˜๋ฉด ๋ณด๋‹ค ์›ํ™œํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ฌ์„ฑํ•˜๊ณ  ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋ฉฐ Kubernetes ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ์ž์™€ ์ตœ์ข… ์‚ฌ์šฉ์ž ๋ชจ๋‘์˜ ์ „๋ฐ˜์ ์ธ ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ณ ์œ ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ํŒ€์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ์†”๋ฃจ์…˜์„ ์‹๋ณ„ํ•˜์‹ญ์‹œ์˜ค.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
Kubernetes์—์„œ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ๊ตฌํ˜„: ์˜ต์…˜ ๋ฐ ์ด์  | AppMaster