Helm ๊ฐ์
Helm ๊ฐ์ ๊ด๋ จ
ํฌ๋ฆ(Helm)๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ํด์ ์์์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ํด์ ๋ชจ๋ฅธ๋ค๋ฉด, Kubernetes์ ๋ํด ๋จผ์ ํ์ต์ ํ๊ณ ์ค๊ธธ ๋ฐ๋๋ค.
Helm ๊ฐ์
Helm(ํฌ๋ฆ)์ Kubernetes ํด๋ฌ์คํฐ์ฉ ํจํค์ง ๋งค๋์ ๋ก, Kubernetes ํด๋ฌ์คํฐ์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ฐฐํฌ์ ์ด โHelm(ํฌ๋ฆ)โ ์ด๋ผ๋ ๋๊ตฌ๋ฅผ ํ์ฉ๋๋ค.
Helm์ ์ค์ ํ์ผ์ ๋ฐํ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ฅผ ์๋ ์คํํ๋ ๋๊ตฌ๋ก Kubernetes ์ดํ๋ฆฌ์ผ์ด์ ํจํค์ง ๋งค๋์ (package manger)๋ก์ ํ์ฌ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์ ํ์ด๋ค.
Helm์ Deis(2017๋ ์ Microsoft๊ฐ ์ธ์)ํ ํ๋ก์ ํธ ์ค ํ๋๋ก, 2015๋ ์ ๊ฐ์ต๋ ์ต์ด์ KubeCon(The Kubernetes Community Conference)์์ Helm Classic์ผ๋ก ๋ฐํ๋์๋ค. Helm ํ๋ก์ ํธ๋ 2016๋ 1์ Kubernetes ํ๋ก์ ํธ์ ํตํฉ๋์ด Kubernetes์ ํ์ ํ๋ก์ ํธ๊ฐ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ 2016๋ ํ๋ฐ์ Helm 2.0, 2018๋ 6์์ Helm 3.0์ด ์ถ์๋์ด ๋ณธ๊ฒฉ์ ์ธ CNCF(Cloud Native Computing Foundation) ํ๋ก์ ํธ๋ก ์น๊ฒฉ๋์๋ค.
Kubernetes์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ฌ์ค์ ํ์ค ๋๊ตฌ์ธ โHelmโ
์ต๊ทผ์๋ ์ปจํ ์ด๋ ํด๋ฌ์คํฐ ๊ธฐ์ ์ธ Kubernetes๋ฅผ ํ์ฉํ ์๋น์ค์ ์ด์ฉ์ด ๋์ด๋๊ณ ์์ผ๋ฉฐ, Kubernetes์์ ๋์ํ๋ ๊ฒ์ ์ ์ ๋ก ํ๋ ์ํํธ์จ์ด๋ ๋ฑ์ฅํ๊ณ ์๋ค. ํํธ, Kubernetes์์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐ์น์ ๋ํด์๋ ๊ณผ์ ๋ ๋ง๋ค.
Kubernetes๋ ์๋น์ค๋ฅผ ์ฌ๋ฌ ์๊ท๋ชจ ์ปดํฌ๋ํธ๋ก ๋ถํ ํ์ฌ ๊ตฌํํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ๊ถํฉ์ด ์ข๋ค. ์ด๋ฌํ ๊ตฌ์ฑ์ ์๋น์ค์์๋ ๊ฐ ์ปจํฌ๋ํธ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํด๋ฌ์คํฐ์ ๋ฐฐํฌํด์ผ ํ๋ค. ๋, ์๋น์ค๋ฅผ ์ธ๋ถ์ ๊ณต๊ฐํด์ผ ํ๊ฑฐ๋, ๊ฐ์ข ์ค์ ์ ํ๊ธฐ ์ํด์ Kubernetes ํด๋ฌ์คํฐ์ โ๋ฆฌ์์ค"๋ฅผ ์์ฑํ์ฌ ์ค์ ์ ์คํํด์ผ ํ๋ค. ์ด๋ฌํ ์์ ์ ๋๋ก๋ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ Kubernetes ํด๋ฌ์คํฐ์์ ๋ฐฐํฌ๋ฅผ ์ง์ํ๊ฑฐ๋ ๋ฐฐํฌ๋ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ๋๊ตฌ๊ฐ ๋ฑ์ฅํ๊ณ ์๋ค.
์ด๋ฒ์ ์๊ฐํ๋ ค๋ Helm์ ๊ทธ๋ฌํ Kubernetes ํด๋ฌ์คํฐ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ฅผ ์ง์ํ๋ ํด ์ค์ ํ๋์ด๋ค (๊ทธ๋ฆผ 1).
์ต๊ทผ์ OS๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ถ๋ถ์์๋ ์ 3์(Third-party)๋ก ์ธํด ๋ง๋ค์ด์ง ์ํํธ์จ์ด(ํจํค์ง) ๋ชจ์์ ๊ณต๊ฐํ๋ ์๋น์ค(๋ฆฌํฌ์งํ ๋ฆฌ)๊ฐ ์ ๊ณต๋๊ณ ์๊ณ , ๊ฑฐ๊ธฐ์ ๊ณต๊ฐ๋๊ณ ์๋ ์ํํธ์จ์ด์ ๊ฒ์์ด๋ ๋ค์ด๋ก๋, ์ธ์คํจ ๋ฑ์ ๊ฐ๋จํ ์กฐ์์ผ๋ก ํ ์ ์๋ โํจํค์ง ๋งค๋์ "๋ผ๊ณ ํ๋ ์ํํธ์จ์ด๊ฐ ์ ๊ณต๋์ด ์๋ค. Helm์ Kubernetes์ฉ ํจํค์ง ๋งค๋์ ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, OS๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํจํค์ง ๋งค๋์ ์ ์ ์ฌํ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์๋ค. Helm์ด ์ ๊ณตํ๋ ๊ตฌ์ฒด์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ๋จํ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- Chart๋ผ๊ณ ํ๋ ์ค์ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ๋ฆฌ์์ค ์๋ ์์ฑ
- ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ญ์ ๋ฐ ์ ๋ฐ์ดํธ์ ๊ฐ์ ๊ด๋ฆฌ
- ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฒ์๋ Chart ์ฐพ๊ธฐ, ๋ค์ด๋ก๋ ๋ฐ ์ค์น
- Chart ํจํค์ง ๋ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ๋ก๋
Kubernetes์ ๋ฒ ์ด์ค๊ฐ ๋๊ณ ์๋ ์ปจํ
์ด๋ ๊ธฐ์ ์ Docker์์๋ ์ด๋ฏธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฉ์นด๋์ฆ์ด ์ด๋ฏธ ์ค๋น๋์ด ์๋ค. ๊ทธ๋์ Helm์์๋ ์ด๋ฏธ์ง ์์ฒด๋ ์ง์ ๋ค๋ฃจ์ง ์๊ณ , โChart(์ฐจํธ)โ๋ผ๊ณ ํ๋ ์ค์ ํ์ผ๋ง์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๊ด๋ฆฌํ๋ ๊ตฌ์กฐ๋ก ๋๊ณ ์๋ค. ๊ทธ ์ ์ ์ ์ธํ๋ฉด Helm์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ผ๋ฐ์ ์ธ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฑฐ์ ๋์ผํ๋ฉฐ, helm
์ด๋ผ๋ CLI ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ Chart๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ฌ์คํฐ์ ์๋์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ ์ ์๋ค.
๋, Helm์์๋ โstable"๋ โincubator"๋ผ๊ณ ํ๋ ๋ช ์นญ์ ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์ ๊ณต๋๊ณ ์๋ ๊ฒ ์ธ์, ์จ๋ ํํฐ์ ์ํ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ๋ง์ด ์ ๊ณต๋๊ณ ์๋ค. ์ด๋ฌํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ณต๊ฐ๋ Chart๋ Arfifact Hub๋ผ๋ ์ฌ์ดํธ์์ ํตํด์ ๊ฒ์ํ ์ ์๊ฒ ๋์ด ์๋ค(๊ทธ๋ฆผ 2).
Helm์ ์ญ์ฌ์ ์ปค๋ฎค๋ํฐ
Helm์ 2016๋ 2์์ v1.0์ด ๋ฆด๋ฆฌ์ค๋์ด, ํ์ฌ๊น์ง 2๋ฒ์ ๋ฉ์ด์ ์ ๋ฐ์ดํธ๊ฐ ์งํ๋๊ณ ์๋ค. ์ต์ ํ์ 2022๋ 8์์ ๋ฐ๋งค๋ v3.9.4์ด๋ค.
- Helm v1
- 2015๋
DEIS์ ๋ด๋ถ ํ๋ก์ ํธ๋ก ์์
- 2017๋ DEIS๋ Microsoft์ ์ธ์
- 2015๋
DEIS์ ๋ด๋ถ ํ๋ก์ ํธ๋ก ์์
- Helm v2
- 2016๋ 1์ : Google ํ๋ก์ ํธ์ ํฉ๋ฅ
- 2016 ~ 2018๋ : Helm2 ๊ณ ๋ํ(2.0.0 ~ 2.12.2)
- 2018๋ 6์ : CNCF ํ๋ก์ ํธ์ ํฉ๋ฅ
- Helm v3
- 2019๋ 11์ : ๋ฆด๋ฆฌ์ฆ ๋ฐํ
- 2019๋ ~ 2021๋ : Helm3 ๊ณ ๋ํ(3.0.0 ~3.5.2)
์๋น์ด Kubernetes์ ์๋ธ ํ๋ก์ ํธ๋ก์ ๊ฐ๋ฐ์ด ์งํ๋๊ณ ์์์ง๋ง, ๊ทธ ํ Linux Foundation ์ฐํ์ ๋น์๋ฆฌ ๋จ์ฒด์ธ Cloud Native Computing Foundation(CNCF) ์ฐํ๊ฐ ๋์ด, ํ์ฌ๋ ๊ทธ ์ฒด์ ๋ก ๊ฐ๋ฐ์ด ์งํ๋๊ณ ์๋ค. CNCF๋ ํด๋ผ์ฐ๋ ๊ด๋ จ ๊ธฐ์ ๊ฐ๋ฐ์ ์ถ์งํ๋ ๋จ์ฒด๋ก Kubernetes ์์ฒด๋ CNCF ์ฐํ์์ ๊ฐ๋ฐ์ด ์งํ๋๊ณ ์๋ค. ์ด๋ฌํ ์ญ์ฌ์ ๋ฐฐ๊ฒฝ ๋๋ฌธ์ Helm์ Kubernetes์ (์ฌ์ค์) ๊ณต์ ํจํค์ง ๋งค๋์ ๋ผ๊ณ ๋ ์๋ ค์ ธ ์๋ค.
Helm ํ๋ก์ ํธ ์์ ์ด ์ ๊ณตํ๋ โstable"์ด๋ โincubatorโ ๋ฑ์ ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ์์๋ ์ด๋ฏธ ๋ค์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ Chart๊ฐ ๊ณต๊ฐ๋๊ณ ์์ผ๋ฉฐ, ์ ์ง์ ์ํด ์์ฑ๋ Chart๋ ๋ง์ด ๊ณต๊ฐ๋๊ณ ์๋ค. ๋, ์ด์ ์ ์๊ฐํ Kubernetes ๊ด๋ จ ํด์ Istio ๋ Jenkins X ๋ผ๊ณ ํ๋ ์ํํธ์จ์ด์์๋, Helm์ด ๊ณต์์ ์ค์น ๋๊ตฌ์ผ๋ก์ ์ฑํ๋์ด ์ฌ์ฉ๋๊ณ ์๋ค.
๋ง๋ถ์ฌ, helm์ ์ ๋ฐ ๋ฑ์์ ์ฌ์ฉ๋๋ ๋ฐฐ์ ํค๋ฅผ ์๋ฏธํ๋ ๋จ์ด์ด๋ค. ๋, chart๋ ํฅํด์ฉ ์ง๋์์ ์ ๋ํ๊ณ ์๋ค.
Helm์ ์ฃผ์ ํน์ง
Helm์ Go ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ Helm ํด๋ผ์ด์ธํธ์ Helm ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ ๊ฐ์ง ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋๋ค.
Helm์ Helm ํด๋ผ์ด์ธํธ๋ฅผ ํตํด Kubernetes์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ Linux yum ๋ช ๋ น๊ณผ ๊ฐ์ด ์ค์น (๋ฐฐํฌ)ํ๊ณ ์ ๊ฑฐ ํ ์ ์๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ๋ ์ฐจํธ(Chart)๋ผ๋ ํจํค์งํ๋ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ํ๋๋ค. ์ฐจํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค. ๋ํ Artifact Hub๋ผ๋ ์ฌ์ดํธ์๋ ๋ค์ํ ์ฐจํธ๊ฐ ๊ณต๊ฐ๋์ด ์์ด ์ฌ์ฉํ ์ ์๋ค.
Helm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Kubernetes ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ Kubernetes์ ํต์ ํ๋ค. ํต์ ์๋ REST+JSON์ด ์ฌ์ฉ๋๋ค. ์์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ํ์ง ์์ผ๋ฉฐ Kubernetes ๋น๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ค.
Helm์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฐจํธ: ์์ฉ ํ๋ก๊ทธ๋จ ์ธ์คํด์ค๋ฅผ ๋ง๋๋๋ฐ ํ์ํ ๊ตฌ์ฑ ํ์ผ ์งํฉ์ด๋ค.
- ๊ตฌ์ฑ: ์ฐจํธ ์ค์น์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ๋ค์ํ ๋งค๊ฐ ๋ณ์๋ฅผ ์ค์ ํ๊ธฐ ์ํ ๊ฒ์ด๋ค.
- ๋ฆด๋ฆฌ์ค: ์ฐจํธ๊ฐ ์ค์น๋๊ณ ์ ํ๋ฆฌ์ผ์ด์ (๋ฆด๋ฆฌ์ค ์ค๋ธ์ ํธ)์ด ์คํ ๊ฐ๋ฅํ ์ํ๊ฐ ๋ ์ธ์คํด์ค๋ฅผ ๋ฆด๋ฆฌ์ค๋ผ๊ณ ํ๋ค.
Helm์ ๋ค์์ ํ ์ ์๋ค.
- ์ฐจํธ ์๋ก ๋ง๋ค๊ธฐ
- ์ฐจํธ๋ฅผ ์ฐจํธ ์์นด์ด๋ธ(tgz)๋ก ํจํค์ง
- ์ฐจํธ๊ฐ ์ ์ฅ๋ ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ ์์
- Kubernetes ํด๋ฌ์คํฐ์ ์ฐจํธ ์ค์น ๋ฐ ์ ๊ฑฐ
- Helm์ผ๋ก ์ค์นํ ์ฐจํธ์ ๋ฆด๋ฆฌ์ค์ฃผ๊ธฐ ๊ด๋ฆฌ
Helm ํด๋ผ์ด์ธํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ญํ ์ ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค.
Helm ํด๋ผ์ด์ธํธ
์ต์ข ์ฌ์ฉ์๋ฅผ ์ํ ๋ช ๋ น์ค ํ๋ก๊ทธ๋จ์์ ๋ค์์ ๋ด๋นํ๋ค.
- ๋ก์ปฌ ์ฐจํธ ๊ฐ๋ฐ
- ๋ฆฌํฌ์งํ ๋ฆฌ ๊ด๋ฆฌ
- ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ
- Helm ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ฅํ์ฌ ์ฐจํธ๋ฅผ ์ ์ถํ๊ฑฐ๋ ๋ฆด๋ฆฌ์ค ์ ๊ทธ๋ ์ด๋ ๋ฐ ์ ๊ฑฐ ์์ฒญ์ ํ ์ ์๋ค.
Helm ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ชจ๋ Helm ์์ ์ Kubernetes API์ ํจ๊ป ์คํํ๋ค.
- ์ฐจํธ์์ ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด ๋ง๋ค๊ธฐ
- ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด๋ฅผ ๊ตฌ์ถํ๊ณ Kubernetes์ ์ค์น
- ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์ ๊ฑฐํ๊ธฐ
Helm๊ณผ ์ ์ฌํ ๋๊ตฌ
Helm๊ณผ ์ ์ฌํ ๋๊ตฌ๋ก๋ Ksonnet, Kapitan, Kustomize, kompose ๋ฐ Ansible์ด ์๋ค.
Helm ๋ช ๋ น์ ์
helm install # ์ฐจํธ๋ฅผ ์ค์นํ๋ค.
helm list # ๋ฆด๋ฆฌ์ค ๋ชฉ๋ก์ ํ์ํ๋ค.
helm pull # ์ฐจํธ๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๋ก์ปฌ๋ก ํ์ฅํ๋ค.
helm repo add # ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค.
helm repo list # ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ชฉ๋ก์ ํ์ํ๋ค.
helm search # ์ฐจํธ๋ฅผ ๊ฒ์ํ๋ค.
helm show # ์ฐจํธ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ํ๋ค.
helm uninstall # ๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ๋ค.
helm upgrade # ์ ์ฐจํธ๋ก ์
๊ทธ๋ ์ด๋ํ๋ค.