GitOps: ํ’€ ๋ฐ ํ‘ธ์‹œ ๋ฐฉ๋ฒ• ๋น„๊ต

๋ฉ”๋ชจ. ๋ฒˆ์—ญ: ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” GitOps๋ผ๋Š” ํŠธ๋ Œ๋“œ๊ฐ€ ํ™•์—ฐํžˆ ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ๋Š”๋ฐ, ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ ๋ณธ ๋ฐ”๋กœ๋Š”, ๋ฐฉ๋ฌธ KubeCon Europe 2019. ์ด ์šฉ์–ด๋Š” ๋น„๊ต์  ์ตœ๊ทผ์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฝ”์ธ Weaveworks์˜ ์ฑ…์ž„์ž์ธ Alexis Richardson์€ ์šด์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์นœ์ˆ™ํ•œ ๋„๊ตฌ(์ฃผ๋กœ Git, ๋”ฐ๋ผ์„œ ์ด๋ฆ„)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ Kubernetes์˜ ๊ตฌ์„ฑ์„ Git์— ์ €์žฅํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํด๋Ÿฌ์Šคํ„ฐ์— ์ž๋™์œผ๋กœ ๋กค์•„์›ƒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ Kubernetes๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Matthias Jg๋Š” ์ด ๋ฌธ์„œ์—์„œ ์ด ์ถœ์‹œ์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

GitOps: ํ’€ ๋ฐ ํ‘ธ์‹œ ๋ฐฉ๋ฒ• ๋น„๊ต

์ž‘๋…„ (์‚ฌ์‹ค ๊ณต์‹์ ์œผ๋กœ ์ด๊ฒƒ์€ 2017๋…„ XNUMX์›”์— ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. - ๋Œ€๋žต ๋ฒˆ์—ญ) Kubernetes์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ์ƒˆ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. GitOps๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด๋Š” ๋ฐฐํฌ ๋ฒ„์ „์ด Git ์ €์žฅ์†Œ์˜ ๋ณด์•ˆ ํ™˜๊ฒฝ์—์„œ ์ถ”์ ๋œ๋‹ค๋Š” ๊ธฐ๋ณธ ์•„์ด๋””์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์ฃผ์š” ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.:

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

๋ณด์‹œ๋‹ค์‹œํ”ผ GitOps ๋ฐฉ๋ฒ•์—๋Š” ๋งŽ์€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ํ•ด์—๋Š” ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํŠนํžˆ ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ํ‘ธ์‹œ ๊ธฐ๋ฐ˜์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ํ’€ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ๋จผ์ € ์ผ๋ฐ˜์ ์ธ Kubernetes ๋ฐฐํฌ๊ฐ€ ์–ด๋–ค ๋ชจ์Šต์ธ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ ๋ฐฉ๋ฒ•

์ตœ๊ทผ ๋ช‡ ๋…„ ๋™์•ˆ Kubernetes์—์„œ๋Š” ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๊ณผ ๋„๊ตฌ๊ฐ€ ํ™•๋ฆฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ๋„ค์ดํ‹ฐ๋ธŒ Kubernetes/Kustomize ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜. ์ด๋Š” Kubernetes์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋ณธ YAML ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ…œํ”Œ๋ฆฟ์„ ์ง€์†์ ์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด Kustomize๊ฐ€ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Kubernetes ํ…œํ”Œ๋ฆฟ์„ ๋ชจ๋“ˆ๋กœ ์ „ํ™˜). ๋ฉ”๋ชจ. ๋ฒˆ์—ญ: Kustomize๊ฐ€ kubectl์— ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค 1.14 ์ถœ์‹œ.
  2. ํˆฌ๊ตฌ ์ฐจํŠธ. Helm ์ฐจํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹๋ณด๋‹ค ๋” ์œ ์—ฐํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์˜ต์…˜์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ…œํ”Œ๋ฆฟ ์„ธํŠธ, ์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ, ์‚ฌ์ด๋“œ์นด ๋“ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ YAML ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Helm์€ ์ด๋ฅผ ๋‹ค์–‘ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฑ„์šด ๋‹ค์Œ ์ด๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ๋ฐ ๋กค๋ฐฑ์„ ํ—ˆ์šฉํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ์ธ Tiller๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ Helm์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์›ํ•˜๋Š” ๊ฐ’์„ ํ…œํ”Œ๋ฆฟ์— ์‚ฝ์ž…ํ•œ ๋‹ค์Œ ๊ธฐ์กด ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์ž‘๋™ ๋ฐฉ์‹๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”. ํ—ฌ๋ฆ„์˜ ๊ธฐ์‚ฌ - ๋Œ€๋žต. ๋ฒˆ์—ญ). ๊ด‘๋ฒ”์œ„ํ•œ ์ž‘์—…์„ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ์„ฑ Helm ์ฐจํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋Œ€์ฒด ๋„๊ตฌ. ๋Œ€์ฒด ๋„๊ตฌ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค ๋ชจ๋‘์˜ ๊ณตํ†ต์ ์€ ์ผ๋ถ€ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ Kubernetes์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” YAML ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•œ ๋‹ค์Œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋‹น๊ธฐ๊ธฐ & ๋ฐ€๊ธฐ

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

