Helm์ด๋?
Helm์ Kubernetes์์ ์ฌ์ฉ๋๋ ์ ํ๋ฆฌ์ผ์ด์
ํจํค์ง ๋งค๋์ ์
Kubernetes ๋ฆฌ์์ค๋ฅผ **์ฐจํธ(chart)**๋ผ๋ ํํ๋ก ๋ฏธ๋ฆฌ ์ ์ํ์ฌ ๊ฐ๋จํ ๋ฐฐํฌํ ์ ์๊ฒ ํด์ค
Helm์ ์ฃผ์ ๊ฐ๋
-
์ฐจํธ(Chart):
Kubernetes ๋ฆฌ์์ค๋ฅผ ์ ์ํ Helm ํจํค์ง๋ก, YAML ํ์ผ๋ค์ ๋ชจ์์
์ฐจํธ๋ ์ฝ๊ฒ ๊ณต์ ํ๊ณ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ๋ฒ์ ๊ด๋ฆฌ๋ ์ง์๋จ -
๋ฆด๋ฆฌ์ค(Release):
Helm ์ฐจํธ๋ฅผ ์ค์ Kubernetes ํด๋ฌ์คํฐ์ ์ค์นํ ํน์ ์ธ์คํด์ค์
Helm์ ํตํด ์ฐจํธ๋ฅผ ๋ฐฐํฌํ๋ฉด ๊ฐ๊ฐ์ ๋ฐฐํฌ๋ณธ์ด ๋ฆด๋ฆฌ์ค๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง -
๋ ํฌ์งํ ๋ฆฌ(Repository):
Helm ์ฐจํธ๋ฅผ ์ ์ฅํ๊ณ ๊ณต์ ํ๋ ๊ณต๊ฐ์ผ๋ก, GitHub ์ ์ฅ์๋ ์น ์๋ฒ ๋ฑ์ ํ์ฉํ ์ ์์
Helm์ ์ฅ์
- ๋ณต์กํ Kubernetes ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ๊ฐํธํ
- ์ค์ ํ์ผ ์ค๋ณต ๋ฐฉ์ง
- ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋กค๋ฐฑ ๊ธฐ๋ฅ ์ ๊ณต
- ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์คํ๋ ํํ๋ก ์ฝ๊ฒ ๋ฐฐํฌ ๊ฐ๋ฅ
Helm ๋ช ๋ น์ด ์์
- ์ฐจํธ ์์ฑ
helm create mychart
- ์ฐจํธ ์ค์น
helm install myrelease mychart
- ์ค์น๋ ๋ฆด๋ฆฌ์ค ํ์ธ
helm list
- ๋ฆด๋ฆฌ์ค ์ ๊ทธ๋ ์ด๋
helm upgrade myrelease mychart
- ๋ฆด๋ฆฌ์ค ์ญ์
helm uninstall myrelease
Helm์ ๊ตฌ์ฑ์์
- values.yaml: ์ค์ ๊ฐ์ ์ ์ํ๋ ํ์ผ๋ก, ํ๊ฒฝ์ ๋ฐ๋ผ ์์ฝ๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- templates/: Kubernetes ๋ฆฌ์์ค๊ฐ ์ ์๋ ํ ํ๋ฆฟ ํ์ผ๋ค์ด ์์นํ๋ ํด๋
- Chart.yaml: ์ฐจํธ ๋ฉํ๋ฐ์ดํฐ ๋ฐ ์์กด์ฑ ์ ๋ณด ํฌํจ
Docker & Docker Compose vs Kubernetes & Helm ๋น๊ต ์์ฝ
๋๊ตฌ | ์ญํ | ๋น์ ์ ๋์ |
---|---|---|
Docker | ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ | Kubernetes |
Docker Compose | ์ปจํ ์ด๋ ์งํฉ ๊ด๋ฆฌ | Helm |
์ฆ, Helm์ Kubernetes ํ๊ฒฝ์์ Docker Compose์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ๋ ๋๊ตฌ๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฌ์