Kubernetes์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํจํค์ง ๊ด๋ฆฌ์์ ๋ํ ์ด์ผ๊ธฐ์ ๋ณธ์ง์ ์ด๋ชจํฐ์ฝ์ ์ฌ์ฉํ์ฌ ์ค๋ช ํ ์ ์์ต๋๋ค.
- ์์๋ Helm(์ต์ Emoji ๋ฆด๋ฆฌ์ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ)์ ๋๋ค.
- ์ ๊ธ - ๋ณด์;
- ์์ ๋จ์๊ฐ ๋ฌธ์ ์ ํด๊ฒฐ์ฑ ์ ๋๋ค.
์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ๋ณต์กํด์ง ๊ฒ์ด๋ฉฐ ์ด์ผ๊ธฐ๋ ๊ธฐ์ ์ ์ธ ์ธ๋ถ ์ฌํญ์ผ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค. Helm์ ์์ ํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ.
- ๋ชจ๋ฅด๊ฑฐ๋ ์์ด๋ฒ๋ฆฐ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด Helm์ด ๋ฌด์์ธ์ง ๊ฐ๋ตํ๊ฒ ์ค๋ช ํฉ๋๋ค. ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉฐ ์ํ๊ณ์ ์ด๋์ ์์นํฉ๋๊น?
- Helm ์ํคํ ์ฒ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ตฌ์ฑ ์์์ ์ํคํ ์ฒ๋ฅผ ์ดํดํ์ง ์์ผ๋ฉด ๋ณด์๊ณผ ๋๊ตฌ ๋๋ ์๋ฃจ์ ์ ๋์ฑ ์์ ํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ํ๊ฐ ์๋ฃ๋์ง ์์ต๋๋ค.
- Helm ๊ตฌ์ฑ ์์์ ๋ํด ๋ ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.
- ๊ฐ์ฅ ๋จ๊ฑฐ์ด ์ง๋ฌธ์ ๋ฏธ๋, ์ฆ Helm 3์ ์ ๋ฒ์ ์ ๋๋ค.
์ด ๋ฌธ์์ ๋ชจ๋ ๋ด์ฉ์ Helm 2์ ์ ์ฉ๋ฉ๋๋ค. ์ด ๋ฒ์ ์ ํ์ฌ ์์ฐ ์ค์ด๋ฉฐ ํ์ฌ ์ฌ์ฉ ์ค์ธ ๋ฒ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ๋ณด์ ์ํ์ด ํฌํจ๋ ๋ฒ์ ์
๋๋ค.
์ฐ์ฌ ์ ๋ณด: ์๋ ์ฐ๋ ์นด์๋กํ(Alexander Khayorov)
Chainstack์ ๊ณ ๊ฐ์ด ๋ถ์ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ด์์ ์ธํ๋ผ์ ๋ณต์ก์ฑ์ ์์ ์ ์๋๋ก ํ๋ ๊ฒ์ ์ฌ๋ช ์ผ๋ก ํ๋ ์๊ท๋ชจ์ ํ๋ฐํ๊ฒ ์ฑ์ฅํ๋ ์คํํธ์ ์ผ๋ก, ๊ฐ๋ฐ ํ์ ์ฑ๊ฐํฌ๋ฅด์ ์์ต๋๋ค. Chainstack์ ์ํธํํ ํ๋งค ๋๋ ๊ตฌ๋งค๋ฅผ ์์ฒญํ์ง ๋ง๊ณ ์ํฐํ๋ผ์ด์ฆ ๋ธ๋ก์ฒด์ธ ํ๋ ์์ํฌ์ ๋ํด ์ด์ผ๊ธฐํด ๋ฌ๋ผ๊ณ ์ ์ํ๋ฉด ๊ธฐ๊บผ์ด ๋ต๋ณํด ๋๋ฆด ๊ฒ์ ๋๋ค.
ํค
Kubernetes์ฉ ํจํค์ง(์ฐจํธ) ๊ด๋ฆฌ์์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ Kubernetes ํด๋ฌ์คํฐ๋ก ๊ฐ์ ธ์ค๋ ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ฌผ๋ก ์ฐ๋ฆฌ๋ ์์ฒด YAML ๋งค๋ํ์คํธ๋ฅผ ๋ง๋ค๊ณ ์์ ์ ํธ๋ฆฌํฐ๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ๋ ๊ตฌ์กฐ์ ์ด๊ณ ์ฐ์
์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
Helm์ ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ์ธ๊ธฐ ์๋ ์ต๊ณ ์ ์ ํ์ ๋๋ค.
์ ํฌ๋ฆ์ธ๊ฐ? ์ฃผ๋ก CNCF์์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. Cloud Native๋ ๋๊ท๋ชจ ์กฐ์ง์ด๋ฉฐ Kubernetes, etcd, Fluentd ๋ฑ ํ๋ก์ ํธ์ ๋ชจํ์ฌ์ ๋๋ค.
๋ ๋ค๋ฅธ ์ค์ํ ์ฌ์ค์ Helm์ด ๋งค์ฐ ์ธ๊ธฐ ์๋ ํ๋ก์ ํธ๋ผ๋ ๊ฒ์ ๋๋ค. 2019๋ 12์์ Helm์ ์์ ํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ์์ํ์ ๋ ์ด ํ๋ก์ ํธ๋ GitHub์์ ์์ฒ ๊ฐ์ ๋ณ์ ๋ฐ์์ต๋๋ค. XNUMX์์๋ ๊ทธ ์๊ฐ XNUMX๋ช ์ ์ด๋ฅด๋ ์ต๋๋ค.
๋ง์ ์ฌ๋๋ค์ด Helm์ ๊ด์ฌ์ ๊ฐ๊ณ ์์ผ๋ฏ๋ก ์์ง ์ฌ์ฉํ์ง ์๋๋ผ๋ Helm์ ๋ณด์์ ๋ํด ์์๋๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์์ ์ ์ค์ํฉ๋๋ค.
ํต์ฌ Helm ํ์ Microsoft Azure์์ ์ง์๋๋ฏ๋ก ๋ค๋ฅธ ๋ง์ ํ๊ณผ ๋ฌ๋ฆฌ ์๋นํ ์์ ์ ์ธ ํ๋ก์ ํธ์ ๋๋ค. 3์ ์ค์์ Helm 2 Alpha XNUMX๊ฐ ์ถ์๋๋ค๋ ๊ฒ์ ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ์ฌ๋๋ค์ด ์๋นํ ๋ง๊ณ Helm์ ๊ฐ๋ฐํ๊ณ ๊ฐ์ ํ๋ ค๋ ์ด๋ง๊ณผ ์๋์ง๊ฐ ์์์ ๋ํ๋ ๋๋ค.
Helm์ Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์
๊ด๋ฆฌ์ ๋ช ๊ฐ์ง ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง. WordPress์ "Hello, World"์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ์ด๋ฏธ ์ฌ๋ฌ ์๋น์ค๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก ์ด๋ฅผ ํจ๊ป ํจํค์งํ๋ ค๊ณ ํฉ๋๋ค.
- ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ์ ๋ฐ๋ฅธ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์น๋๊ฑฐ๋ ๋ฐฐํฌ๋ ํ์๋ ๋๋์ง ์๋ ์๋ช ์ฃผ๊ธฐ์ ๋๋ค. ๊ณ์ํด์ ์๋ํ๊ณ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ฉฐ Helm์ ์ด๋ฅผ ์ง์ํ๊ณ ์ด์ ๋ํ ์ฌ๋ฐ๋ฅธ ์กฐ์น์ ์ ์ฑ ์ ๊ฐ์ ธ์ค๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค.
๋ฐฐ๊น ์ด๋ ๋ช ํํ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. Linux, Windows ๋๋ MacOS์ฉ ์ผ๋ฐ ํจํค์ง ๊ด๋ฆฌ์์ ์์ ๊ณผ ์์ ํ ์ผ์นํ๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค. ์ฆ, ๋ฆฌํฌ์งํ ๋ฆฌ, ๋ค์ํ ํจํค์ง์ ๋ํ ์ข ์์ฑ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ฉํ ์ ๋ณด, ์ค์ , ๊ตฌ์ฑ ๊ธฐ๋ฅ, ์ ๋ณด ์ธ๋ฑ์ฑ ๋ฑ์ด ์์ต๋๋ค. Helm์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํด ์ด ๋ชจ๋ ๊ฒ์ ์ป๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ณต์ก์ฑ ๊ด๋ฆฌ. ๋์ผํ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง์ด ์๋ ๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์ํ๊ฐ ํ์ํฉ๋๋ค. ํ ํ๋ฆฟ์ ์ฌ๊ธฐ์์ ๋์ค์ง๋ง ์์ ๋ง์ ํ ํ๋ฆฟ ์์ฑ ๋ฐฉ๋ฒ์ ๊ณ ์ํ ํ์๊ฐ ์๋๋ก Helm์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ - ์ ์๊ฐ์๋ ์ด๊ฒ์ด ๊ฐ์ฅ ํฅ๋ฏธ๋กญ๊ณ ํด๊ฒฐ๋์ง ์์ ์ง๋ฌธ์ ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์์ ์ ํฌ๋ฆ์ ์จ ์ด์ ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ฃผ์ํด์ผ ํ๊ณ CI/CD ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฃผ๊ธฐ๋ฅผ ์ด ํจ๋ฌ๋ค์์ผ๋ก ์ฎ๊ธฐ๊ณ ์ถ์์ต๋๋ค.
Helm์ ์ฌ์ฉํ๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ตฌ์ฑ ๋ฐ ๊ฐ์ ๊ฐ๋ ์ ์๊ฐํฉ๋๋ค.
- ๋กค๋ฐฑ์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ์ต๋๋ค.
- ๋ค์ํ ์ด๋ฒคํธ์ ํํฌ๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ถ๊ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ๊ณ ๊ทธ ๊ฒฐ๊ณผ์ ์๋ตํฉ๋๋ค.
๊ทธ ์์ ํฌ๋ฆ์๋ "๋ฐฐํฐ๋ฆฌ"๊ฐ ์์ต๋๋ค - ํ๋ฌ๊ทธ์ธ ํํ๋ก ํฌํจ๋ ์ ์๋ ์๋ง์ ๋ง์๋ ๊ฒ๋ค์ด ์ฌ๋ฌ๋ถ์ ์ถ์ ๋จ์ํ์์ผ ์ค๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑ๋ ์ ์์ผ๋ฉฐ, ์๋นํ ๊ณ ๋ฆฝ๋์ด ์๊ณ ์กฐํ๋ก์ด ์ํคํ ์ฒ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฌด์ธ๊ฐ๋ฅผ ๊ตฌํํ๊ณ ์ถ๋ค๋ฉด ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ํํ ๋ค์ ์ ์คํธ๋ฆผ์ ํฌํจ์ํค๋ ๊ฒ์ด ์ข์ต๋๋ค.
Helm์ ์ธ ๊ฐ์ง ์ฃผ์ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
- ์ฐจํธ ์ ์ฅ์ โ ๋งค๋ํ์คํธ์ ๊ฐ๋ฅํ ๋งค๊ฐ๋ณ์ํ ์ค๋ช ๋ฐ ๋ฐฐ์ด์ ๋๋ค.
- ๊ตฌ์ฑ โ์ฆ, ์ ์ฉ๋ ๊ฐ(ํ ์คํธ, ์ซ์ ๊ฐ ๋ฑ)์ ๋๋ค.
- ํด์ ๋ ๊ฐ์ ์์ ๊ตฌ์ฑ ์์๋ฅผ ์์งํ๊ณ ํจ๊ป ๋ฆด๋ฆฌ์ค๋ก ์ ํํฉ๋๋ค. ๋ฆด๋ฆฌ์ค์ ๋ฒ์ ์ ๊ด๋ฆฌํ ์ ์์ผ๋ฏ๋ก ์ค์น ์์๋ ์๊ฒ, ์ ๊ทธ๋ ์ด๋, ๋ค์ด๊ทธ๋ ์ด๋ ๋๋ ๋กค๋ฐฑ ์์๋ ํฌ๊ฒ ๋ผ์ดํ์ฌ์ดํด์ ์ฒด๊ณํํ ์ ์์ต๋๋ค.
ํฌ๊ตฌ ์ํคํ ์ฒ
๋ค์ด์ด๊ทธ๋จ์ Helm์ ์์ ์์ค ์ํคํ ์ฒ๋ฅผ ๊ฐ๋ ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
Helm์ Kubernetes์ ๊ด๋ จ์ด ์๋ค๋ ์ ์ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ฐ๋ผ์ Kubernetes ํด๋ฌ์คํฐ(์ฌ๊ฐํ) ์์ด๋ ํ ์ ์์ต๋๋ค. kube-apiserver ๊ตฌ์ฑ์์๋ ๋ง์คํฐ์ ์์ต๋๋ค. Helm์ด ์์ผ๋ฉด Kubeconfig๊ฐ ์์ต๋๋ค. Helm์ ์ปดํจํฐ, ๋
ธํธ๋ถ, ๋ฉ์ธํ๋ ์ ๋ฑ ๋ชจ๋ ๊ณณ์ ์ค์น๋๋ ์์ ๋ฐ์ด๋๋ฆฌ(Helm CLI ์ ํธ๋ฆฌํฐ)๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. Helm์๋ Tiller๋ผ๋ ์๋ฒ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ์ด๋ ํด๋ฌ์คํฐ ๋ด Helm์ ๊ด์ฌ ์ฌํญ์ ๋ํ๋ด๋ฉฐ, ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Kubernetes ํด๋ฌ์คํฐ ๋ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
Chart Repo์ ๋ค์ ๊ตฌ์ฑ ์์๋ ์ฐจํธ๊ฐ ์๋ ์ ์ฅ์์ ๋๋ค. ๊ณต์ ์ ์ฅ์๊ฐ ์์ ์๋ ์๊ณ ํ์ฌ๋ ํ๋ก์ ํธ์ ๋น๊ณต๊ฐ ์ ์ฅ์๊ฐ ์์ ์๋ ์์ต๋๋ค.
์ํธ ์์ฉ
Helm์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ๋ ค๊ณ ํ ๋ ์ํคํ ์ฒ ๊ตฌ์ฑ ์์๊ฐ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ์ฐ๋ฆฌ๋ ๋งํ๋ค
Helm install
, ์ ์ฅ์(Chart Repo)์ ์ก์ธ์คํ๊ณ Helm ์ฐจํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- Helm ์ ํธ๋ฆฌํฐ(Helm CLI)๋ ์ฐ๊ฒฐํ ํด๋ฌ์คํฐ๋ฅผ ํ์ ํ๊ธฐ ์ํด Kubeconfig์ ์ํธ์์ฉํฉ๋๋ค.
- ์ด ์ ๋ณด๋ฅผ ๋ฐ์ ์ ํธ๋ฆฌํฐ๋ ํด๋ฌ์คํฐ์ ์๋ Tiller๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ฐธ์กฐํฉ๋๋ค.
- Tiller๋ Kube-apiserver๋ฅผ ํธ์ถํ์ฌ Kubernetes์์ ์์ ์ ์ํํ๊ณ ์ผ๋ถ ๊ฐ์ฒด(์๋น์ค, ํฌ๋, ๋ณต์ ๋ณธ, ๋น๋ฐ ๋ฑ)๋ฅผ ์์ฑํฉ๋๋ค.
๋ค์์ผ๋ก, ์ ์ฒด Helm ์ํคํ ์ฒ๊ฐ ์ ์ฒด์ ์ผ๋ก ๋ ธ์ถ๋ ์ ์๋ ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ค์ด์ด๊ทธ๋จ์ ๋ณต์กํ๊ฒ ๋ง๋ญ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๋ ๋ฅผ ๋ณดํธํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
๊ณต๊ฒฉ ๋ฒกํฐ
์ฒซ ๋ฒ์งธ ์ ์ฌ์ ์ธ ์ฝ์ ์ ํน๊ถ API-์ฌ์ฉ์. ๊ณํ์ ์ผ๋ถ๋ก Helm CLI์ ๋ํ ๊ด๋ฆฌ์ ์ก์ธ์ค ๊ถํ์ ์ป์ ํด์ปค์ ๋๋ค.
๊ถํ์ด ์๋ API ์ฌ์ฉ์ ๊ทผ์ฒ ์ด๋๊ฐ์ ์์ผ๋ฉด ์ํํ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ์ฉ์๋ ๋ค๋ฅธ ์ปจํ ์คํธ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Kubeconfig ์ค์ ์์ ํ๋์ ํด๋ฌ์คํฐ ๋ค์์คํ์ด์ค๋ก ๊ณ ์ ๋ ์ ์์ต๋๋ค.
๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๊ณต๊ฒฉ ๋ฒกํฐ๋ Tiller ๊ทผ์ฒ์ ํด๋ฌ์คํฐ ๋ด์ ์์ฃผํ๋ฉฐ ์ด์ ์ก์ธ์คํ ์ ์๋ ํ๋ก์ธ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ ํด๋ฌ์คํฐ์ ๋คํธ์ํฌ ํ๊ฒฝ์ ๋ณด๋ ์น ์๋ฒ ๋๋ ๋ง์ดํฌ๋ก์๋น์ค์ผ ์ ์์ต๋๋ค.
์ด์์ ์ด์ง๋ง ์ ์ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์๋ ๊ณต๊ฒฉ ๋ณํ์๋ Chart Repo๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ถ๋๋ํ ์์ฑ์๊ฐ ๋ง๋ ์ฐจํธ์๋ ์์ ํ์ง ์์ ๋ฆฌ์์ค๊ฐ ํฌํจ๋์ด ์์ ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ๋ฏฟ๊ณ ์์ฑํด ๋ณด์ธ์. ๋๋ ๊ณต์ ์ ์ฅ์์์ ๋ค์ด๋ก๋ํ ์ฐจํธ๋ฅผ ๋์ฒดํ ์ ์์ผ๋ฉฐ, ์๋ฅผ ๋ค์ด ์ ์ฑ ํ์์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ณ ํด๋น ์ก์ธ์ค ๊ถํ์ ํ๋ํ ์ ์์ต๋๋ค.
์ด ๋ค ๊ฐ์ง ์ธก๋ฉด ๋ชจ๋์์ ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๊ณ Helm ์ํคํ
์ฒ์ ์ด๋์ ๋ฌธ์ ๊ฐ ์๊ณ ์ด๋์ ๋ฌธ์ ๊ฐ ์๋์ง ์์๋ด๋๋ก ๋
ธ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค.
๋ค์ด์ด๊ทธ๋จ์ ํ๋ํ๊ณ ๋ ๋ง์ ์์๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ ๋ชจ๋ ์ ์งํ๊ฒ ์ต๋๋ค.
Helm CLI๋ Chart Repo์ ํต์ ํ๊ณ Kubeconfig์ ์ํธ ์์ฉํ๋ฉฐ ์์
์ ํด๋ฌ์คํฐ์ Tiller ๊ตฌ์ฑ ์์๋ก ์ ์ก๋ฉ๋๋ค.
Tiller๋ ๋ ๊ฐ์ง ๊ฐ์ฒด๋ก ํํ๋ฉ๋๋ค.
- ํน์ ์๋น์ค๋ฅผ ๋ ธ์ถํ๋ Tiller-deploy svc
- ํด๋ฌ์คํฐ์ ์ก์ธ์คํ๋ ์ ์ฒด ๋ก๋๊ฐ ์คํ๋๋ ๊ฒฝ์์ ๋ฐฐํฌ ํฌ๋(๋ค์ด์ด๊ทธ๋จ์์ ํ๋์ ๋ณต์ ๋ณธ์ ์๋ ๋จ์ผ ๋ณต์ฌ๋ณธ)์ ๋๋ค.
์ํธ ์์ฉ์๋ ๋ค์ํ ํ๋กํ ์ฝ๊ณผ ์ฒด๊ณ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ณด์ ๊ด์ ์์ ์ฐ๋ฆฌ๋ ๋ค์ ์ฌํญ์ ๊ฐ์ฅ ๊ด์ฌ์ด ์์ต๋๋ค.
- Helm CLI๊ฐ ์ฐจํธ ์ ์ฅ์์ ์ก์ธ์คํ๋ ๋ฉ์ปค๋์ฆ: ์ด๋ค ํ๋กํ ์ฝ, ์ธ์ฆ์ด ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ์ํํ ์ ์๋ ์์ ์ ๋ฌด์์ ๋๊น?
- kubectl์ ์ฌ์ฉํ๋ Helm CLI๊ฐ Tiller์ ํต์ ํ๋ ํ๋กํ ์ฝ์ ๋๋ค. ํด๋ฌ์คํฐ ๋ด๋ถ์ ์ค์น๋ RPC ์๋ฒ์ ๋๋ค.
- Tiller ์์ฒด๋ ํด๋ฌ์คํฐ์ ์์ฃผํ๊ณ Kube-apiserver์ ์ํธ ์์ฉํ๋ ๋ง์ดํฌ๋ก์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ด ๋ชจ๋ ์์ญ์ ์์๋๋ก ๋
ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.
RBAC
RBAC๊ฐ ํ์ฑํ๋์ด ์์ง ์์ผ๋ฉด Helm ๋๋ ํด๋ฌ์คํฐ ๋ด์ ๋ค๋ฅธ ์๋น์ค์ ๋ํ ๋ณด์์ ๋ํด ์ด์ผ๊ธฐํ ํ์๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ์ต์ ๊ถ์ฅ์ฌํญ์ ์๋ ๊ฒ ๊ฐ์ง๋ง, ์์ง ํ๋ก๋์ ํ๊ฒฝ์์๋ RBAC๋ฅผ ํ์ฑํํ์ง ์์ ๋ถ๋ค์ด ๋ง์ ๊ฑฐ๋ผ ํ์ ํฉ๋๋ค. RBAC๋ ๋ฒ๊ฑฐ๋กญ๊ณ ๊ตฌ์ฑํด์ผ ํ ์ฌํญ๋ ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ๋ฌ๋ถ์ด ์ด๋ ๊ฒ ํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
Tiller์ RBAC๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค๋ช ํ๊ฒ ์ต๋๋ค. Tiller๋ ํน์ ์๋น์ค ๊ณ์ ์ผ๋ก ํด๋ฌ์คํฐ ๋ด๋ถ์์ ์๋ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก RBAC๊ฐ ๊ตฌ์ฑ๋์ง ์์ ๊ฒฝ์ฐ ์ํผ์ ์ ๊ฐ ๋ฉ๋๋ค. ๊ธฐ๋ณธ ๊ตฌ์ฑ์์๋ Tiller๊ฐ ๊ด๋ฆฌ์๊ฐ ๋ฉ๋๋ค. ์ด๊ฒ์ด Tiller๊ฐ ํด๋ฌ์คํฐ์ ๋ํ SSH ํฐ๋์ด๋ผ๊ณ ์ข ์ข ๋งํ๋ ์ด์ ์ ๋๋ค. ์ค์ ๋ก ์ด๋ ์ฌ์ค์ด๋ฏ๋ก ์ ๋ค์ด์ด๊ทธ๋จ์ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ๋์ ๋ณ๋์ ์ ์ฉ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Helm์ ์ด๊ธฐํํ๊ณ ์๋ฒ์ ์ฒ์ ์ค์นํ ๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์ ์ค์ ํ ์ ์์ต๋๋ค. --service-account
. ์ด๋ ๊ฒ ํ๋ฉด ์ต์ํ์ ํ์ ๊ถํ ์งํฉ์ ๊ฐ์ง ์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ค, Role ๋ฐ RoleBinding๊ณผ ๊ฐ์ "ํํ"์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ถํํ๊ฒ๋ Helm์ ์ด ์์
์ ์ํํ์ง ์์ต๋๋ค. Helm์ ํต๊ณผํ๋ ค๋ฉด ๊ทํ ๋๋ Kubernetes ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๊ฐ ์๋น์ค ๊ณ์ ์ ๋ํ ์ญํ ๋ฐ RoleBinding ์ธํธ๋ฅผ ๋ฏธ๋ฆฌ ์ค๋นํด์ผ ํฉ๋๋ค.
์ง๋ฌธ์ด ์๊น๋๋ค. ์ญํ ๊ณผ ClusterRole์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? ์ฐจ์ด์ ์ ํน์ํ ๋ค์์คํ์ด์ค์์๋ง ์๋ํ๋ ์ผ๋ฐ ์ญํ ๋ฐ RoleBinding๊ณผ ๋ฌ๋ฆฌ ClusterRole์ ๋ชจ๋ ๋ค์์คํ์ด์ค์์ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ ์ฒด ํด๋ฌ์คํฐ ๋ฐ ๋ชจ๋ ๋ค์์คํ์ด์ค์ ๋ํ ์ ์ฑ ์ ๊ตฌ์ฑํ๊ฑฐ๋ ๊ฐ ๋ค์์คํ์ด์ค์ ๋ํด ๊ฐ๋ณ์ ์ผ๋ก ๊ฐ์ธํํ ์ ์์ต๋๋ค.
RBAC๊ฐ ๋ ๋ค๋ฅธ ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๋ ์ ์ ์ธ๊ธํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ ๋ถํํ๊ฒ๋ Helm์ด ๋ค์ค ํ ๋ํธ๋ฅผ ์ง์ํ์ง ์๋๋ค๊ณ ๋ถํํฉ๋๋ค. ์ฌ๋ฌ ํ์ด ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ๊ณ Helm์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Helm์ด ์คํ๋๋ ํน์ ์๋น์ค ๊ณ์ ์ด ์๊ณ ๊ทธ ์๋์์ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ด ํด๋ฌ์คํฐ ๋ด์์ ์ ์ฑ ์ ์ค์ ํ๊ณ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํฉ๋๋ค. , ๋๋ก๋ ๋งค์ฐ ๋ถํธํฉ๋๋ค. ์ด๋ ์ฌ์ค์ ๋๋ค. ํ๋ก์ธ์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ด๋๋ฆฌ ํ์ผ ์์ฒด์ ๋ง์ฐฌ๊ฐ์ง๋ก Helm Tiller์๋ ๋ค์ค ํ ๋ํธ ๊ฐ๋ ์ด ์์ต๋๋ค..
๊ทธ๋ฌ๋ ํด๋ฌ์คํฐ์์ Tiller๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Tiller๋ ๋ชจ๋ ๋ค์์คํ์ด์ค์์ ์คํ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ RBAC, Kubeconfig๋ฅผ ์ปจํ ์คํธ๋ก ์ฌ์ฉํ๊ณ ํน์ Helm์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ณด์ผ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์๋ก ๋ค๋ฅธ ํ(๋ ๊ฐ์ ๋ค์์คํ์ด์ค)์ ๋ํ ์ปจํ
์คํธ๊ฐ ์๋ ๋ ๊ฐ์ Kubeconfig๊ฐ ์์ต๋๋ค. ๊ฐ๋ฐ ํ์ ์ํ X Team๊ณผ ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์
๋๋ค. ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์๋ ํด๋น ๊ณ ๊ธ ์๋น์ค ๊ณ์ ์ธ Kube-system ๋ค์์คํ์ด์ค์ ์์นํ ์์ฒด์ ์ธ ๊ด๋ฒ์ํ Tiller๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐํ์ ์ํ ๋ณ๋์ ๋ค์์คํ์ด์ค๋ฅผ ํตํด ํน๋ณํ ๋ค์์คํ์ด์ค์ ์๋น์ค๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์คํ ๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. Tiller๋ ์์ฐ์ ํฐ ์ํฅ์ ๋ฏธ์น ๋งํผ ์ ๋ ฅ์ ๋ง์ด ์๋ชจํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ๋น ๋ฅธ ์๋ฃจ์ ์ค ํ๋์ ๋๋ค.
Tiller๋ฅผ ๋ณ๋๋ก ๊ตฌ์ฑํ๊ณ ํ, ํน์ ๊ฐ๋ฐ์ ๋๋ ํ๊ฒฝ(๊ฐ๋ฐ, ์คํ ์ด์ง, ํ๋ก๋์ )์ ๋ํ ์ปจํ ์คํธ๋ฅผ Kubeconfig์ ์ ๊ณตํ์ธ์(๋ชจ๋ ๊ฒ์ด ๋์ผํ ํด๋ฌ์คํฐ์ ์์์ง๋ ์์ฌ์ค๋ฝ์ง๋ง ๊ฐ๋ฅํฉ๋๋ค).
์ด์ผ๊ธฐ๋ฅผ ๊ณ์ํ๋ฉด์ RBAC์์ ์ ํํ์ฌ ConfigMap์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ปจํผ๊ทธ๋งต
Helm์ ConfigMap์ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ฌ์ฉํฉ๋๋ค. ์ํคํ ์ฒ์ ๋ํด ์ด์ผ๊ธฐํ ๋ ๋ฆด๋ฆฌ์ค, ๊ตฌ์ฑ, ๋กค๋ฐฑ ๋ฑ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋์๋ ์์์ต๋๋ค. ์ด๋ฅผ ์ํด ConfigMaps๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ConfigMap์ ์ฃผ์ ๋ฌธ์ ์ ์ ์๋ ค์ ธ ์์ต๋๋ค. ์์น์ ์ผ๋ก ์์ ํ์ง ์์ต๋๋ค. ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ด ์๋น์ค ๋ฒ์๋ฅผ ๋์ด์๋ ์๋๋ ๋ชจ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ํ์ฌ Helm์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ConfigMap ์ฌ์ฉ์์ ๋น๋ฐ ์ฌ์ฉ์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ํ๋ฉ๋๋ค. Tiller ์ค์ ์ ์ฌ์ ์ํ๊ณ ์คํ ๋ฆฌ์ง๊ฐ ๋น๋ฐ์ด ๋๋๋ก ์ง์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ ๋ฐฐํฌ์ ๋ํด ConfigMap์ด ์๋ ๋น๋ฐ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
๋น๋ฐ ์์ฒด๋ ์ด์ํ ๊ฐ๋
์ด๋ฉฐ ๊ทธ๋ค์ง ์์ ํ์ง ์๋ค๊ณ ์ฃผ์ฅํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Kubernetes ๊ฐ๋ฐ์ ์์ ์ด ์ด ์์
์ ์ํํ๊ณ ์๋ค๋ ์ ์ ์ดํดํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ฒ์ 1.10๋ถํฐ, ์ฆ ๊ฝค ์ค๋ซ๋์, ์ ์ด๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์๋ ์ฌ๋ฐ๋ฅธ ์คํ ๋ฆฌ์ง๋ฅผ ๋น๋ฐ ์ ๋ณด ์ ์ฅ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ต๋๋ค. ํ์ฌ ํ์ ๋น๋ฐ, ๊ฐ๋ณ ํฌ๋ ๋๋ ๊ธฐํ ์ํฐํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ๋ถ์ฐํ๋ ๋ฐฉ๋ฒ์ ์ฐ๊ตฌํ๊ณ ์์ต๋๋ค.
Storage Helm์ ๋น๋ฐ๋ก ์ ์กํ๋ ๊ฒ์ด ๋ ์ข์ผ๋ฉฐ, ์ฐจ๋ก๋ก ์ค์์์ ๋ณดํธ๋ฉ๋๋ค.
๋ฌผ๋ก ๋จ๊ฒ ์ฃ 1MB์ ๋ฐ์ดํฐ ์ ์ฅ ์ ํ. ์ฌ๊ธฐ์ Helm์ etcd๋ฅผ ConfigMap์ ๋ถ์ฐ ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ์ด๊ฒ์ด ๋ณต์ ๋ฑ์ ์ ํฉํ ๋ฐ์ดํฐ ์ฒญํฌ๋ผ๊ณ ์๊ฐํ์ต๋๋ค. Reddit์ ์ด์ ๋ํ ํฅ๋ฏธ๋ก์ด ํ ๋ก ์ด ์์ต๋๋ค. ์ฃผ๋ง ๋์ ์ด ์ฌ๋ฏธ์๋ ๋ด์ฉ์ ์ฐพ๊ฑฐ๋ ๋ฐ์ท๋ฌธ์ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ฐจํธ ์ ์ฅ์
์ฐจํธ๋ ์ฌํ์ ์ผ๋ก ๊ฐ์ฅ ์ทจ์ฝํ๋ฉฐ ํนํ ์คํก ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ "์ค๊ฐ์"์ ์์ค๊ฐ ๋ ์ ์์ต๋๋ค. ์ฐ์ , HTTP๋ฅผ ํตํด ๋ ธ์ถ๋๋ ์ ์ฅ์์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
๋ฐ๋์ HTTPS๋ฅผ ํตํด Helm Repo๋ฅผ ๋ ธ์ถํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์ต์ ์ ์ ํ์ด๋ฉฐ ์ ๋ ดํฉ๋๋ค.
์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ญ์์ค. ์ฐจํธ ์๋ช ๋ฉ์ปค๋์ฆ. ๊ธฐ์ ์ ์ง์ฅ์ฒ๋ผ ๊ฐ๋จํฉ๋๋ค. ์ด๋ ๊ณต๊ฐ ํค์ ๊ฐ์ธ ํค๊ฐ ์๋ ์ผ๋ฐ PGP ์์คํ ์ธ GitHub์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ํ์ํ ํค๋ฅผ ๊ฐ๊ณ ๋ชจ๋ ๊ฒ์ ์๋ช ํ์ฌ ์ด๊ฒ์ด ์ค์ ๋ก ๊ทํ์ ์ฐจํธ์ธ์ง ํ์ธํ๊ณ ์ค์ ํ์ญ์์ค.
๋ํ, Helm ํด๋ผ์ด์ธํธ๋ TLS๋ฅผ ์ง์ํฉ๋๋ค. (์๋ฒ ์ธก HTTP ์๋ฏธ๊ฐ ์๋๋ผ ์ํธ TLS). ํต์ ์ ์ํด ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ํค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์งํ ์ ๋ ์ํธ ์ธ์ฆ์๋ฅผ ์ข์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์๋,
ํ๋ฌ๊ทธ์ธ๋ ์์ต๋๋ค
HTTPS ๋๋ TLS๋ฅผ ํ์ฑํํ๊ณ , mTLS๋ฅผ ์ฌ์ฉํ๊ณ , ๊ธฐ๋ณธ ์ธ์ฆ์ ํ์ฑํํ์ฌ ์ํ์ ๋์ฑ ์ค์ด๋ฉด Helm CLI ๋ฐ Chart Repo๋ฅผ ํตํด ์์ ํ ํต์ ์ฑ๋์ ์ป์ ์ ์์ต๋๋ค.
gRPC API
๋ค์ ๋จ๊ณ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ํด๋ฌ์คํฐ์ ์์นํ๊ณ ํํธ์ผ๋ก๋ ์๋ฒ์ธ Tiller๋ฅผ ๋ณดํธํ๋ ํํธ, Tiller ์์ฒด๋ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ์ก์ธ์คํ๊ณ ๋๊ตฐ๊ฐ์ธ ๊ฒ์ฒ๋ผ ๊ฐ์ฅํ๋ ค๊ณ ์๋ํฉ๋๋ค.
์ด๋ฏธ ๋งํ๋ฏ์ด Tiller๋ gRPC๋ฅผ ๋ ธ์ถํ๋ ์๋น์ค์ด๊ณ Helm ํด๋ผ์ด์ธํธ๋ gRPC๋ฅผ ํตํด ์ ๊ณต๋ฉ๋๋ค. ๋ฌผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก TLS๋ ๋นํ์ฑํ๋์ด ์์ต๋๋ค. ์ด๊ฒ์ด ์ ์ํ๋์๋์ง๋ ๋ ผ์์ ์ฌ์ง๊ฐ ์๋ ์ง๋ฌธ์ ๋๋ค. ์ฒ์์๋ ์ค์ ์ ๋จ์ํํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ๋ก๋์ ๋ฐ ์คํ ์ด์ง์ ๊ฒฝ์ฐ gRPC์์ TLS๋ฅผ ํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ์๊ฐ์๋ ์ฐจํธ์ฉ mTLS์ ๋ฌ๋ฆฌ ์ด๋ ์ฌ๊ธฐ์ ์ ํฉํ๋ฉฐ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ํ๋ฉ๋๋ค. PQI ์ธํ๋ผ ์์ฑ, ์ธ์ฆ์ ์์ฑ, Tiller ์คํ, ์ด๊ธฐํ ์ค์ ์ธ์ฆ์ ์ ์ก. ๊ทธ๋ฐ ๋ค์ ๋ชจ๋ Helm ๋ช ๋ น์ ์คํํ์ฌ ์์ฑ๋ ์ธ์ฆ์์ ๊ฐ์ธ ํค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํด๋ฌ์คํฐ ์ธ๋ถ์์ Tiller์ ๋ํ ๋ชจ๋ ์์ฒญ์ผ๋ก๋ถํฐ ์์ ์ ๋ณดํธํ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ Tiller์ ๋ํ ์ฐ๊ฒฐ ์ฑ๋์ ํ๋ณดํ์ผ๋ฉฐ, ์ด๋ฏธ RBAC์ ๋ํด ๋ ผ์ํ๊ณ Kubernetes apiserver์ ๊ถํ์ ์กฐ์ ํ์ฌ ์ํธ ์์ฉํ ์ ์๋ ๋๋ฉ์ธ์ ์ค์์ต๋๋ค.
๋ณดํธ๋ ํฌ๊ตฌ
์ต์ข ๋ค์ด์ด๊ทธ๋จ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋์ผํ ํ์ดํ๊ฐ ์๋ ๋์ผํ ์ํคํ ์ฒ์ ๋๋ค.
์ด์ ๋ชจ๋ ์ฐ๊ฒฐ์ ์์ ํ๊ฒ ๋
น์์ผ๋ก ๊ทธ๋ฆด ์ ์์ต๋๋ค.
- Chart Repo์ ๊ฒฝ์ฐ TLS ๋๋ mTLS ๋ฐ ๊ธฐ๋ณธ ์ธ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
- Tiller์ฉ mTLS๋ TLS๋ฅผ ์ฌ์ฉํ์ฌ gRPC ์๋น์ค๋ก ๋ ธ์ถ๋๋ฉฐ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํด๋ฌ์คํฐ๋ Role ๋ฐ RoleBinding์ด ์๋ ํน์ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ๋ ํด๋ฌ์คํฐ๋ฅผ ์๋นํ ์์ ํ๊ฒ ๋ณดํธํ์ง๋ง ๋๋ํ ๋๊ตฐ๊ฐ๊ฐ ์ด๋ ๊ฒ ๋งํ์ต๋๋ค.
"์์ ํ ์์ ํ ํด๊ฒฐ์ฑ ์ ๋จ ํ๋๋ฟ์ ๋๋ค. ์ค์์น๊ฐ ๊บผ์ง ์ปดํจํฐ๊ฐ ์ฝํฌ๋ฆฌํธ ์์์ ๋ค์ด ์๊ณ ๊ตฐ์ธ๋ค์ด ๋ณดํธํ๋ ๊ฒ์ ๋๋ค."
๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ์๋ก์ด ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ์ด๋ฌํ ๊ถ์ฅ ์ฌํญ์ด ์์ ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ฐ์ ํ์ค์ ๋ฌ์ฑํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋ณด๋์ค
์ด ๋ถ๋ถ์ ๋ณด์๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ ์์ง๋ง, ๋์์ด ๋์ค ๊ฒ๋๋ค. ์ฌ๋๋ค์ด ์ ๋ชจ๋ฅด๋ ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณต์ ๋ฐ ๋น๊ณต์ ์ฐจํธ๋ฅผ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ ์ฅ์์์
ํ์ง๋ง ์๋น์ค๊ฐ ์์ด์
Hub.helm.sh๋ฅผ ์ฌ์ฉํด ๋ณด๊ณ ํจ๊ป ๊ฐ๋ฐํด ๋ด ์๋ค. ์ด ์๋น์ค๋ Helm ํ๋ก์ ํธ์ ์ํ๋ฉฐ, ํ๋ฐํธ ์๋ ๊ฐ๋ฐ์์ด๊ณ ๋จ์ง ์ธ๊ด์ ๊ฐ์ ํ๋ ค๋ ๊ฒฝ์ฐ UI์ ๊ธฐ์ฌํ ์๋ ์์ต๋๋ค.
๋๋ ๋ํ ๋น์ ์ ๊ด์ฌ์ ๋๊ณ ์ถ์ต๋๋ค ๊ฐ๋ฐฉํ ์๋น์ค ๋ธ๋ก์ปค API ํตํฉ. ๋ฒ๊ฑฐ๋กญ๊ณ ๋ถ๋ถ๋ช ํ๊ฒ ๋ค๋ฆฌ์ง๋ง ๋ชจ๋๊ฐ ์ง๋ฉดํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๊ฐ๋จํ ์๋ฅผ ๋ค์ด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
ํด๋์ ์ ํ๋ฆฌ์ผ์ด์
์ธ WordPress๋ฅผ ์คํํ๋ ค๋ Kubernetes ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด ๊ธฐ๋ฅ์ ์ํด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํฉ๋๋ค. ๋ค์ํ ์๋ฃจ์
์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ ๋ง์ ์ํ ์ ์ฅ ์๋น์ค๋ฅผ ์์ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ทธ๋ค์ง ํธ๋ฆฌํ์ง๋ ์์ง๋ง ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ ๊ฒ ํฉ๋๋ค.
Chainstack๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ์ฌ์์๋ ์๋ฒ์ MySQL ๋๋ PostgreSQL๊ณผ ๊ฐ์ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํด๋ผ์ฐ๋ ์ด๋๊ฐ์ ์๋ ์ด์ ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋น์ค๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์์ฑํ๊ณ , ์๊ฒฉ ์ฆ๋ช ์ ์ ์กํ๊ณ , ์ด๋ป๊ฒ๋ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค. ์ด ๋ชจ๋ ์์ ์ ์ผ๋ฐ์ ์ผ๋ก ์์คํ ๊ด๋ฆฌ์๋ ๊ฐ๋ฐ์๊ฐ ์๋์ผ๋ก ์ํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๊ฑฐ์ ์์ ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ ์๊ฐ ๋ง์ผ๋ฉด ์ฝค๋ฐ์ธ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฌํ ์ํ๊ธฐ๊ฐ ์์ต๋๋ค. ๋ฐ๋ก Service Broker์ ๋๋ค. ์ด๋ฅผ ํตํด ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ํด๋ฌ์คํฐ๋ฅผ ์ํ ํน์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ๋ง์น API์ธ ๊ฒ์ฒ๋ผ ๋ธ๋ก์ปค๋ฅผ ํตํด ๊ณต๊ธ์๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ์ฃผ๋ฌธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๊ธฐ๋ณธ Kubernetes ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ๊ณ์ธต์ ์ฌ์ฉํ์ฌ Azure์์ ๊ด๋ฆฌํ MySQL์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค(๊ตฌ์ฑ ๊ฐ๋ฅ). Azure API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑ๋๊ณ ์ฌ์ฉ ์ค๋น๊ฐ ๋ฉ๋๋ค. ์ด๋ฅผ ๋ฐฉํดํ ํ์๋ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ด์ ๋ํ ์ฑ ์์ ์ง๋๋ค. ์๋ฅผ ๋ค์ด OSBA(Azure ํ๋ฌ๊ทธ์ธ)๋ ์๊ฒฉ ์ฆ๋ช ์ ์๋น์ค์ ๋ฐํํ๊ณ ์ด๋ฅผ Helm์ ์ ๋ฌํฉ๋๋ค. ํด๋ผ์ฐ๋ MySQL๊ณผ ํจ๊ป WordPress๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํ ์ฒ๋ฆฌํ์ง ์๊ณ ๋ด๋ถ์ ์ํ ์ ์ฅ ์๋น์ค์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค.
Helm์ ํํธ์ผ๋ก๋ ์๋น์ค ๋ฐฐํฌ๋ฅผ ํ์ฉํ๊ณ ๋ค๋ฅธ ํํธ์ผ๋ก๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ๋ฆฌ์์ค๋ฅผ ์๋นํ๋ ์ ์ฐฉ์ ์ญํ ์ ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
์์ ๋ง์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๊ณ ์จํ๋ ๋ฏธ์ค์์ ์ด ์ ์ฒด ๋ด์ฉ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ธฐ์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ฅผ ์ํ ์์ฒด ํ๋ฌ๊ทธ์ธ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ํนํ ๊ท๋ชจ๊ฐ ํฌ๊ณ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ๋ฐ, ์ค๋น ๋๋ ์ ์ฒด ์ธํ๋ผ๋ฅผ ์ ์ํ๊ฒ ๋ฐฐํฌํ๋ ค๋ ๊ฒฝ์ฐ ์ด ์ ๊ทผ ๋ฐฉ์์ ์๋ํด ๋ณผ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด์์ด๋ DevOps์ ์ถ์ด ๋ ์ฌ์์ง ๊ฒ์ ๋๋ค.
์ ๊ฐ ์ด๋ฏธ ์ธ๊ธํ ๋ ๋ค๋ฅธ ๋ฐ๊ฒฌ์ helm-gcs ํ๋ฌ๊ทธ์ธ, Google ๋ฒํท(๊ฐ์ฒด ์ ์ฅ์)์ ์ฌ์ฉํ์ฌ Helm ์ฐจํธ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์์ํ๋ ค๋ฉด ๋ค ๊ฐ์ง ๋ช
๋ น๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
- ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ญ์์ค.
- ๊ทธ๊ฒ์ ์์ํ์ญ์์ค;
- gcp์ ์๋ ๋ฒํท์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค.
- ํ์ค ๋ฐฉ์์ผ๋ก ์ฐจํธ๋ฅผ ๊ฒ์ํฉ๋๋ค.
์ฅ์ ์ ์ธ์ฆ์ ๊ธฐ๋ณธ gcp ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ๋๋ค. ์๋น์ค ๊ณ์ , ๊ฐ๋ฐ์ ๊ณ์ ๋ฑ ์ํ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋งค์ฐ ํธ๋ฆฌํ๋ฉฐ ์ด์ ๋น์ฉ์ด ๋ค์ง ์์ต๋๋ค. ๋์ฒ๋ผ opsless ์ฒ ํ์ ์ฅ๋ คํ๋ค๋ฉด ์ด๋ ํนํ ์๊ท๋ชจ ํ์ ๊ฒฝ์ฐ ๋งค์ฐ ํธ๋ฆฌํ ๊ฒ์ ๋๋ค.
๋์
Helm์ ์ ์ผํ ์๋น์ค ๊ด๋ฆฌ ์๋ฃจ์ ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๋ง์ ์ง๋ฌธ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ง๋ ์ธ ๋ฒ์งธ ๋ฒ์ ์ด ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ ๋ํ๋ ์ด์ ์ผ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก ๋์์ด ์์ต๋๋ค.
์ด๋ Ksonnet ๋๋ Metaparticle๊ณผ ๊ฐ์ ํน์ ์๋ฃจ์ ์ผ ์ ์์ต๋๋ค. ์์ ์ค๋ช ํ ๊ฒ๊ณผ ๋์ผํ ๋ชฉ์ ์ผ๋ก ํด๋์ ์ธํ๋ผ ๊ด๋ฆฌ ๋๊ตฌ(Ansible, Terraform, Chef ๋ฑ)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง์นจ๋ด ํด๊ฒฐ์ฑ
์ด ์์ต๋๋ค
Operator Framework๋ ๊ณ ๋ คํด์ผ ํ ์ต๊ณ ์ Helm ๋์์ ๋๋ค.
์ด๋ CNCF ๋ฐ Kubernetes์ ๋ ๊ธฐ๋ณธ์ ์ ๋๋ค. ํ์ง๋ง ์ง์ ์ฅ๋ฒฝ์ด ํจ์ฌ ๋๋ค., ๋ ๋ง์ด ํ๋ก๊ทธ๋๋ฐํ๊ณ ๋งค๋ํ์คํธ๋ฅผ ๋ ์ค๋ช ํด์ผ ํฉ๋๋ค.
Draft, Scaffold ๋ฑ ๋ค์ํ ์ ๋์จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ฐ๋ฐ์๊ฐ ํ ์คํธ ํ๊ฒฝ์ ๋ฐฐํฌํ ์ ์๋๋ก Helm์ ๋ณด๋ด๊ณ ์์ํ๋ ์ฃผ๊ธฐ๋ฅผ ๋จ์ํํ๋ ๋ฑ ์ถ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ๋๋ ๊ทธ๋ค์ ๊ถํ ๋ถ์ฌ์๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ด๋์ ์๋์ง ์๊ฐ์ ์ฐจํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
x์ถ์ ํ์ฌ ์ผ์ด๋๊ณ ์๋ ์ผ์ ๋ํ ๊ฐ์ธ ์ ์ด ์์ค์ด๊ณ , y์ถ์ Kubernetes์ ๊ธฐ๋ณธ ์์ค์
๋๋ค. Helm ๋ฒ์ 2๋ ์ค๊ฐ ์ด๋๊ฐ์ ์์นํฉ๋๋ค. ๋ฒ์ 3์์๋ ํฌ๊ฒ๋ ์๋์ง๋ง ์ ์ด ๋ฐ ๊ธฐ๋ณธ ์์ค์ด ๋ชจ๋ ํฅ์๋์์ต๋๋ค. Ksonnet ์์ค์ ์๋ฃจ์
์ Helm 2๋ณด๋ค ์ฌ์ ํ ์ด๋ฑํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ธ์์ ๋ ๋ฌด์์ด ์๋์ง ์์๋ณด๊ธฐ ์ํด ์ดํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ฌผ๋ก ๊ตฌ์ฑ ๊ด๋ฆฌ์๋ ์ฌ์ฉ์๊ฐ ์ ์ดํ ์ ์์ง๋ง Kubernetes์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ๊ฒ์ ์๋๋๋ค.
Operator Framework๋ Kubernetes์ ์์ ํ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ฉฐ ์ด๋ฅผ ํจ์ฌ ๋ ์ฐ์ํ๊ณ ๊ผผ๊ผผํ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค(๋จ, ์ด๋ณด ์์ค์ ๋ํด ๊ธฐ์ตํ์ธ์). ์คํ๋ ค Helm์ ์ฌ์ฉํ์ฌ ์๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์งํ๊ธฐ ์ํ ๋๋ ์์ง๊ธฐ๋ณด๋ค๋ ์ ๋ฌธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์ด๋ฅผ ์ํ ๊ด๋ฆฌ ์์ฑ์ ์ ํฉํฉ๋๋ค.
ํ์ฅ๊ธฐ๋ ๋จ์ํ ์ ์ด ๊ธฐ๋ฅ์ ์ฝ๊ฐ ๊ฐ์ ํ๊ณ , ์ํฌํ๋ก๋ฅผ ๋ณด์ํ๊ฑฐ๋, CI/CD ํ์ดํ๋ผ์ธ์ ๋ถ๋ถ์ ์ถ์ํฉ๋๋ค.
ํฌ๋ฆ์ ๋ฏธ๋
์ข์ ์์์ Helm 3์ด ์ถ์๋๋ค๋ ๊ฒ์ ๋๋ค. Helm 3.0.0-alpha.2์ ์ํ ๋ฒ์ ์ด ์ด๋ฏธ ์ถ์๋์์ผ๋ฏ๋ก ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค. ์๋นํ ์์ ์ ์ด์ง๋ง ๊ธฐ๋ฅ์ ์ฌ์ ํ โโ์ ํ์ ์ ๋๋ค.
ํฌ๋ฆ 3์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฐ์ ์ด ์ด์ผ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํธ๋ฌ์ ์ค์ข , ๊ตฌ์ฑ ์์๋ก. ์ด๋ฏธ ์๊ณ ์๋ฏ์ด ์ด๊ฒ์ ์ํคํ ์ฒ ๋ณด์์ ๊ด์ ์์ ๋ณผ ๋ ๋ชจ๋ ๊ฒ์ด ๋จ์ํ๋๊ธฐ ๋๋ฌธ์ ํฐ ๋ฐ์ ์ ๋๋ค.
Kubernetes 2 ๋๋ ๊ทธ ์ด์ ๋ฒ์ ์ธ Helm 1.8๊ฐ ์์ฑ๋์์ ๋ ๋ง์ ๊ฐ๋ ์ด ๋ฏธ์ฑ์ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด CRD ๊ฐ๋ ์ ํ์ฌ ์ ๊ทน์ ์ผ๋ก ๊ตฌํ๋๊ณ ์์ผ๋ฉฐ Helm์ CRD ์ฌ์ฉ๊ตฌ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์๋ฒ ๋ถ๋ถ์ ์ ์งํ์ง ์๊ณ ํด๋ผ์ด์ธํธ๋ง ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ๊ธฐ๋ณธ Kubernetes ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ ๋ฐ ๋ฆฌ์์ค ์์ ์ ์ํํ์ธ์. ์ด๊ฒ์ ํฐ ์ง์ ์ ๋๋ค.
๋ํ๋ ๊ฑฐ์ผ ๊ธฐ๋ณธ OCI ์ ์ฅ์ ์ง์ (์คํ ์ปจํ ์ด๋ ์ด๋์ ํฐ๋ธ). ์ด๋ ๊ฑฐ๋ํ ์ด๋์ ํฐ๋ธ์ด๋ฉฐ Helm์ ์ฃผ๋ก ์ฐจํธ๋ฅผ ๊ฒ์ํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Docker Hub๋ ๋ง์ OCI ํ์ค์ ์ง์ํฉ๋๋ค. ์ถ์ธก์ ์๋์ง๋ง ์๋ง๋ ํด๋์ Docker ์ ์ฅ์ ์ ๊ณต์ ์ฒด๊ฐ Helm ์ฐจํธ๋ฅผ ํธ์คํ ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค.
๋์๊ฒ ๋ ผ๋์ด ๋๋ ์ด์ผ๊ธฐ๋ ๋ฃจ์ ์ง์, ์คํฌ๋ฆฝํธ ์์ฑ์ ์ํ ํ ํ๋ฆฟ ์์ง์ ๋๋ค. ๋๋ Lua์ ์ด๋ ฌํ ํฌ์ ์๋์ง๋ง ์ด๊ฒ์ ์์ ํ ์ ํ์ ์ธ ๊ธฐ๋ฅ์ ๋๋ค. ๋๋ ์ด๊ฒ์ 3๋ฒ ํ์ธํ์ต๋๋ค. Lua๋ฅผ ์ฌ์ฉํ ํ์๋ ์์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ Lua๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ์ฌ๋๋ค, Go๋ฅผ ์ข์ํ๋ ์ฌ๋๋ค์ ์ฐ๋ฆฌ์ ๊ฑฐ๋ํ ์บ ํ์ ์ฐธ์ฌํ๊ณ ์ด๋ฅผ ์ํด go-tmpl์ ์ฌ์ฉํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ ๊ฐ ํ์คํ ๋์น๊ณ ์์๋ ๊ฒ์ ์คํค๋ง ์ถํ ๋ฐ ๋ฐ์ดํฐ ์ ํ ๊ฒ์ฆ. int ๋๋ string์ ๋ ์ด์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ XNUMX์ ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ ํ์๊ฐ ์์ต๋๋ค. ๊ฐ์ ๋ํด ์ด๋ฅผ ๋ช ์์ ์ผ๋ก ์ค๋ช ํ ์ ์๋ JSONS ์คํค๋ง๊ฐ ๋ํ๋ฉ๋๋ค.
๋ํญ ์ฌ์์ ์์ ์ด๋ฒคํธ ์ค์ฌ ๋ชจ๋ธ. ์ด๋ฏธ ๊ฐ๋ ์ ์ผ๋ก ์ค๋ช ํ์ต๋๋ค. Helm 3 ๋ธ๋์น๋ฅผ ๋ณด๋ฉด ์ผ๋ง๋ ๋ง์ ์ด๋ฒคํธ์ ํํฌ ๋ฐ ๊ธฐํ ํญ๋ชฉ์ด ์ถ๊ฐ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ ํฌ๊ฒ ๋จ์ํ๋๊ณ ๋ฐฐํฌ ํ๋ก์ธ์ค์ ์ด์ ๋ํ ๋ฐ์์ ๋ํ ์ ์ด๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Helm 3์ ๋ ๊ฐ๋จํ๊ณ ์์ ํ๋ฉฐ ๋ ์ฌ๋ฏธ์์ ๊ฒ์ ๋๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ Helm 2๋ฅผ ์ข์ํ์ง ์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ Kubernetes๊ฐ ๋์ฑ ๋ฐ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ Helm์ Kubernetes์ ๊ฐ๋ฐ์ ํ์ฉํ๊ณ Kubernetes๋ฅผ ์ํ ์ฐ์ํ ๊ด๋ฆฌ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ข์ ์์์
DevOpsConf ์๋ ์ฐ๋ ์นด์๋กํ(Alexander Khayorov)๊ฐ ๋น์ ์๊ฒ ๋งํ ๊ฒ์ ๋๋ค.์ปจํ ์ด๋๋ ์์ ํ ์ ์๋์? ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ์ด์ ํ๋ก์ธ์ค ํตํฉ์ ๊ดํ ์ปจํผ๋ฐ์ค๊ฐ ๋ชจ์คํฌ๋ฐ์์ ๊ฐ์ต๋ ์์ ์์ ์๋ ค๋๋ฆฝ๋๋ค. 30์ 1์ผ๊ณผ XNUMX์ XNUMX์ผ. 20์ XNUMX์ผ๊น์ง ๊ฐ๋ฅํด์๋ ํฌํธ๋ฅผ ์ ์ถํ๋ค ์๋ฃจ์ ์ ๋ํ ๊ทํ์ ๊ฒฝํ์ ์๋ ค์ฃผ์ธ์.๋ง์ ๊ฒ ์ค ํ๋ DevOps ์ ๊ทผ ๋ฐฉ์์ ์์ .์ปจํผ๋ฐ์ค ์ฒดํฌํฌ์ธํธ์ ๋ด์ค๋ฅผ ํ๋ก์ฐํ์ธ์.
๋ฉ์ผ๋ง ๋ฆฌ์คํธ ะธ์ ๋ณด ์ฑ๋ .
์ถ์ฒ : habr.com