์ฃผ์˜! GitOps ์‚ฌ์šฉ์˜ ๋ชจ๋“  ์ด์ ์€ ๋‘ ์ ‘๊ทผ ๋ฐฉ์‹ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

ํ’€ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹

GitOps: ํ’€ ๋ฐ ํ‘ธ์‹œ ๋ฐฉ๋ฒ• ๋น„๊ต

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

์žฅ์  :

  1. ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ์—๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์—†์œผ๋ฉฐ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ๋Š” ๋‚ด๋ถ€์—์„œ ๋กค์•„์›ƒ๋ฉ๋‹ˆ๋‹ค.
  2. ์ผ๋ถ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Helm ์ฐจํŠธ ์—…๋ฐ์ดํŠธ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ณ  ์ด๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Docker Registry์—์„œ ์ƒˆ ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋ฐฐํฌ๊ฐ€ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
  4. ํ’€ ๋„๊ตฌ๋Š” ๋‹ค์–‘ํ•œ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒ€ A๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค A๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ํŒ€ B๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค B๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ธํ”„๋ผ ํŒ€์€ ์ „์—ญ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ์ผ๋ฐ˜์ ์œผ๋กœ ๋„๊ตฌ๋Š” ๋งค์šฐ ๊ฐ€๋ณ์Šต๋‹ˆ๋‹ค.
  6. ์˜คํผ๋ ˆ์ดํ„ฐ ๋“ฑ์˜ ํˆด๊ณผ ๊ฒฐํ•ฉ ๋น„ํŠธ๋‚˜๋ฏธ์˜ ๋ด‰์ธ๋œ ๋น„๋ฐ€, ๋น„๋ฐ€์€ Git ์ €์žฅ์†Œ์— ์•”ํ˜ธํ™”๋˜์–ด ์ €์žฅ๋˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ๊ฒ€์ƒ‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  7. ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ๋ฐฐํฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ CD ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ฃ„์ˆ˜ ํŒ€์€:

  1. Helm ์ฐจํŠธ์—์„œ ๋ฐฐํฌ ๋น„๋ฐ€์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜ ๋น„๋ฐ€๋ณด๋‹ค ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ด‰์ธ๋œ ๋น„๋ฐ€์˜ ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•œ ๋‹ค์Œ ๋‚ด๋ถ€ ์šด์˜์ž๊ฐ€ ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•˜๊ณ  ๊ทธ ํ›„์—์•ผ ๋Œ์–ด์˜ค๊ธฐ ๋„๊ตฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฏธ ๋ฐฐํฌ๋œ ๋น„๋ฐ€์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ Helm์—์„œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ฐฐํฌ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  Helm ๊ฐ’์œผ๋กœ ๋น„๋ฐ€์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ํ•ด๋…ํ•œ ํ›„ Git์— ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ๋‹น๊ธฐ๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•˜๋ฉด ๋‹น๊ธฐ๋Š” ๋„๊ตฌ์— ๋ฌถ์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Kustomize๋Š” ์ตœ์ข… ํ…œํ”Œ๋ฆฟ์ด Git์— ์ปค๋ฐ‹๋˜๊ธฐ ์ „์— ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์—์„œ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋ง์€ ์•„๋‹ˆ์ง€๋งŒ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค์— ํ†ตํ•ฉํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

ํ‘ธ์‹œ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹

GitOps: ํ’€ ๋ฐ ํ‘ธ์‹œ ๋ฐฉ๋ฒ• ๋น„๊ต

ํ‘ธ์‹œ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ(์ฃผ๋กœ CD ํŒŒ์ดํ”„๋ผ์ธ)์ด Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹ํ•œ ํ›„ ๋˜๋Š” ์ด์ „ CI ํŒŒ์ดํ”„๋ผ์ธ์ด ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๋ฐฐํฌ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ๋Š” ์‹œ์Šคํ…œ์ด ํด๋Ÿฌ์Šคํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ:

  1. ๋ณด์•ˆ์€ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
  2. Helm ์ฐจํŠธ ๋ฐฐํฌ๊ฐ€ ๋” ์‰ฝ๊ณ  Helm ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋น„๋ฐ€์€ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์„ค์ •์— ๋”ฐ๋ผ Git์— ์•”ํ˜ธํ™”๋˜์–ด ์ €์žฅ๋  ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.
  4. ๋ชจ๋“  ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํŠน์ • ๋„๊ตฌ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์€ ์—†์Šต๋‹ˆ๋‹ค.
  5. ์ปจํ…Œ์ด๋„ˆ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋Š” ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ์‹œ์ž‘๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃ„์ˆ˜ ํŒ€์€:

  1. ํด๋Ÿฌ์Šคํ„ฐ ์•ก์„ธ์Šค ๋ฐ์ดํ„ฐ๋Š” ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ’€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.
  3. ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ํŒŒ์ดํ”„๋ผ์ธ์€ ์›๋ž˜ Gitlab Runner์šฉ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ CD ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒ€์€ Azure DevOps ๋˜๋Š” Jenkins๋กœ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ณ ... ์ˆ˜๋งŽ์€ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ: ๋ฐ€๊ฑฐ๋‚˜ ๋‹น๊ธธ ๊ฒƒ์ธ๊ฐ€?

