[k8s] gitops ์ ๋ต
gitops๋ git ๊ธฐ๋ฐ์ผ๋ก ์ธํ๋ผ ์ ์ฒด์ ์ํฉ์ ์ ์ดํ๋ค๋ ์ ๊ทผ๋ฐฉ๋ฒ์ด๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋๋ถ๋ถ ์ด ์ ๊ทผ๋ฒ์ ๊ธฐ๋ณธ์ผ๋ก ๊น๊ณ ์์ํ๋ค.
์ผ๋จ ์ด ์ ๋ต์์ ๊ธฐ๋ณธ์ด ๋๋๊ฒ ArgoCD ๊ฐ์ ์ฟ ๋ฒ๋คํฐ์ค ์ ์ฉ yaml ๋ฐฐํฌ ๋๊ตฌ๋ค.
๋ณธ์ ์ด ์๊ฑฐ๋ ์ ๋ชจ๋ฅธ๋ค๋ฉด ๋ณ๋ ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํ๋ค.
https://blog.naver.com/sssang97/223112272539
์ ๊ฑธ ์ฌ์ฉํด์ git ๊ธฐ๋ฐ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ฅผ ์ ์ํ๊ณ ์์ -๊ด๋ฆฌํ๋๊ฒ ํต์ฌ ์๋ฆฌ ์ค ํ๋๋ค.
- github ๊ฐ์ git ๊ธฐ๋ฐ ๋ ํฌ์งํ ๋ฆฌ์ yaml๋ค์ ์ ์ํด๋๊ณ
- ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ํ๋ฉด ArgoCD์์ ๊ทธ ๋ณ๊ฒฝ์ฌํญ์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์ด๋ ๋ค.
์ ํํ๊ฒ ๋ฐ์ง๋ฉด ArgoCD๊ฐ github์ ๋ฐ๋ผ๋ณด๋๊ฑฐ๊ธด ํ๋ฐ... ์๋ฌดํผ ์์์ ํ๋ฆ์ผ๋ก ๋ณด๋ฉด ์ด๋ ๋ค.
์ฌ๊ธฐ์ Github๊ฐ์๊ฑธ ๋จ์ผ Truth ์์ค(SSOT)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ณ ์๋ฏธ๋ ์๋ ์ค์ ๋์ด์ธ๋ฐ, ๊ตฌ์ฑ ํ์ผ์ ๋จ์ผ ์ง์ ์์ ์ค๋ณต๋์ง ์๊ฒ ๊ด๋ฆฌํ๋ค๋ ์ธก๋ฉด์ ๋ถ๊ฐํ๋ ๊ฒ์ด๋ค.
์ฑ ๋ฐฐํฌ
๋จ์ํ ์ธํ๋ผ ์ฐจ์์ ๋ณ๊ฒฝ์ฌํญ์ ๊ทธ๋ฅ infra ์ฝ๋๋ฅผ ์์ ํด์ ArgoCD๋ฅผ ํ๊ฒ ํ๋ค๊ณ ์น์.
๊ทธ๋ฌ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌ๋ ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น?
์ผ๋จ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ ์ปจํ
์ด๋ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฐํฌ๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์, ์๋์ ๊ฐ์ ํํ๊ฐ ๊ธฐ๋ณธ์ด ๋๋ค๊ณ ํ ์ ์๋ค.
์ฝ๋๋ฅผ ์์ ํ๋ฉด Github Action ๊ฐ์ ํ์ดํ๋ผ์ธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ ์์ค์ฝ๋๋ฅผ docker๋ก ๋ง์์, ๋์ปค ์ ์ฅ์์ pushํ๋ ๊ฒ์ด๋ค.
์ด๋ฏธ์ง ๋ ์ง์คํธ๋ฆฌ๋ docker ๊ณต์, AWS ECR, github ๋ฑ๋ฑ์ด ๋ง์๋ฐ, ์์ฆ์ github์์ ์ ๊ณตํ๋ ghcr๊ฐ ํซํ ๊ฒ ๊ฐ๋ค. ์ ๋ ดํ๊ณ ํธํ์ฑ๋ ์ข๋ค๋.
๊ทผ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ ธ๋ค ์น์. ๊ทธ๋ฌ๋ฉด ์ด๋ฏธ์ง์ ๋ณ๊ฒฝ์ฌํญ์ ์ฟ ๋ฒ๋คํฐ์ค์ ์ด๋ป๊ฒ ๋ฐ์ํด์ผํ ๊น?
์ฌ๊ธฐ์๋ ๊ด์ ์ ๋ฐ๋ผ 2๊ฐ์ง ์ ๊ทผ๋ฒ์ด ์๋๋ฏํ๋ค.
๋ฐฉ๋ฒ1: CI์์ ํตํฉ์ฒ๋ฆฌํ๊ธฐ
์ด๊ฑธ Push ๋ฐฉ์์ gitops๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Github Action ๋ฑ์ CI ํ๋ก์ธ์ค์์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ํธ์ํ๊ณ , ํธ์๊ฐ ๋๋๋ฉด infra ์ฝ๋์ ๋์ปค ์ด๋ฏธ์ง ๋ฒ์ ์ ์ ๋ฐ์ดํธํด์ ์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐฐํฌ๋๋๋ก ์ ๋ํ๋ ๊ฒ์ด๋ค.

๊ทผ๋ฐ ๋ญ... CI๊ฐ ๋๋ฌด ๋ง์ ๊ฒ์ ์ ์ดํ๋ค๋ ์ ์์ ๋ณด์์ ์ผ๋ก ์ข์ง ์๋ค๋ ์๊ฐ๋ ์๋๋ฏํ๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ค์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ฐฉ๋ฒ2: ํด๋ฌ์คํฐ ๋ด์์ ์ง์ ์ฒ๋ฆฌํ๊ธฐ
์ด๊ฑธ Pull ๋ฐฉ์์ gitops๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ด์์ ์ง์ ์ปจํ
์ด๋ ์ด๋ฏธ์ง์ ๋ณ๊ฒฝ์ ์ง์ ๊ฐ์ํด์, ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ฉด ๋ฐฐํฌ๋ฅผ ์ํํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด๋ฐ๊ฑธ ํด์ฃผ๋ ๋๊ตฌ๋ก๋ ArgoCD Image Update ๋ฑ์ด ์๋ค.
๊ทผ๋ฐ ๋ญ ์ํ๊ด๋ฆฌ๊ฐ ๋ฌด์กฐ๊ฑด ์ปจํ ์ด๋์ ์ด๋ฏธ์ง ๋ฒ์ ์ผ ํ์๋ ์๊ณ , ์ง์ ๋ง๋ค์ด๋ ๋๊ธด ํ๋ค.
์ด๊ฑธ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์ด๋ฐ ์์ด ๋๋ค.
docker registry๋ผ๋ ์ํ๋ฅผ ์ค์ฌ์ผ๋ก ๋๊ณ CI์ CD๊ฐ ๋
์์ ์ผ๋ก ๋์ํ๋๊ฒ ๋ค๋ฅธ ์ ์ด๋ค.
๊ทธ๋์ ๋ณด์์ ์ผ๋ก๋ ์กฐ๊ธ ๋ ๋์ ๊ตฌ์ฑ์ด๋ผ๊ณ ํ ์ ์๋ค.
gitops๋ผ๋ ๊ฐ๋ ์ ์ฒ์ ์ ์ํ weavework์์๋ ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๊ถ์ฅํ๋ค๊ณ ํ๋ค.
์ฐธ์กฐ
https://www.samsungsds.com/kr/insights/gitops.html
https://www.youtube.com/watch?v=XvOSZY9-Tzw