Helm์ Kubernetes๋ฅผ ์ํ ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ์
๋๋ค. CNCF์ ์กธ์
๋จ๊ณ ํ๋ก์ ํธ(Graduated Project)์ด๊ธฐ๋ ํฉ๋๋ค.
Helm์ ๋ช ๊ฐ์ง ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
YAML ํ์ผ ํ ํ๋ฆฟ
์ปจํ
์ด๋ ๊ธฐ๋ฐ ํ๊ฒฝ์ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ Kubernetes(K8s)๋ ๊ทธ ์์ฒด๋ก ํ๋ฅญํ ๋๊ตฌ์
๋๋ค.
ํ์ง๋ง, K8s๋ ๊ฐ๊ฐ์ ๊ตฌ์ฑ ์์์ ๋ํ YAML ์ค์ ํ์ผ์ด ํ์ํ๊ณ , ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ค์ด ๋ชจ์์ ๋ ๋น๋ก์ ํ๋์ ์ฑ์ผ๋ก ์๋ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์์ฃผ ์์ ์ฑ ํ๋๋ฅผ K8s ํ๊ฒฝ์์ ์ธ๋ถ๋ก ๋
ธ์ถ์ํค๋ ค๊ณ ํ๋ค๋ฉด ๋ฌด์์ด ํ์ํ ๊น์? ๊ฐ๋จํ๊ฒ ์๊ฐํด๋ ์ต์ 3๊ฐ์ ์์๊ฐ ํ์ํฉ๋๋ค.
- ์ฑ์ ๊ตฌ๋์ํฌ Pod
- ์ด Pod๋ฅผ ๋คํธ์ํฌ์ ๋ ธ์ถ์ํฌ Service
- ์ด Service๋ฅผ ์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ Ingress
์ง๊ธ๋ ์ด๋ฏธ 3๊ฐ์ YAML ํ์ผ๋ค์ ๊ด๋ฆฌํด์ผ ํ๋๋ฐ, ๊ตฌ์ฑ์ด ๋ ๋ณต์กํด์ง๋ค๋ฉด? ๋ณ๋ ์ ์ฅ์๊ฐ ํ์ํ๋ค๋ฉด? ์ค์ ํ์ผ์ ๋ฐ๋ก ๊ด๋ฆฌํ๊ณ ์ถ๋ค๋ฉด? ๊ด๋ฆฌํด์ผ ํ ์์๋ ๋ ๋์ด๋ ๊ฒ์ ๋๋ค.
Helm์ ์ฌ๋ฌ YAML ํ์ผ๋ค์ ๋ฌถ์ด ํ๋์ ํ ํ๋ฆฟ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ฅผ Helm์์๋ Helm chart๋ผ๊ณ ํฉ๋๋ค. Helm chart๋ฅผ ํตํด ์ฐ๊ด๋ ๊ตฌ์ฑ ์์๋ค์ ํ ๊ณณ์์ ๊ด๋ฆฌํ๊ณ , ๊ตฌ์ฑ ์์๋ค์ ๊ฐ๊ฐ ๋ฐฐํฌํ ํ์ ์์ด ํ ๋ฒ์ ๋ฐฐํฌํ ์๋ ์์ต๋๋ค.
ํจ์จ์ ์ธ ์ฌ์ฉ์ ๋ณ์ ๊ด๋ฆฌ
๊ฑฐ์ ๋ชจ๋ ์ฑ์๋ ์ฌ์ฉ์ ๋ณ์๋ค์ด ์์ต๋๋ค. ๊ฐ๊ฐ์ ๊ตฌ์ฑ ์์์์ ์ฌ์ฉ์ ๋ณ์๋ค์ ๋ฐ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งค์ฐ ๊ท์ฐฎ๊ณ ์ด๋ ค์ด ์ผ์
๋๋ค. ์ฌ๋ฌ ํ์ผ๋ค์ ์ฌ์ฉ์ ๋ณ์๊ฐ ํฉ์ด์ ธ ์๋ค๋ฉด ๋ณ๊ฒฝํ ๋๋ง๋ค ๋งค๋ฒ ๋ณ์์ ์์น๋ฅผ ์ฐพ์์ผ ํ๊ณ , ์ด ๊ณผ์ ์์ ์๋ํ์ง ์์ ํด๋จผ ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
Helm์ ์ด๋ฌํ ์ฌ์ฉ์ ๋ณ์๋ฅผ values.yaml
ํ์ผ์์ ๋ชจ๋ ๊ด๋ฆฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Helm์ YAML ํ์ผ๋ค์ values.yaml
ํ์ผ์ ๊ฐ์ ์ฝ์ ์ ์๋๋ก Go ํ
ํ๋ฆฟ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ค์ ์ค๋ฅ๋ฅผ ์ต๋ํ ์ค์ด๋ฉด์ ํจ์จ์ ์ผ๋ก ๋ณ์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ฆฌ์์ค ๋์ ๋ฐฐํฌ/๊ด๋ฆฌ
Helm์์๋ values.yaml
ํ์ผ์ ์ค์ ๊ฐ์ ์ค๋ฒ๋ผ์ด๋ฉํ ์ ์์ต๋๋ค. ๋ช
๋ น์ด์์ ์ง์ ๊ฐ์ ์ง์ ํ ์๋ ์๊ณ , ๋ณ๋์ ํ์ผ์ ๋ง๋ค์ด ํด๋น ํ์ผ์ ๊ฐ์ผ๋ก ์ค์ ์ ๋ฎ์ด์์ธ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ฌ ์ํฉ์ ์ ์ฐํ๊ฒ ๋์ํ๊ณ , ์ ์ฌํ ๊ตฌ์ฑ์ ๋ฆฌ์์ค๋ฅผ ๋จ์ผ Helm chart ๊ธฐ๋ฐ์ผ๋ก ๋ฐฐํฌํ๋ ๋ฑ ๋ค์ํ ํ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
Helm์ ์์ธํ ์ฌ์ฉ๋ฒ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์.