์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ ‡๋“ฏ์ด ๊ฐ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ž‘์—…์€ ํ•œ ๊ฐ€์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ˆ˜๋™์œผ๋กœ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ Weave Flux์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ์‚ฌ๋ฅผ ์ ‘ํ•œ ํ›„ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— GitOps ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ์˜ ๊ฒฝ์šฐ ์ด๋Š” ์‰ฌ์› ์ง€๋งŒ Helm ์ฐจํŠธ์— ์–ด๋ ค์›€์„ ๊ฒช๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ Weave Flux๋Š” Helm Chart Operator์˜ ์ดˆ๋ณด์ ์ธ ๋ฒ„์ „๋งŒ ์ œ๊ณตํ–ˆ์ง€๋งŒ ์ง€๊ธˆ๋„ ๋น„๋ฐ€์„ ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€ ์ž‘์—…์ด ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ž๊ฒฉ ์ฆ๋ช…์€ ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋Œ์–ด์˜ค๊ธฐ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํ›จ์”ฌ ๋” ์•ˆ์ „ํ•˜๊ณ  ์ถ”๊ฐ€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ผ ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ์ •๋„๋กœ ํ›จ์”ฌ ๋” ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋ ‡๋‹ค๋ฉด ํ’€ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋” ๋…ธ๋™ ์ง‘์•ฝ์ ์ด๊ณ  ๋ณด์•ˆ ์ด์ ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ‘ธ์‹œ ์ ‘๊ทผ ๋ฐฉ์‹๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ๋ˆ„๊ตฐ๊ฐ€๋Š” ํ‘ธ์‹œ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ๋Š” CD ์‹œ์Šคํ…œ์— ๋„ˆ๋ฌด ๋ฌถ์—ฌ ์žˆ์œผ๋ฏ€๋กœ ๋‚˜์ค‘์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋” ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์—๋Š” (์–ธ์ œ๋‚˜ ๊ทธ๋ ‡๋“ฏ์ด) ํŠน์ • ๊ฒฝ์šฐ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์กฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ž์ฒด ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ํ’€ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ Weave Flux์™€ Helm ์ฐจํŠธ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ์‰ฝ๊ฒŒ ์ ์šฉํ•˜๊ณ  ๋น„๋ฐ€์„ ์›ํ™œํ•˜๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Helm ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ํ‘ธ์‹œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ•ญ์ƒ ๋งŽ์€ ๋‰˜์•™์Šค๊ฐ€ ์žˆ๊ณ  ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ ํ•ฉํ•œ ๋‹จ์ผ ์†”๋ฃจ์…˜์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ €๋Š” GitOps๋ฅผ ์ ๊ทน ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. GitOps๋Š” ์‚ถ์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ณด์•ˆ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์ œ ๊ฒฝํ—˜์ด ๊ท€ํ•˜์˜ ๋ฐฐํฌ ์œ ํ˜•์— ๋” ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

PS ๋ฒˆ์—ญ๊ฐ€์˜ ๋ฉ”๋ชจ

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

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

์šฐ๋ฆฌ๋Š” ๋‘ ๋ชจ๋ธ์„ ๋ชจ๋‘ ์‹œํ—˜ํ•ด ๋ณธ ๊ฒฐ๊ณผ ๊ธฐ์‚ฌ ์ž‘์„ฑ์ž์™€ ๋™์ผํ•œ ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํ’€ ๋ชจ๋ธ์€ ๋‹ค์ˆ˜์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ: ์• ๋“œ์˜จ ์—ฐ์‚ฐ์ž์— ๊ด€ํ•œ ๊ธฐ์‚ฌ).
  2. GitLab CI ๊ธฐ๋ฐ˜ ํ‘ธ์‹œ ๋ชจ๋ธ์€ Helm ์ฐจํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ถœ์‹œํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ ๋‚ด ๋ฐฐํฌ ๋กค์•„์›ƒ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์›Œํ”„. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ๋งฅ๋ฝ์—์„œ ์šฐ๋ฆฌ๋Š” KubeCon Europe'19์—์„œ DevOps ์—”์ง€๋‹ˆ์–ด์˜ ์‹œ๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ๋…ผ์˜ํ•  ๋•Œ ๋Š์ž„์—†๋Š” "GitOps"๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฒˆ์—ญ๊ฐ€์˜ PPS

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

GitOps๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‚˜์š”?

  • ์˜ˆ, ํ’€ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  • ์‘, ๋ฐ€์–ด

  • ์˜ˆ, ๋‹น๊ธฐ๊ธฐ + ๋ฐ€๊ธฐ

  • ์‘, ๋‹ค๋ฅธ ๊ฑฐ ๋ง์ด์•ผ

  • ์•„๋‹ˆ

30๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 10๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€