์ด ๊ธฐ์ฌ์์๋ Kubernetes์ ์ ๊ณต๋๋ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ์ต์ CI/CD ํ์ดํ๋ผ์ธ์ ํ์ค์์ ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ(Docker Registry ๋ฐ ๊ทธ ์ ์ฌ ํญ๋ชฉ)์ ์ถ์ ๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ฆฌํ๋ ๋ฌธ์ ์ ๋ํด ์ค๋ช
ํฉ๋๋ค. ์ด๋ฏธ์ง์ ๊ด๋ จ์ฑ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ์ฒญ์ ์๋ํ, ๊ณต๊ฐ ์ ์ฝ ๋ฐ ํ ์๊ตฌ ์ฌํญ ์ถฉ์กฑ์ ์ด๋ ค์์ ๋ํ ์ฃผ์ ๊ธฐ์ค์ด ์ ๊ณต๋ฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ํน์ ์คํ ์์ค ํ๋ก์ ํธ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ด๋ ค์์ ์ด๋ป๊ฒ ๊ทน๋ณตํ ์ ์๋์ง ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๊ฐ
์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง ์๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐํ์ฌ ๋ ๋ง์ ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ ์ฐจ์งํ๋ฏ๋ก ๋น์ฉ์ด ํฌ๊ฒ ์ฆ๊ฐํ ์ ์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ์์ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ํ์ฉ ๊ฐ๋ฅํ ์ฆ๊ฐ๋ฅผ ์ ์ด, ์ ํ ๋๋ ์ ์งํ๋ ค๋ฉด ๋ค์์ด ํ์ฉ๋ฉ๋๋ค.
- ์ด๋ฏธ์ง์๋ ๊ณ ์ ๋ ์์ ํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ฆฌํ์ธ์.
์ฒซ ๋ฒ์งธ ์ ํ์ ์๊ท๋ชจ ํ์ ๊ฒฝ์ฐ ํ์ฉ๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ถฉ๋ถํ ์๊ตฌ ํ๊ทธ๋ฅผ ๋ณด์ ํ ๊ฒฝ์ฐ(latest
, main
, test
, boris
๋ฑ), ๋ ์ง์คํธ๋ฆฌ ํฌ๊ธฐ๊ฐ ๋ถํ์ด ์ค๋ฅด์ง ์์ผ๋ฉฐ ์ค๋ซ๋์ ์ฒญ์์ ๋ํด ์ ํ ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค. ๊ฒฐ๊ตญ ๊ด๋ จ์๋ ์ด๋ฏธ์ง๋ ๋ชจ๋ ์ง์์ง๊ณ ์ฒญ์ํ ์์
์ด ๋จ์ง ์์ต๋๋ค (๋ชจ๋ ์์
์ ์ผ๋ฐ ๊ฐ๋น์ง ์์ง๊ธฐ๊ฐ ์ํํจ).
๊ทธ๋ฌ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฐ์ ํฌ๊ฒ ์ ํํ๋ฉฐ ์ต์ CI/CD ํ๋ก์ ํธ์๋ ๊ฑฐ์ ์ ์ฉ๋์ง ์์ต๋๋ค. ๊ฐ๋ฐ์ ํ์์ ์ธ ๋ถ๋ถ์ ์คํ ๋ฉ์ด์ ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ก์ด ๊ธฐ๋ฅ์ ํจ์ฌ ๋น ๋ฅด๊ฒ ํ ์คํธ, ๋ฐฐํฌ ๋ฐ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ ํ๋ก์ ํธ์์๋ ์ปค๋ฐํ ๋๋ง๋ค CI ํ์ดํ๋ผ์ธ์ด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์ฌ๊ธฐ์์ ์ด๋ฏธ์ง๋ ๋๋ฒ๊น ๋ฐ ๋๋จธ์ง ๊ฒ์ฌ๋ฅผ ์ํด ๋ค์ํ Kubernetes ํ๋ก๋ก ์กฐ๋ฆฝ, ํ ์คํธ, ๋กค์์๋๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์ ์์ด๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์ต์ข ์ฌ์ฉ์์๊ฒ ์ ๋ฌ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋ ์ด์ ๋ก์ผ ๊ณผํ์ด ์๋๋ผ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ผ์์ ์ธ ์ฌ๊ฑด์ ๋๋ค. ์ด ๊ธฐ์ฌ๋ฅผ ์ฝ๊ณ ์๊ธฐ ๋๋ฌธ์ ์๋ง๋ ๋น์ ์๊ฒ ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
๋ฒ๊ทธ ์์ ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ณ๋ ฌ๋ก ์ํ๋๊ณ ๋ฆด๋ฆฌ์ค๋ ํ๋ฃจ์ ์ฌ๋ฌ ๋ฒ ์ํ๋ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ ํ๋ก์ธ์ค์๋ ์๋นํ ์์ ์ปค๋ฐ์ด ์๋ฐ๋๋ค๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ์ ๋ง์ ์์ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค.. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฆฌํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ด๋ จ์๋ ์ด๋ฏธ์ง๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
ํ์ง๋ง ์ด๋ฏธ์ง๊ฐ ๊ด๋ จ์ฑ์ด ์๋์ง ์ด๋ป๊ฒ ํ๋จํ ์ ์์๊น์?
์ด๋ฏธ์ง์ ๊ด๋ จ์ฑ์ ๋ํ ๊ธฐ์ค
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฃผ์ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ฒซ ๋ฒ์งธ(๊ฐ์ฅ ๋ถ๋ช
ํ๊ณ ๊ฐ์ฅ ์ค์ํ) ์ด๋ฏธ์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ์ฌ Kubernetes์์ ์ฌ์ฉ๋๋. ์ด๋ฌํ ์ด๋ฏธ์ง๋ฅผ ์ ๊ฑฐํ๋ฉด ์๋นํ ์์ฐ ์ค๋จ ์๊ฐ ๋น์ฉ์ด ๋ฐ์ํ๊ฑฐ๋(์: ๋ณต์ ์ ์ด๋ฏธ์ง๊ฐ ํ์ํ ์ ์์) ๋ฃจํ์ ๋ํ ํ ๋๋ฒ๊น
๋
ธ๋ ฅ์ด ๋ฌดํจํ๋ ์ ์์ต๋๋ค. (์ด ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ํน๋ณํ
2. ๋ ๋ฒ์งธ(๋ ๋ช ํํ์ง๋ง ๋งค์ฐ ์ค์ํ๋ฉฐ ๋ค์ ์ฐฉ์ทจ์ ๊ด๋ จ๋จ) - ์ด๋ฏธ์ง ์ฌ๊ฐํ ๋ฌธ์ ๋ฐ๊ฒฌ ์ ๋กค๋ฐฑ ํ์ ํ์ฌ ๋ฒ์ ์์๋. ์๋ฅผ ๋ค์ด Helm์ ๊ฒฝ์ฐ ์ ์ฅ๋ ๋ฒ์ ์ ๋ฆด๋ฆฌ์ค์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง์ ๋๋ค. (๊ทธ๋ฐ๋ฐ Helm์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ณธ์ด 256๊ฐ๋ก ์ ํ๋์ด ์์ง๋ง ์ค์ ๋ก ์ ์ฅํด์ผ ํ ์ฌ๋์ ๊ฑฐ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ฒ์ ์ด ๋ง๋์?..) ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ํนํ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฒ์ ์ ์ ์ฅํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ "๋กค๋ฐฑ"ํฉ๋๋ค.
3. ์ธ ๋ฒ์งธ - ๊ฐ๋ฐ์ ์๊ตฌ: ํ์ฌ ์์ ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ์ด๋ฏธ์ง์ ๋๋ค. ์๋ฅผ ๋ค์ด, PR์ ๊ณ ๋ คํ๊ณ ์๋ค๋ฉด ๋ง์ง๋ง ์ปค๋ฐ, ์๋ฅผ ๋ค์ด ์ด์ ์ปค๋ฐ์ ํด๋นํ๋ ์ด๋ฏธ์ง๋ฅผ ๋จ๊ฒจ ๋๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ ์ํ๊ฒ ๋ชจ๋ ์์ ์ผ๋ก ๋์๊ฐ์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ์ ์์ต๋๋ค.
4. ๋ท์งธ - ์ด๋ฏธ์ง ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ์ ์ ํด๋น, ์ฆ. ์ต์ข ์ ํ์ v1.0.0, 20.04.01/XNUMX/XNUMX, sierra ๋ฑ์ ๋๋ค.
์ฃผ์: ์ฌ๊ธฐ์ ์ ์๋ ๊ธฐ์ค์ ๋ค์ํ ํ์ฌ์ ์์ญ ๊ฐ ๊ฐ๋ฐํ๊ณผ ์ํธ ์์ฉํ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๊ณต์ํ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฌผ๋ก ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ธ๋ถ ์ฌํญ๊ณผ ์ฌ์ฉ๋๋ ์ธํ๋ผ(์: Kubernetes๋ฅผ ์ฌ์ฉํ์ง ์์)์ ๋ฐ๋ผ ์ด๋ฌํ ๊ธฐ์ค์ด ๋ค๋ฅผ ์ ์์ต๋๋ค.
์๊ฒฉ ๋ฐ ๊ธฐ์กด ์๋ฃจ์
์ผ๋ฐ์ ์ผ๋ก ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ๊ฐ ํฌํจ๋ ์ธ๊ธฐ ์๋ ์๋น์ค๋ ์์ฒด ์ด๋ฏธ์ง ์ ๋ฆฌ ์ ์ฑ ์ ์ ๊ณตํฉ๋๋ค. ํด๋น ์๋น์ค์์๋ ๋ ์ง์คํธ๋ฆฌ์์ ํ๊ทธ๊ฐ ์ ๊ฑฐ๋๋ ์กฐ๊ฑด์ ์ ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์กฐ๊ฑด์ ์ด๋ฆ, ์์ฑ ์๊ฐ, ํ๊ทธ ์*์ ๊ฐ์ ๋งค๊ฐ๋ณ์์ ์ํด ์ ํ๋ฉ๋๋ค.
* ํน์ ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ ๊ตฌํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ฐ๋ฆฌ๋ 2020๋ XNUMX์ ํ์ฌ Azure CR, Docker Hub, ECR, GCR, GitHub ํจํค์ง, GitLab Container Registry, Harbor Registry, JFrog Artifactory, Quay.io ์๋ฃจ์ ์ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ต๋๋ค.
์ด ๋งค๊ฐ๋ณ์ ์ธํธ๋ ๋ค ๋ฒ์งธ ๊ธฐ์ค, ์ฆ ๋ฒ์ ์ ํด๋นํ๋ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ธฐ์ค์ ๋ํด์๋ ๊ธฐ๋์น์ ์ฌ์ ์ ๋ฅ๋ ฅ์ ๋ฐ๋ผ ์ผ์ข ์ ์ ์ถฉ์(๋ ์๊ฒฉํ๊ฑฐ๋ ๋ฐ๋๋ก ๋ ๊ด๋ํ ์ ์ฑ )์ ์ ํํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฐ๋ฐ์์ ์๊ตฌ ์ฌํญ๊ณผ ๊ด๋ จ๋ ์ธ ๋ฒ์งธ ๊ธฐ์ค์ ํ ๋ด์ ํ๋ก์ธ์ค(์ด๋ฏธ์ง์ ํน์ ์ด๋ฆ ์ง์ , ํน๋ณ ํ์ฉ ๋ชฉ๋ก ๋ฐ ๋ด๋ถ ๊ณ์ฝ ์ ์ง ๊ด๋ฆฌ)๋ฅผ ๊ตฌ์ฑํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ถ๊ทน์ ์ผ๋ก๋ ์๋ํ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ฑ ์๋ฃจ์ ์ ๊ธฐ๋ฅ์ด ์ถฉ๋ถํ์ง ์๋ค๋ฉด ์ค์ค๋ก ๋ญ๊ฐ๋ฅผ ํด์ผ ํฉ๋๋ค.
์ฒ์ ๋ ๊ธฐ์ค์ ์ํฉ์ ์ ์ฌํฉ๋๋ค. ์ธ๋ถ ์์คํ (์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐฐํฌ๋๋ ์์คํ (์ฐ๋ฆฌ์ ๊ฒฝ์ฐ Kubernetes))์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง ์์ผ๋ฉด ๋ง์กฑํ ์ ์์ต๋๋ค.
Git์ ์ํฌํ๋ก ๊ทธ๋ฆผ
Git์์ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ํ๊ณ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ค์ด์ด๊ทธ๋จ์ ๋จธ๋ฆฌ๊ฐ ์๋ ์์ด์ฝ์ ํ์ฌ ๋ชจ๋ ์ฌ์ฉ์(์ต์ข
์ฌ์ฉ์, ํ
์คํฐ, ๊ด๋ฆฌ์ ๋ฑ)๋ฅผ ์ํด Kubernetes์ ๋ฐฐํฌ๋์ด ์๊ฑฐ๋ ๊ฐ๋ฐ์๊ฐ ๋๋ฒ๊น
๋ฐ ์ ์ฌํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ํ๋
๋๋ค.
์ ๋ฆฌ ์ ์ฑ ์์ ์ด๋ฏธ์ง ๋ณด์กด(์ญ์ ๋ถ๊ฐ)๋ง ํ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋๋์? ์ฃผ์ด์ง ํ๊ทธ ์ด๋ฆ์ผ๋ก?
๋ถ๋ช
ํ ๊ทธ๋ฌํ ์๋๋ฆฌ์ค๋ ๋๊ตฌ๋ ํ๋ณตํ๊ฒ ๋ง๋ค์ง ์์ ๊ฒ์
๋๋ค.
์ ์ฑ ์์ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ ์ ์๋๋ก ํ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋๋์? ์ฃผ์ด์ง ์๊ฐ ๊ฐ๊ฒฉ/๋ง์ง๋ง ์ปค๋ฐ ์์ ๋ฐ๋ผ?
๊ฒฐ๊ณผ๋ ํจ์ฌ ์ข์์ก์ง๋ง ์ฌ์ ํ ์ด์์ ์ด์ง๋ ์์ต๋๋ค. ๊ฒฐ๊ตญ ๋ฒ๊ทธ๋ฅผ ๋๋ฒ๊น
ํ๊ธฐ ์ํด ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง๊ฐ ํ์ํ(๋๋ K8์ ๋ฐฐํฌ๋) ๊ฐ๋ฐ์๊ฐ ์ฌ์ ํ ์์ต๋๋ค...
ํ์ฌ ์์ฅ ์ํฉ์ ์์ฝํ์๋ฉด, ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ฒญ์ ์ ์ถฉ๋ถํ ์ ์ฐ์ฑ์ ์ ๊ณตํ์ง ์์ผ๋ฉฐ, ๊ทธ ์ฃผ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ์ธ๊ณ์ ๊ต๋ฅํ ๋ฐฉ๋ฒ์ด ์๋ค. ์ด๋ฌํ ์ ์ฐ์ฑ์ด ํ์ํ ํ์ Docker Registry API(๋๋ ํด๋น ๊ตฌํ์ ๊ธฐ๋ณธ API)๋ฅผ ์ฌ์ฉํ์ฌ "์ธ๋ถ์์" ์ด๋ฏธ์ง ์ญ์ ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ตฌํํด์ผ ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์๋ก ๋ค๋ฅธ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํ์ ์ด๋ฏธ์ง ์ ๋ฆฌ๋ฅผ ์๋ํํ๋ ๋ฒ์ฉ ์๋ฃจ์ ์ ์ฐพ๊ณ ์์์ต๋๋ค...
๋ณดํธ์ ์ธ ์ด๋ฏธ์ง ์ ๋ฆฌ๋ฅผ ํฅํ ์ฐ๋ฆฌ์ ๊ธธ
์ด๋ฌํ ํ์๋ ์ด๋์์ ์ค๋๊ฐ? ์ฌ์ค ์ฐ๋ฆฌ๋ ๋ณ๋์ ๊ฐ๋ฐ์ ๊ทธ๋ฃน์ด ์๋๋ผ ๋ค์์ ๊ฐ๋ฐ์๋ฅผ ๋์์ ์ง์ํ์ฌ CI/CD ๋ฌธ์ ๋ฅผ ์ข
ํฉ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐ ๋์์ ์ฃผ๋ ํ์
๋๋ค. ์ด๋ฅผ ์ํ ์ฃผ์ ๊ธฐ์ ๋๊ตฌ๋ ์คํ ์์ค ์ ํธ๋ฆฌํฐ์
๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ ์ง์คํธ๋ฆฌ*์ ๊ฒ์ํ๋ ๊ฒ์(๋น๋ ์งํ) ์ด๋ฌํ ์ ํธ๋ฆฌํฐ์ ํ์คํ ๊ธฐ๋ฅ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง๋ ์ ์ฅ์ ์ํด ๋ฐฐ์น๋๋ฏ๋ก ์ ์ฅ ๊ณต๊ฐ์ด ๋ฌด์ ํ์ด ์๋ ๊ฒฝ์ฐ ํ์ ์ฒญ์์ ๋ํ ์ฑ ์์ ๊ทํ์๊ฒ ์์ต๋๋ค. ์ง์ ๋ ๋ชจ๋ ๊ธฐ์ค์ ์ถฉ์กฑํ๋ฉด์ ์ด๋ป๊ฒ ์ฑ๊ณตํ๋์ง์ ๋ํด ๋ ์์ธํ ๋ ผ์ํ ๊ฒ์ ๋๋ค.
* ๋ ์ง์คํธ๋ฆฌ ์์ฒด๋ ๋ค๋ฅผ ์ ์์ง๋ง(Docker Registry, GitLab Container Registry, Harbor ๋ฑ) ์ฌ์ฉ์๋ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๋ณดํธ์ ์ธ ์๋ฃจ์ ์ ๋ ์ง์คํธ๋ฆฌ ๊ตฌํ์ ์์กดํ์ง ์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ ์ธ๋ถ์์ ์คํ๋๋ฉฐ ๋ชจ๋ ์ฌ๋์๊ฒ ๋์ผํ ๋์์ ์ ๊ณตํฉ๋๋ค.
Werf๋ฅผ ์์ ๊ตฌํ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ง๋ง ์ฌ์ฉ๋ ์ ๊ทผ ๋ฐฉ์์ด ์ ์ฌํ ์ด๋ ค์์ ์ง๋ฉดํ ๋ค๋ฅธ ํ์๋ ์ ์ฉํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฐ๋น ์ก์ด ์ธ๋ถ ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ ๋ด์ฅ๋ ๊ธฐ๋ฅ ๋์ ์ด๋ฏธ์ง ์ ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ Docker Registry API๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ ์์ ํ๊ทธ ์์ฑ ์๊ฐ(์์์ ์ธ๊ธ)์ ๋ํ ๋์ผํ ๊ธฐ๋ณธ ์ ์ฑ
์ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์ถ๊ฐ๋จ ๋ฐฐํฌ๋ ์ธํ๋ผ์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ์ฉ ๋ชฉ๋ก, ์ฆ. ์ฟ ๋ฒ๋คํฐ์ค. ํ์์ ๊ฒฝ์ฐ Kubernetes API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๋ฐ๋ณตํ๊ณ ๊ฐ ๋ชฉ๋ก์ ์ป๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ์ต๋๋ค. image
.
์ด ์ฌ์ํ ํด๊ฒฐ์ฑ ์ ๊ฐ์ฅ ์ค์ํ ๋ฌธ์ (๊ธฐ์ค 1)๋ฅผ ํด๊ฒฐํ์ง๋ง, ์ด๋ ์ฒญ์ ๋ฉ์ปค๋์ฆ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ฌ์ ์ ์์์ผ ๋ฟ์ด์์ต๋๋ค. ๋ค์์ด์ ํจ์ฌ ๋ ํฅ๋ฏธ๋ก์ด ๋จ๊ณ๋ ๊ฒฐ์ ์ด์์ต๋๋ค. ๊ฒ์๋ ์ด๋ฏธ์ง๋ฅผ Git ๊ธฐ๋ก๊ณผ ์ฐ๊ฒฐ.
ํ๊ทธ ์ง์ ๋ฐฉ์
์ฐ์ , ์ฐ๋ฆฌ๋ ์ต์ข
์ด๋ฏธ์ง๊ฐ ์ ๋ฆฌ์ ํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํด์ผ ํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๊ณ ํ๊ทธ ์ง์ ๋ฐฉ์์ ๋ฐ๋ผ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํ ๋ ์ฌ์ฉ์๊ฐ ํน์ ํ๊ทธ ์ง์ ์ต์
(git-branch
, git-commit
๋๋ git-tag
) ํด๋น ๊ฐ์ ์ฌ์ฉํ์ต๋๋ค. CI ์์คํ
์์๋ ์ด๋ฌํ ๊ฐ์ด ํ๊ฒฝ ๋ณ์์ ๋ฐ๋ผ ์๋์ผ๋ก ์ค์ ๋์์ต๋๋ค. ์ฌ์ค์ ์ต์ข
์ด๋ฏธ์ง๋ ํน์ Git ๊ธฐ๋ณธ ์์์ ์ฐ๊ฒฐ๋์์ต๋๋ค., ์ฒญ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ผ๋ฒจ์ ์ ์ฅํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ํตํด Git์ ๋จ์ผ ์ ๋ณด ์์ค๋ก ์ฌ์ฉํ ์ ์๋ ์ผ๋ จ์ ์ ์ฑ ์ด ํ์ํ์ต๋๋ค.
- Git์์ ๋ธ๋์น/ํ๊ทธ๋ฅผ ์ญ์ ํ๋ฉด ๋ ์ง์คํธ๋ฆฌ์ ๊ด๋ จ ์ด๋ฏธ์ง๊ฐ ์๋์ผ๋ก ์ญ์ ๋์์ต๋๋ค.
- Git ํ๊ทธ ๋ฐ ์ปค๋ฐ๊ณผ ์ฐ๊ฒฐ๋ ์ด๋ฏธ์ง ์๋ ์ ํํ ์คํค๋ง์ ์ฌ์ฉ๋ ํ๊ทธ ์์ ์ฐ๊ฒฐ๋ ์ปค๋ฐ์ด ์์ฑ๋ ์๊ฐ์ ๋ฐ๋ผ ์ ์ด๋ ์ ์์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก ๊ฒฐ๊ณผ ๊ตฌํ์ ์ฐ๋ฆฌ์ ์๊ตฌ ์ฌํญ์ ๋ง์กฑ์์ผฐ์ง๋ง ๊ณง ์๋ก์ด ๊ณผ์ ๊ฐ ์ฐ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์์ต๋๋ค. ์ฌ์ค Git ๊ธฐ๋ณธ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ํ๊ทธ ์ง์ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ฌ๋ฌ ๊ฐ์ง ๋จ์ ์ ์ง๋ฉดํ์ต๋๋ค. (๊ทธ ์ค๋ช
์ ์ด ๊ธฐ์ฌ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฏ๋ก ๋ชจ๋ ์ฌ๋์ด ์ธ๋ถ ์ฌํญ์ ์์งํ ์ ์์ต๋๋ค.
์๋ก์ด ์๊ณ ๋ฆฌ์ฆ
์? ์ฝํ ์ธ ๊ธฐ๋ฐ ํ๊ทธ ์ง์ ์ ์ฌ์ฉํ๋ฉด ๊ฐ ํ๊ทธ๊ฐ Git์ ์ฌ๋ฌ ์ปค๋ฐ์ ์ถฉ์กฑํ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์ ๋ฆฌํ ๋ ๋ ์ด์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๋ง ์ ํ๊ทธ๊ฐ ๋ ์ง์คํธ๋ฆฌ์ ์ถ๊ฐ๋ ์ปค๋ฐ์์.
์๋ก์ด ์ ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ ํ๊ทธ ์ง์ ๋ฐฉ์์์ ๋ฒ์ด๋ ๋น๋ํ๊ธฐ๋ก ๊ฒฐ์ ๋์์ต๋๋ค. ๋ฉํ ์ด๋ฏธ์ง ํ๋ก์ธ์ค, ๊ฐ๊ฐ์ ๋ค์์ ์ ์ฅํฉ๋๋ค.
- ๊ฒ์๊ฐ ์ํ๋ ์ปค๋ฐ(์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง๊ฐ ์ถ๊ฐ, ๋ณ๊ฒฝ ๋๋ ๋์ผํ๊ฒ ์ ์ง๋์๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์)
- ๊ทธ๋ฆฌ๊ณ ์กฐ๋ฆฝ๋ ์ด๋ฏธ์ง์ ํด๋นํ๋ ๋ด๋ถ ์๋ณ์์ ๋๋ค.
์ฆ, ์ ๊ณต๋์๋ค. ๊ฒ์๋ ํ๊ทธ๋ฅผ Git์ ์ปค๋ฐ๊ณผ ์ฐ๊ฒฐ.
์ต์ข ๊ตฌ์ฑ ๋ฐ ์ผ๋ฐ ์๊ณ ๋ฆฌ์ฆ
์ด์ ์ ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉ์๋ ํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋ ์ ์ฑ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ ์ ์ฑ ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
- ๋ง์ ์ฐธ์กฐ, ์ฆ ์ค์บ ์ค์ ์ฌ์ฉ๋๋ Git ํ๊ทธ ๋๋ Git ๋ถ๊ธฐ.
- ๊ทธ๋ฆฌ๊ณ ์ธํธ์ ๊ฐ ์ฐธ์กฐ์ ๋ํด ๊ฒ์๋ ์ด๋ฏธ์ง์ ํ๊ณ.
์ค๋ช ์ ์ํด ๊ธฐ๋ณธ ์ ์ฑ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
cleanup:
keepPolicies:
- references:
tag: /.*/
limit:
last: 10
- references:
branch: /.*/
limit:
last: 10
in: 168h
operator: And
imagesPerReference:
last: 2
in: 168h
operator: And
- references:
branch: /^(main|staging|production)$/
imagesPerReference:
last: 10
์ด ๊ตฌ์ฑ์๋ ๋ค์ ๊ท์น์ ์ค์ํ๋ ์ธ ๊ฐ์ง ์ ์ฑ ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ์ต๊ทผ 10๊ฐ์ Git ํ๊ทธ์ ๋ํ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํฉ๋๋ค(ํ๊ทธ ์์ฑ ๋ ์ง ๊ธฐ์ค).
- ์ง๋ ์ฃผ์ ํ๋์ด ์๋ ์ค๋ ๋๋ 2๊ฐ ์ดํ๋ก, ์ง๋ ์ฃผ์ ๊ฒ์๋ ์ด๋ฏธ์ง๋ 10๊ฐ ์ดํ๋ก ์ ์ฅํ์ธ์.
- ์ง์ ์ฉ ์ด๋ฏธ์ง 10๊ฐ ์ ์ฅ
main
,staging
ะธproduction
.
์ต์ข ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ ๋จ๊ณ๋ก ์์ฝ๋ฉ๋๋ค.
- ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์์ ๋งค๋ํ์คํธ๋ฅผ ๊ฒ์ํฉ๋๋ค.
- Kubernetes์์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง๋ ์ ์ธ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ K8s API๋ฅผ ํด๋งํ์ฌ ์ฌ์ ์ ํํ์ต๋๋ค.
- Git ๊ธฐ๋ก์ ์ค์บํ๊ณ ์ง์ ๋ ์ ์ฑ ์ ๋ฐ๋ผ ์ด๋ฏธ์ง๋ฅผ ์ ์ธํฉ๋๋ค.
- ๋จ์ ์ด๋ฏธ์ง๋ฅผ ์ ๊ฑฐํ๋ ์ค์ ๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ๋์๊ฐ๋ฉด, werf์์๋ ๋ค์๊ณผ ๊ฐ์ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
๊ทธ๋ฌ๋ werf๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ ํ๋์ ๊ตฌํ ๋๋ ๋ค๋ฅธ ๊ตฌํ์์(์ด๋ฏธ์ง ํ๊น
์ ๋ํด ์ ํธํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ผ) ๊ณ ๊ธ ์ด๋ฏธ์ง ์ ๋ฆฌ์ ๋ํ ์ ์ฌํ ์ ๊ทผ ๋ฐฉ์์ ๋ค๋ฅธ ์์คํ
/์ ํธ๋ฆฌํฐ์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ๊ธฐ์ตํ๊ณ ์คํ์์ ์๋ฃจ์
์ ์ต๋ํ ์ํํ๊ฒ ํตํฉํ ์ ์๋ ๊ธฐํ๋ฅผ ์ฐพ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฌํํ ๊ธธ์ด ๊ทํ๊ฐ ์๋ก์ด ์ธ๋ถ ์ฌํญ๊ณผ ์๊ฐ์ผ๋ก ๊ทํ์ ํน์ ์ฌ๋ก๋ฅผ ๋ณด๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฒฐ๋ก
- ์กฐ๋ง๊ฐ ๋๋ถ๋ถ์ ํ์ ๋ ์ง์คํธ๋ฆฌ ์ค๋ฒํ๋ก ๋ฌธ์ ์ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค.
- ์๋ฃจ์ ์ ๊ฒ์ํ ๋ ๋จผ์ ์ด๋ฏธ์ง์ ๊ด๋ จ์ฑ์ ๋ํ ๊ธฐ์ค์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.
- ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ ์๋น์ค์์ ์ ๊ณตํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด "์ธ๋ถ ์ธ๊ณ", ์ฆ Kubernetes์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง์ ํ ์ํฌํ๋ก์ ํน์ฑ์ ๊ณ ๋ คํ์ง ์๋ ๋งค์ฐ ๊ฐ๋จํ ์ ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ ์ฐํ๊ณ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ CI/CD ํ๋ก์ธ์ค์ ๋ํ ์ดํด๊ฐ ์์ด์ผ ํ๋ฉฐ Docker ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ก๋ง ์๋ํ๋ ๊ฒ์ด ์๋๋๋ค.
PS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Werf ์์ง๊ธฐ์ ์ฝํ ์ธ ๊ธฐ๋ฐ ํ๊น : ์ ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ์๋ํฉ๋๊น? "; - ยซ
werf๋ก 3๋ฐฉํฅ ๋ณํฉ: Helm์ "์คํ ๋ก์ด๋"๋ก ์ฌ์ฉํ์ฌ Kubernetes์ ๋ฐฐํฌ "; - ยซ
werf์์ ๋จ์ผ ์ ์ฅ์ ๋ฐ ๋ค์ค ์ ์ฅ์์ ๋ํ ์ง์ ๋ฐ Docker ๋ ์ง์คํธ๋ฆฌ์ ๊ด๋ จ์ด ์๋ ์์ "; - ยซ
werf 1.1 ๋ฆด๋ฆฌ์ค: ํ์ฌ ๋น๋ ๊ฐ์ ์ฌํญ ๋ฐ ํฅํ ๊ณํ ".
์ถ์ฒ : habr.com