๋ฉ๋ชจ. ๋ฒ์ญ: GitLab์ Kubernetes ๋์ ์ ํ์ฌ ์ฑ์ฅ์ ๊ธฐ์ฌํ๋ ๋ ๊ฐ์ง ์ฃผ์ ์์ธ ์ค ํ๋๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ต๊ทผ๊น์ง GitLab.com ์จ๋ผ์ธ ์๋น์ค์ ์ธํ๋ผ๋ ๊ฐ์ ๋จธ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ, ๋ถ๊ณผ 8๋ ์ ๋ง ํด๋ KXNUMXs๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์์๋์์ง๋ง ์์ง ์๋ฃ๋์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ์์ง๋์ด๋ค์ด ์ด๋ค ๊ฒฐ๋ก ์ ๋ด๋ฆฌ๋์ง์ ๋ํ GitLab SRE ์์ง๋์ด์ ์ต๊ทผ ๊ธฐ์ฌ ๋ฒ์ญ์ ๋ฐํํ๊ฒ ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค.
์ฝ XNUMX๋
๋์ ์ฐ๋ฆฌ ์ธํ๋ผ ๋ถ์๋ GitLab.com์์ ์คํ๋๋ ๋ชจ๋ ์๋น์ค๋ฅผ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์
ํด ์์ต๋๋ค. ์ด ๊ธฐ๊ฐ ๋์ ์ฐ๋ฆฌ๋ ์๋น์ค๋ฅผ Kubernetes๋ก ์ด๋ํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ์ ํ ์ค ํ์ด๋ธ๋ฆฌ๋ ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด ๊ท์คํ ๊ตํ์ ์ดํด๋ณผ ๊ฒ์
๋๋ค.
GitLab.com์ ์ด๊ธฐ๋ถํฐ ํด๋น ์๋ฒ๋ ๊ฐ์ ๋จธ์ ์ ํด๋ผ์ฐ๋์์ ์คํ๋์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ ๋จธ์ ์ Chef์ ์ํด ๊ด๋ฆฌ๋๋ฉฐ ๋น์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์น๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ์ด์ ๋ GitLab ๋ณต์ฌ๋ณธ์ ์ค์นํ๊ณ ๊ตฌ์ฑํ ๋ ์ปค๋ฎค๋ํฐ์ ์ผ๋ฐ ๊ตฌ์ฑ์์ด ๊ฒฝํํ๋ ๋ชจ๋ ์ฌํ๊ณผ ๊ธฐ์จ์ ๊ฒฝํํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ํ๋์ ์ ์๋ํ์ง๋ง GitLab์ ํ๋ก์ ํธ ์๊ฐ 10๋ง ๊ฐ๋ฅผ ์ด๊ณผํ์ ๋ ์ด์ ํ์ฅ ๋ฐ ๋ฐฐํฌ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
Kubernetes ๋ฐ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ GitLab์ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ
์ด ํ๋ก์ ํธ๋ 2017๋
์ ๋ง๋ค์ด์ก์ต๋๋ค.
ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ฐ Kubernetes๋ก์ ์ถ์ง์ ํตํด ์์ง๋์ด๋ ์ ์ง์ ์ธ ์ ํ์ ๊ณํํ ์ ์์์ผ๋ฉฐ, ๊ทธ ๋์ ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ณ์ ๊ฐ๋ฐํ๋ ๋์์ ๋คํธ์ํฌ ์คํ ๋ฆฌ์ง์ ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์์ฑ ์ค ์ผ๋ถ๋ฅผ ํฌ๊ธฐํ์ต๋๋ค. 2019๋ ์ฌ๋ฆ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณํ์ ์์ํ ์ด๋๋ก ์ด๋ฌํ ์ ํ ์ฌํญ ์ค ๋ง์ ๋ถ๋ถ์ด ํด๊ฒฐ๋์์ผ๋ฉฐ GitLab.com์ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ํ๋ก์ธ์ค๊ฐ ํ์ฌ ์์กฐ๋กญ๊ฒ ์งํ ์ค์ ๋๋ค!
Kubernetes์ GitLab.com ๊ธฐ๋ฅ
GitLab.com์ ๊ฒฝ์ฐ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋จ์ผ ์ง์ญ GKE ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. (์ด๋ฏธ ๊น๋ค๋ก์ด) ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ณต์ก์ฑ์ ์ต์ํํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ NFS์ ์์กดํ์ง ์๋ ์๋น์ค์ ์ค์ ์ ๋ก๋๋ค. GitLab.com์ ์ฃผ๋ก ๋ชจ๋๋ฆฌ์ Rails ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ํฌ๋ก๋ ํน์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฒด ๋ ธ๋ ํ์ ๊ฒฉ๋ฆฌ๋ ๋ค์ํ ์๋ํฌ์ธํธ๋ก ํธ๋ํฝ์ ๋ผ์ฐํ ํฉ๋๋ค.
ํ๋ฐํธ์๋์ ๊ฒฝ์ฐ ์ด๋ฌํ ์ ํ์ ์น, API, Git SSH/HTTPS ๋ฐ ๋ ์ง์คํธ๋ฆฌ์ ๋ํ ์์ฒญ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ๋ฐฑ์๋์ ๊ฒฝ์ฐ ์ํฉ์ ๋ฐ๋ผ ๋ค์ํ ํน์ฑ์ ๋ฐ๋ผ ๋๊ธฐ์ด์ ์์
์ ๋ถํ ํฉ๋๋ค.
์ด๋ฌํ ๋ชจ๋ GitLab.com ์๋น์ค๋ ์์ ๋์ง ์์ GitLab Helm ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ตฌ์ฑ์ ํ์ ์ฐจํธ์์ ์ํ๋๋ฉฐ ์๋น์ค๋ฅผ ์ ์ฐจ์ ์ผ๋ก ํด๋ฌ์คํฐ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด์ ์ ํ์ ์ผ๋ก ํ์ฑํํ ์ ์์ต๋๋ค. Redis, Postgres, GitLab Pages ๋ฐ Gitaly์ ๊ฐ์ ์ผ๋ถ ์ํ ์ ์ฅ ์๋น์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ์ ํฌํจํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง Kubernetes๋ฅผ ์ฌ์ฉํ๋ฉด Chef๊ฐ ํ์ฌ ๊ด๋ฆฌํ๋ VM ์๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค.
Kubernetes ๊ตฌ์ฑ ๊ฐ์์ฑ ๋ฐ ๊ด๋ฆฌ
๋ชจ๋ ์ค์ ์ GitLab ์์ฒด์์ ๊ด๋ฆฌ๋ฉ๋๋ค. ์ด๋ฅผ ์ํด Terraform๊ณผ Helm์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ํ๋ก์ ํธ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. GitLab์ ์คํํ๊ธฐ ์ํด ๊ฐ๋ฅํ ๋๋ง๋ค GitLab ์์ฒด๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ์ด์ ์์ ์ ์ํด ๋ณ๋์ GitLab ์ค์น๊ฐ ์์ต๋๋ค. ์ด๋ GitLab.com ๋ฐฐํฌ ๋ฐ ์ ๋ฐ์ดํธ๋ฅผ ์ํํ ๋ GitLab.com์ ๊ฐ์ฉ์ฑ์ ์์กดํ์ง ์๋๋ก ํ๊ธฐ ์ํด ํ์ํฉ๋๋ค.
Kubernetes ํด๋ฌ์คํฐ์ฉ ํ์ดํ๋ผ์ธ์ ๋ณ๋์ GitLab ์ค์น์์ ์คํ๋์ง๋ง ๋ค์ ์ฃผ์์์ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ฝ๋ ์ ์ฅ์์ ๋ฏธ๋ฌ๊ฐ ์์ต๋๋ค.
-
k8s-์ํฌ๋ก๋/gitlab-com โ GitLab Helm ์ฐจํธ๋ฅผ ์ํ GitLab.com ๊ตฌ์ฑ ํ๋ ์์ํฌ; -
k8s-์ํฌ๋ก๋/gitlab-helmfiles - GitLab ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ง์ ์ฐ๊ฒฐ๋์ง ์์ ์๋น์ค์ ๋ํ ๊ตฌ์ฑ์ ํฌํจํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ก๊น ๋ฐ ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง์ ์ํ ๊ตฌ์ฑ์ ๋ฌผ๋ก PlantUML๊ณผ ๊ฐ์ ํตํฉ ๋๊ตฌ๋ ํฌํจ๋ฉ๋๋ค. -
Gitlab-com-์ธํ๋ผ โ Kubernetes ๋ฐ ๋ ๊ฑฐ์ VM ์ธํ๋ผ๋ฅผ ์ํ Terraform ๊ตฌ์ฑ์ ๋๋ค. ์ฌ๊ธฐ์๋ ํด๋ฌ์คํฐ ์์ฒด, ๋ ธ๋ ํ, ์๋น์ค ๊ณ์ ๋ฐ IP ์ฃผ์ ์์ฝ์ ํฌํจํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๋ณ๊ฒฝ์ฌํญ์ด ์์ผ๋ฉด ๊ณต๊ฐ ๋ณด๊ธฐ๊ฐ ํ์๋ฉ๋๋ค.
SRE์ ๊ฒฝ์ฐ ๋งํฌ๋ ์์ฐ ๋ฐ ์ก์ธ์ค๊ฐ ์ ํ๋ GitLab ์ค์น์ ์ธ๋ถ ์ฐจ์ด์ ์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ง์๊ณผ ์ปค๋ฎค๋ํฐ๋ ์ด์ ํ๋ก์ ํธ(SRE์๋ง ๊ณต๊ฐ๋จ)์ ์ก์ธ์คํ์ง ์๊ณ ๋ ์ ์๋ ๊ตฌ์ฑ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณผ ์ ์์ต๋๋ค. ์ฝ๋์ฉ ๊ณต๊ฐ GitLab ์ธ์คํด์ค์ CI ํ์ดํ๋ผ์ธ์ฉ ๋น๊ณต๊ฐ ์ธ์คํด์ค๋ฅผ ๊ฒฐํฉํจ์ผ๋ก์จ ๊ตฌ์ฑ ์ ๋ฐ์ดํธ๋ฅผ ์ํด GitLab.com์ผ๋ก๋ถํฐ ๋ ๋ฆฝ์ฑ์ ๋ณด์ฅํ๋ ๋์์ ๋จ์ผ ์ํฌํ๋ก๋ฅผ ์ ์งํฉ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์ ์๊ฒ ๋ ์ฌ์ค
์ด๋ํ๋ ๋์ Kubernetes์ ์๋ก์ด ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ๋ฐฐํฌ์ ์ ์ฉํ๋ ๊ฒฝํ์ ์ป์์ต๋๋ค.
1. ๊ฐ์ฉ์กด ๊ฐ ํธ๋ํฝ์ผ๋ก ์ธํ ๋น์ฉ ์ฆ๊ฐ
GitLab.com์ Git ์ ์ฅ์ ํ๋ฆฟ์ ๋ํ ์ผ์ผ ์ก์ ํต๊ณ(์ผ์ผ ๋ฐ์ดํธ)
Google์ ๋คํธ์ํฌ๋ฅผ ์ง์ญ์ผ๋ก ๋๋๋๋ค. ์ด๋ ์ฐจ๋ก๋ก ์ ๊ทผ์ฑ ์์ญ(AZ)์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. Git ํธ์คํ ์ ๋๋์ ๋ฐ์ดํฐ์ ์ฐ๊ด๋์ด ์์ผ๋ฏ๋ก ๋คํธ์ํฌ ์ก์ ์ ์ ์ดํ๋ โโ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ด๋ถ ํธ๋ํฝ์ ๊ฒฝ์ฐ ๋์ผํ ๊ฐ์ฉ์ฑ ์์ญ ๋ด์ ์๋ ๊ฒฝ์ฐ์๋ง ์ก์ ์ด ๋ฌด๋ฃ์ ๋๋ค. ์ด ๊ธ์ ์ฐ๋ ์์ ์์ ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ ๊ทผ๋ฌด์ผ์ ์ฝ 100TB์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค(Git ๋ฆฌํฌ์งํ ๋ฆฌ์๋ง ํด๋น). ์ด์ VM ๊ธฐ๋ฐ ํ ํด๋ก์ง์ ๋์ผํ ๊ฐ์ ๋จธ์ ์ ์๋ ์๋น์ค๋ ์ด์ ๋ค๋ฅธ Kubernetes ํฌ๋์์ ์คํ๋ฉ๋๋ค. ์ด๋ ์ด์ ์ VM์ ๋ก์ปฌ์ด์๋ ์ผ๋ถ ํธ๋ํฝ์ด ์ ์ฌ์ ์ผ๋ก ๊ฐ์ฉ์ฑ ์์ญ ์ธ๋ถ๋ก ์ด๋ํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์ง์ญ GKE ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ณต์ฑ์ ์ํด ์ฌ๋ฌ ๊ฐ์ฉ์ฑ ์์ญ์ ํ์ฅํ ์ ์์ต๋๋ค. ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค
2. ์ ํ, ๋ฆฌ์์ค ์์ฒญ ๋ฐ ํ์ฅ
Registry.gitlab.com์์ ํ๋ก๋์
ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋ณต์ ๋ณธ ์์
๋๋ค. UTC 15:00์ ํธ๋ํฝ์ด ์ต๊ณ ์กฐ์ ๋ฌํฉ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์คํ ๋ฆฌ๋ 2019๋ XNUMX์ ์ฒซ ๋ฒ์งธ ์๋น์ค์ธ GitLab Container Registry๋ฅผ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด์ ์์๋์์ต๋๋ค. ์ด ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌํ๊ณ ํธ๋ํฝ์ด ๋ง์ ์๋น์ค๋ ์ธ๋ถ ์ข ์์ฑ์ด ๊ฑฐ์ ์๋ ์ํ ๋น์ ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ํฉํ ์ ํ์ด์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ง๋ฉดํ ์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋ ๋ ธ๋์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํด ๋ง์ ์์ ํฌ๋๊ฐ ์ ๊ฑฐ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ก ์ธํด ์์ฒญ๊ณผ ํ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ์ต๋๋ค.
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์ฆ๊ฐํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ์ฐ ์์ฒญ์ ๋ํ ๋ฎ์ ๊ฐ(๊ฐ Pod์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ์์ฝ)๊ณผ ์ฌ์ฉ๋์ ๋ํ "๊ด๋ํ" ํ๋ ์ ํ์ด ํฌํ๋ฅผ ์ด๋ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. (ํฌํ) ๋
ธ๋์ ๋์ ์์ค์ ํด๊ฑฐ. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์์๋ค.
3. ์งํ ๋ฐ ๋ก๊ทธ
์ธํ๋ผ ๋ถ๋ฌธ์ ๋๊ธฐ ์๊ฐ, ์ค๋ฅ์จ ๋ฐ ์ค์น ํฌํ๋์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค.
์ง๋ ํ ํด ๋์ ์ธํ๋ผ ๋ถ๋ฌธ์ ์ฃผ์ ์ด๋ฒคํธ ์ค ํ๋๋ SLO ๋ชจ๋ํฐ๋ง ๋ฐ ์์ ์ด ๊ฐ์ ๋ ๊ฒ์ ๋๋ค. SLO๋ฅผ ํตํด ๋ง์ด๊ทธ๋ ์ด์ ์ค์ ๋ฉด๋ฐํ ๋ชจ๋ํฐ๋งํ ๊ฐ๋ณ ์๋น์ค์ ๋ํ ๋ชฉํ๋ฅผ ์ค์ ํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ํฅ์๋ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์๋ ๋ถ๊ตฌํ๊ณ ๋ฉํธ๋ฆญ๊ณผ ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ฆ์ ํ์ธํ๋ ๊ฒ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด ์ง์ฐ ์๊ฐ๊ณผ ์ค๋ฅ์จ์ ์ค์ ์ ๋์ด ๋ง์ด๊ทธ๋ ์ด์ ์ค์ธ ์๋น์ค์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ํ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ผ๋ถ ์ํฌ๋ก๋๋ฅผ ํด๋ฌ์คํฐ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ ์งํ์ ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์์ฒญ ์๋ ์ ์ง๋ง ๋งค์ฐ ํน์ ํ ๊ตฌ์ฑ ์ข
์์ฑ์ ๊ฐ๋ ๊ธฐ๋ฅ์ ํ์ธํด์ผ ํ ๋ ํนํ ์ฌ๊ฐํด์ก์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์
์ ํตํด ์ป์ ์ฃผ์ ๊ตํ ์ค ํ๋๋ ๋ชจ๋ํฐ๋ง ์ ์ธก์ ํญ๋ชฉ๋ฟ๋ง ์๋๋ผ ๋ก๊ทธ ๋ฐ '๋กฑํ
์ผ'๋ ๊ณ ๋ คํด์ผ ํ๋ค๋ ์ ์ด์์ต๋๋ค. (์ด๊ฑด ๋๋ต
์ด์ VM ์ธํ๋ผ์ ์๋ก์ด Kubernetes ๊ธฐ๋ฐ ์ธํ๋ผ์์ ๋์ผํ ์์ฒญ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋
ํนํ ๊ณผ์ ๋ฅผ ์ ์ํ์ต๋๋ค. ๋ฆฌํํธ ์ค ์ํํธ ๋ง์ด๊ทธ๋ ์ด์
๊ณผ ๋ฌ๋ฆฌ (์ ํ๋ฆฌ์ผ์ด์
์ "์๋ ๊ทธ๋๋ก" ์๋ก์ด ์ธํ๋ผ๋ก ๋น ๋ฅด๊ฒ ์ด์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
4. ํธ๋ํฝ์ ์ ํด๋ฌ์คํฐ๋ก ์ ํ
GitLab.com์ ๊ฒฝ์ฐ ์๋ฒ์ ์ผ๋ถ๋ ๋ค์ ์ ์ฉ์
๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ๊ฒฝ์ฐ ๋ด๋ถ ํ๋ก์ ํธ์ ๋ํ ์์ฒญ์ด ๋จผ์ Kubernetes๋ก ์ ์ก๋ ๋ค์ HAProxy๋ฅผ ํตํด ๋ฐฑ์๋์ ๋ํ ๊ฐ์ค์น๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋๋จธ์ง ํธ๋ํฝ์ ์ ์ง์ ์ผ๋ก ํด๋ฌ์คํฐ๋ก ์ ํํ๋ค๋ ์๋ฏธ์ ๋๋ค. VM์์ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋์ ๊ธฐ์กด ์ธํ๋ผ์ ์ ์ธํ๋ผ ๊ฐ์ ํธ๋ํฝ์ ์ฝ๊ฒ ๋ฆฌ๋๋ ์ ํ๊ณ ์ด์ ๋ฐ๋ผ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ฒ์ ๋ฉฐ์น ๋์ ๊ธฐ์กด ์ธํ๋ผ๋ฅผ ๋กค๋ฐฑํ ์ ์๋๋ก ์ค๋นํ๋ ๊ฒ์ด ๋งค์ฐ ์ ์ตํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค.
5. ํฌ๋์ ์์ฝ ์ฉ๋ ๋ฐ ์ฉ๋
๊ฑฐ์ ์ฆ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ํ์ธ๋์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ ์๋น์ค์ฉ ํฌ๋๋ ๋น ๋ฅด๊ฒ ์์๋์์ง๋ง Sidekiq์ฉ ํฌ๋ ์์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ์ต๋๋ค.
์ด ์ฌ๋ก์์ ์ป์ ๊ตํ์ Kubernetes์ HPA(Horizontal Pod Autoscaler)๊ฐ ํธ๋ํฝ ์ฆ๊ฐ๋ฅผ ์ ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด, ์ํฌ๋ก๋์ ํน์ฑ์ ๊ณ ๋ คํ๊ณ (ํนํ ์์๊ฐ ๊ณ ๋ฅด์ง ์๊ฒ ๋ถ์ฐ๋ ๊ฒฝ์ฐ) ํฌ๋์ ์ฌ์ ์ฉ๋์ ํ ๋นํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๊ฐ์์ค๋ฌ์ด ์์ ๊ธ์ฆ์ผ๋ก ์ธํด ๊ธ๊ฒฉํ ํ์ฅ์ด ์ด๋ฃจ์ด์ก๊ณ , ์ด๋ก ์ธํด ๋ ธ๋ ํ์ ํ์ฅํ ์๊ฐ์ ๊ฐ๊ธฐ๋ ์ ์ CPU ๋ฆฌ์์ค๊ฐ ํฌํ๋์์ต๋๋ค.
ํด๋ฌ์คํฐ์์ ์ต๋ํ ๋ง์ ๊ฒ์ ์ง๋ด๊ณ ์ถ์ ์ ํน์ ํญ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฒ์์๋ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋๋ํ ํฌ๋ ์์ฐ์ผ๋ก ์์ํ๊ณ ๋์ค์ ์ด๋ฅผ ์ค์ด๋ฉด์ SLO๋ฅผ ๋ฉด๋ฐํ ๊ด์ฐฐํ๊ณ ์์ต๋๋ค. Sidekiq ์๋น์ค์ฉ ํฌ๋ ์คํ ์๋๊ฐ ํฌ๊ฒ ๋นจ๋ผ์ก์ผ๋ฉฐ ์ด์ ํ๊ท ์ฝ 40์ด๊ฐ ์์๋ฉ๋๋ค.
๊ฒฐ๋ก
๊ฐ ์๋น์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ ํ ์ฐ๋ฆฌ๋ ํ๋ก๋์ ์์ Kubernetes๋ฅผ ์ฌ์ฉํ์ฌ ์ป์ ์ ์๋ ์ด์ , ์ฆ ๋ ๋น ๋ฅด๊ณ ์์ ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ, ํ์ฅ, ๋ ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ ๋น์ ๋ง์กฑํ์ต๋๋ค. ๋ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฅ์ ์ GitLab.com ์๋น์ค ๊ทธ ์ด์์ ๋๋ค. ๊ณต์ Helm ์ฐจํธ์ ๋ชจ๋ ๊ฐ์ ์ ์ฌ์ฉ์์๊ฒ ์ด์ต์ด ๋ฉ๋๋ค.
Kubernetes ๋ง์ด๊ทธ๋ ์ด์ ๋ชจํ ์ด์ผ๊ธฐ๋ฅผ ์ฌ๋ฏธ์๊ฒ ์ฆ๊ธฐ์ จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์๋ก์ด ์๋น์ค๋ฅผ ๊ณ์ํด์ ํด๋ฌ์คํฐ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค. ์ถ๊ฐ ์ ๋ณด๋ ๋ค์ ๊ฐํ๋ฌผ์์ ํ์ธํ ์ ์์ต๋๋ค.
- ยซ
Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? "; - ยซ
Kubernetes์ GitLab.com "; -
GitLab.com์ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ Epic .
๋ฒ์ญ๊ฐ์ ์ถ์
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
ํ๋ก๋์ ํ๊ฒฝ์์ Kubernetes๋ฅผ ์ฌ์ฉํ 3๋ : ์ฐ๋ฆฌ๊ฐ ์ดํดํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. "; - ยซ
Kubernetes๋ฅผ ์ฌ์ฉํ ๋ ํํ ์ ์ง๋ฅด๋ 10๊ฐ์ง ์ค์ "; - ยซ
ํ๋ก๋์ ๋ถ์ผ์ Kubernetes ์ฑ๊ณต ์ฌ๋ก. 3๋ถ: GitHub "; - ยซ
Tinder๊ฐ Kubernetes๋ก ์ ํ ".
์ถ์ฒ : habr.com