๋ฉ๋ชจ. ๋ฒ์ญ: ์ฟ ๋ฒ๋คํฐ์ค ์ปค๋ฎค๋ํฐ์์๋ GitOps๋ผ๋ ํธ๋ ๋๊ฐ ํ์ฐํ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๋ณธ ๋ฐ๋ก๋,
์๋
(์ฌ์ค ๊ณต์์ ์ผ๋ก ์ด๊ฒ์ 2017๋
XNUMX์์ ์ผ์ด๋ฌ์ต๋๋ค. - ๋๋ต ๋ฒ์ญ) Kubernetes์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค. GitOps๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ด๋ ๋ฐฐํฌ ๋ฒ์ ์ด Git ์ ์ฅ์์ ๋ณด์ ํ๊ฒฝ์์ ์ถ์ ๋๋ค๋ ๊ธฐ๋ณธ ์์ด๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฃผ์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.:
- ๋ฐฐํฌ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ณ๊ฒฝ ๊ธฐ๋ก. ์ ์ฒด ํด๋ฌ์คํฐ์ ์ํ๋ Git ์ ์ฅ์์ ์ ์ฅ๋๋ฉฐ ๋ฐฐํฌ๋ ์ปค๋ฐ์ ํตํด์๋ง ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๋ํ ์ปค๋ฐ ๊ธฐ๋ก์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ ์ ์์ต๋๋ค.
- ์ต์ํ Git ๋ช
๋ น์ ์ฌ์ฉํ ๋กค๋ฐฑ. ๋จ์ํ
git reset
๋ฐฐํฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ์ค์ ํ ์ ์์ต๋๋ค. ๊ณผ๊ฑฐ ์ํ๋ ํญ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. - ์ค๋น๋ ์ก์ธ์ค ์ ์ด. ์ผ๋ฐ์ ์ผ๋ก Git ์์คํ ์๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ํ์ฌ๋ ์ด๋ฅผ ๋ณดํธํ๋ ๋ฐ ํน๋ณํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ณดํธ๋ ๋ฐฐํฌ ์์ ์๋ ์ ์ฉ๋ฉ๋๋ค.
- ๋ฐฐํฌ ์ ์ฑ . ๋๋ถ๋ถ์ Git ์์คํ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๊ธฐ๋ณ ์ ์ฑ ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ ์์ฒญ๋ง ๋ง์คํฐ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ผ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ ํ ๊ตฌ์ฑ์์ด ๊ฒํ ํ๊ณ ์๋ฝํด์ผ ํฉ๋๋ค. ์ก์ธ์ค ์ ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐํฌ ์ ๋ฐ์ดํธ์๋ ๋์ผํ ์ ์ฑ ์ด ์ ์ฉ๋ฉ๋๋ค.
๋ณด์๋ค์ํผ GitOps ๋ฐฉ๋ฒ์๋ ๋ง์ ์ด์ ์ด ์์ต๋๋ค. ์ง๋ ํด์๋ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ํนํ ์ธ๊ธฐ๋ฅผ ์ป์์ต๋๋ค. ํ๋๋ ํธ์ ๊ธฐ๋ฐ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ํ ๊ธฐ๋ฐ์ ๋๋ค. ์ด๋ฅผ ์ดํด๋ณด๊ธฐ ์ ์ ๋จผ์ ์ผ๋ฐ์ ์ธ Kubernetes ๋ฐฐํฌ๊ฐ ์ด๋ค ๋ชจ์ต์ธ์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐฐํฌ ๋ฐฉ๋ฒ
์ต๊ทผ ๋ช ๋ ๋์ Kubernetes์์๋ ๋ฐฐํฌ๋ฅผ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ๊ณผ ๋๊ตฌ๊ฐ ํ๋ฆฝ๋์์ต๋๋ค.
- ๋ค์ดํฐ๋ธ Kubernetes/Kustomize ํ
ํ๋ฆฟ ๊ธฐ๋ฐ. ์ด๋ Kubernetes์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์
๋๋ค. ๊ฐ๋ฐ์๋ ๊ธฐ๋ณธ YAML ํ์ผ์ ์์ฑํ๊ณ ์ ์ฉํฉ๋๋ค. ๋์ผํ ํ
ํ๋ฆฟ์ ์ง์์ ์ผ๋ก ๋ค์ ์์ฑํ์ง ์๊ธฐ ์ํด Kustomize๊ฐ ๊ฐ๋ฐ๋์์ต๋๋ค(Kubernetes ํ
ํ๋ฆฟ์ ๋ชจ๋๋ก ์ ํ). ๋ฉ๋ชจ. ๋ฒ์ญ: Kustomize๊ฐ kubectl์ ํตํฉ๋์์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค 1.14 ์ถ์ . - ํฌ๊ตฌ ์ฐจํธ. Helm ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ
ํ๋ฆฟ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์๋ณด๋ค ๋ ์ ์ฐํ ์ฌ์ฉ์ ์ ์ ์ต์
์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ
ํ๋ฆฟ ์ธํธ, ์ด๊ธฐํ ์ปจํ
์ด๋, ์ฌ์ด๋์นด ๋ฑ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํ
ํ๋ฆฟ ๊ธฐ๋ฐ YAML ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. Helm์ ์ด๋ฅผ ๋ค์ํ ๋งค๊ฐ๋ณ์๋ก ์ฑ์ด ๋ค์ ์ด๋ฅผ ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ๊ณ ์
๋ฐ์ดํธ ๋ฐ ๋กค๋ฐฑ์ ํ์ฉํ๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์์์ธ Tiller๋ก ๋ณด๋
๋๋ค. ์ค์ํ ๊ฒ์ Helm์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ๋ ๊ฐ์ ํ
ํ๋ฆฟ์ ์ฝ์
ํ ๋ค์ ๊ธฐ์กด ์ ๊ทผ ๋ฐฉ์๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ ์ฉํ๋ค๋ ๊ฒ์
๋๋ค. (์๋ ๋ฐฉ์๊ณผ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
ํฌ๋ฆ์ ๊ธฐ์ฌ - ๋๋ต. ๋ฒ์ญ). ๊ด๋ฒ์ํ ์์ ์ ๋ค๋ฃจ๋ ๋ค์ํ ๊ธฐ์ฑ Helm ์ฐจํธ๊ฐ ์์ต๋๋ค. - ๋์ฒด ๋๊ตฌ. ๋์ฒด ๋๊ตฌ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ด๋ค ๋ชจ๋์ ๊ณตํต์ ์ ์ผ๋ถ ํ ํ๋ฆฟ ํ์ผ์ Kubernetes์์ ์ฝ์ ์ ์๋ YAML ํ์ผ๋ก ๋ณํํ ๋ค์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ ์์ ์์ ์ฐ๋ฆฌ๋ ์ค์ํ ๋๊ตฌ์ Helm ์ฐจํธ๋ฅผ ์ง์์ ์ผ๋ก ์ฌ์ฉํ๊ณ (์ด๋ฏธ ๋ง์ ๊ฒ๋ค์ด ์ค๋น๋์ด ์์ด ์ถ์ด ํจ์ฌ ์ฌ์์ง๊ธฐ ๋๋ฌธ์) ์์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ธฐ ์ํด "์์ํ" Kubernetes YAML ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.
๋น๊ธฐ๊ธฐ & ๋ฐ๊ธฐ
์ต๊ทผ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์ค ํ๋์์ ๋๊ตฌ๋ฅผ ์๊ฐํ์ต๋๋ค.
์ฃผ์! GitOps ์ฌ์ฉ์ ๋ชจ๋ ์ด์ ์ ๋ ์ ๊ทผ ๋ฐฉ์ ๋ชจ๋ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
ํ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์
ํ ์ ๊ทผ ๋ฐฉ์์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ํด๋ฌ์คํฐ ๋ด์์ ์ ์ฉ๋๋ค๋ ์ฌ์ค์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ํด๋ฌ์คํฐ ๋ด๋ถ์๋ ๊ด๋ จ Git ๋ฐ Docker ๋ ์ง์คํธ๋ฆฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ ์ด์์๊ฐ ์์ต๋๋ค. ํด๋ฌ์คํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ๋ฉด ํด๋ฌ์คํฐ ์ํ๊ฐ ๋ด๋ถ์ ์ผ๋ก ์
๋ฐ์ดํธ๋ฉ๋๋ค. ์ธ๋ถ ํด๋ผ์ด์ธํธ๊ฐ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์ ๊ถํ์ ์ก์ธ์คํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๋งค์ฐ ์์ ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฅ์ :
- ์ธ๋ถ ํด๋ผ์ด์ธํธ์๋ ํด๋ฌ์คํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ถํ์ด ์์ผ๋ฉฐ ๋ชจ๋ ์ ๋ฐ์ดํธ๋ ๋ด๋ถ์์ ๋กค์์๋ฉ๋๋ค.
- ์ผ๋ถ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด Helm ์ฐจํธ ์ ๋ฐ์ดํธ๋ฅผ ๋๊ธฐํํ๊ณ ์ด๋ฅผ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํ ์๋ ์์ต๋๋ค.
- Docker Registry์์ ์ ๋ฒ์ ์ ๊ฒ์ํ ์ ์์ต๋๋ค. ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉด Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฐฐํฌ๊ฐ ์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- ํ ๋๊ตฌ๋ ๋ค์ํ Git ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ ๊ถํ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌ๋ ์ ์์ต๋๋ค. ๋๋ถ์ ๋ค์ค ํ ๋ํธ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ A๋ ๋ค์์คํ์ด์ค A๋ฅผ ์ฌ์ฉํ๊ณ , ํ B๋ ๋ค์์คํ์ด์ค B๋ฅผ ์ฌ์ฉํ๊ณ , ์ธํ๋ผ ํ์ ์ ์ญ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๋๊ตฌ๋ ๋งค์ฐ ๊ฐ๋ณ์ต๋๋ค.
- ์คํผ๋ ์ดํฐ ๋ฑ์ ํด๊ณผ ๊ฒฐํฉ
๋นํธ๋๋ฏธ์ ๋ด์ธ๋ ๋น๋ฐ , ๋น๋ฐ์ Git ์ ์ฅ์์ ์ํธํ๋์ด ์ ์ฅ๋๊ณ ํด๋ฌ์คํฐ ๋ด์์ ๊ฒ์๋ ์ ์์ต๋๋ค. - ํด๋ฌ์คํฐ ๋ด์์ ๋ฐฐํฌ๊ฐ ๋ฐ์ํ๋ฏ๋ก CD ํ์ดํ๋ผ์ธ์ ๋ํ ์ฐ๊ฒฐ์ด ์์ต๋๋ค.
์ฃ์ ํ์:
- Helm ์ฐจํธ์์ ๋ฐฐํฌ ๋น๋ฐ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ผ๋ฐ ๋น๋ฐ๋ณด๋ค ์ด๋ ต์ต๋๋ค. ๋จผ์ ๋ด์ธ๋ ๋น๋ฐ์ ํํ๋ก ์์ฑํ ๋ค์ ๋ด๋ถ ์ด์์๊ฐ ์ํธ๋ฅผ ํด๋ ํ๊ณ ๊ทธ ํ์์ผ ๋์ด์ค๊ธฐ ๋๊ตฌ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฏธ ๋ฐฐํฌ๋ ๋น๋ฐ์ ๊ฐ์ ์ฌ์ฉํ์ฌ Helm์์ ๋ฆด๋ฆฌ์ค๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ฐฐํฌ์ ์ฌ์ฉ๋๋ ๋ชจ๋ Helm ๊ฐ์ผ๋ก ๋น๋ฐ์ ์์ฑํ๊ณ ์ด๋ฅผ ํด๋ ํ ํ Git์ ์ปค๋ฐํ๋ ๊ฒ์ ๋๋ค.
- ๋น๊ธฐ๋ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ฉด ๋น๊ธฐ๋ ๋๊ตฌ์ ๋ฌถ์ด๊ฒ ๋ฉ๋๋ค. ์ด๋ก ์ธํด ํด๋ฌ์คํฐ์ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉ์ ์ง์ ํ๋ ๊ธฐ๋ฅ์ด ์ ํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Kustomize๋ ์ต์ข ํ ํ๋ฆฟ์ด Git์ ์ปค๋ฐ๋๊ธฐ ์ ์ ์คํ๋์ด์ผ ํ๋ค๋ ์ ์์ ๋ณต์กํฉ๋๋ค. ๋ ๋ฆฝ ์คํํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๋ง์ ์๋์ง๋ง ๋ฐฐํฌ ํ๋ก์ธ์ค์ ํตํฉํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค.
ํธ์ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์
ํธ์ ์ ๊ทผ ๋ฐฉ์์์๋ ์ธ๋ถ ์์คํ
(์ฃผ๋ก CD ํ์ดํ๋ผ์ธ)์ด Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ปค๋ฐํ ํ ๋๋ ์ด์ CI ํ์ดํ๋ผ์ธ์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ์ ๋ํ ๋ฐฐํฌ๋ฅผ ์์ํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์์๋ ์์คํ
์ด ํด๋ฌ์คํฐ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
ํ๋ก:
- ๋ณด์์ Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋น๋ ํ์ดํ๋ผ์ธ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
- Helm ์ฐจํธ ๋ฐฐํฌ๊ฐ ๋ ์ฝ๊ณ Helm ํ๋ฌ๊ทธ์ธ์ ์ง์ํฉ๋๋ค.
- ๋น๋ฐ์ ํ์ดํ๋ผ์ธ์์ ์ฌ์ฉ๋ ์ ์๊ณ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๋ผ Git์ ์ํธํ๋์ด ์ ์ฅ๋ ์๋ ์์ผ๋ฏ๋ก ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
- ๋ชจ๋ ์ ํ์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํน์ ๋๊ตฌ์ ๋ํ ์ฐ๊ฒฐ์ ์์ต๋๋ค.
- ์ปจํ ์ด๋ ๋ฒ์ ์ ๋ฐ์ดํธ๋ ๋น๋ ํ์ดํ๋ผ์ธ์ ํตํด ์์๋ ์ ์์ต๋๋ค.
์ฃ์ ํ์:
- ํด๋ฌ์คํฐ ์ก์ธ์ค ๋ฐ์ดํฐ๋ ๋น๋ ์์คํ ๋ด๋ถ์ ์์ต๋๋ค.
- ํ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐํฌ ์ปจํ ์ด๋๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.
- ์ฐ๋ฆฌ์๊ฒ ํ์ํ ํ์ดํ๋ผ์ธ์ ์๋ 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 ์์คํ ์ ์ฐธ์กฐํ์ฌ ๋ก๊ทธ/์ํ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ค๋ฉด ํจ์ฌ ๋ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค.
์ด๋ฌํ ์๋ฏธ์์ ํธ์ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ํ์ดํ๋ผ์ธ์ ์๋ช ์ด ๋กค์์์ ์๋ช ๊ณผ ๋์ผํด์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ด๋ ์ผ๋ถ ๋กค์์์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ ๋ชจ๋ธ์ ๋ชจ๋ ์ํํด ๋ณธ ๊ฒฐ๊ณผ ๊ธฐ์ฌ ์์ฑ์์ ๋์ผํ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค.
- ํ ๋ชจ๋ธ์ ๋ค์์ ํด๋ฌ์คํฐ์์ ์์คํ
๊ตฌ์ฑ ์์์ ์
๋ฐ์ดํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ์ ํฉํฉ๋๋ค(์ฐธ์กฐ:
์ ๋์จ ์ฐ์ฐ์์ ๊ดํ ๊ธฐ์ฌ ). - GitLab CI ๊ธฐ๋ฐ ํธ์ ๋ชจ๋ธ์ Helm ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ์ถ์ํ๋ ๋ฐ ๋งค์ฐ ์ ํฉํฉ๋๋ค. ๋์์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ดํ๋ผ์ธ ๋ด ๋ฐฐํฌ ๋กค์์์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
์ํ . ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ๋งฅ๋ฝ์์ ์ฐ๋ฆฌ๋ KubeCon Europe'19์์ DevOps ์์ง๋์ด์ ์๊ธํ ๋ฌธ์ ๋ฅผ ๋ ผ์ํ ๋ ๋์์๋ "GitOps"๋ฅผ ๋ค์์ต๋๋ค.
๋ฒ์ญ๊ฐ์ PPS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes ํ ๋ฐ ์๋ น: ํด๋ฌ์คํฐ์์ ์คํ ์ค์ธ ๋ฆฌ์์ค๋ฅผ Helm 2 ๊ด๋ฆฌ๋ก ์ ์ก "; - ยซ
Kubernetes ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง์ ์ํ kubedog ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ "; - ยซ
Kubernetes ํ์ฅ ๋ฐ ๋ณด์(๊ฐ์ ๋ฐ ๋์์ ๋ณด๊ณ ์) "; - ยซ
GitLab CI์์ ์ฌ์ฉ์ ์ ์ ์ํฌํ๋ก๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ ".
๋ฑ๋ก๋ ์ฌ์ฉ์๋ง ์ค๋ฌธ ์กฐ์ฌ์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.
GitOps๋ฅผ ์ฌ์ฉํ๊ณ ์๋์?
-
์, ํ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
-
์, ๋ฐ์ด
-
์, ๋น๊ธฐ๊ธฐ + ๋ฐ๊ธฐ
-
์, ๋ค๋ฅธ ๊ฑฐ ๋ง์ด์ผ
-
์๋
30๋ช
์ ์ฌ์ฉ์๊ฐ ํฌํํ์ต๋๋ค. 10๋ช
์ ์ฌ์ฉ์๊ฐ ๊ธฐ๊ถํ์ต๋๋ค.
์ถ์ฒ : habr.com