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 ํ๊ฒฝ์์ ๊ฐ๋ฐ์์ ์ต์ข ์ฌ์ฉ์ ๋ชจ๋์ ์ ๋ฐ์ ์ธ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ฅผ ํ์ํ ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์ ๊ณ ์ ํ ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ์ฌ ํ์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ๋ง๋ ์๋ฃจ์ ์ ์๋ณํ์ญ์์ค.


