๋ฉ๋ชจ. ๋ฒ์ญ: ์ฌํด 16์ 3.0์ผ์ Kubernetes์ฉ ํจํค์ง ๊ด๋ฆฌ์์ธ Helm ๊ฐ๋ฐ์ ์์ด ์ค์ํ ์ด์ ํ๊ฐ ๋๋ ๋ ์
๋๋ค. ์ด๋ ํ๋ก์ ํธ์ ํฅํ ์ฃผ์ ๋ฒ์ ์ธ XNUMX์ ์ฒซ ๋ฒ์งธ ์ํ ๋ฆด๋ฆฌ์ค๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด๋ฒ ์ถ์๋ก ์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์จ Helm์ ์ค๋ํ ๋ณํ๊ฐ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ฉฐ, Kubernetes ์ปค๋ฎค๋ํฐ์ ๋ง์ ์ฌ๋๋ค์ด ํฐ ๊ธฐ๋๋ฅผ ํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ๋ฅผ ์ํด Helm์ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ค ํ๋์
๋๋ค. CI/CD ๊ตฌํ์ ์ํ ๋๊ตฌ์ Helm์ ํตํฉํ์ต๋๋ค.
15๋
2015์ 2์ผ, ํ์ฌ Helm์ผ๋ก ์๋ ค์ง ํ๋ก์ ํธ๊ฐ ํ์ํ์ต๋๋ค. Helm ์ปค๋ฎค๋ํฐ๋ ์ฐฝ๋ฆฝ 2018๋
๋ง์ Kubernetes์ ํฉ๋ฅํ๋ฉด์ Helm XNUMX๋ฅผ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐํ์ต๋๋ค. XNUMX๋
XNUMX์, Helm
์ด ๊ธ์์๋ ๋ชจ๋ ๊ฒ์ด ์ด๋์ ์์๋์๋์ง, ์ด๋ป๊ฒ ํ์ฌ์ ์์น์ ๋๋ฌํ๋์ง์ ๋ํด ์ด์ผ๊ธฐํ๊ณ , Helm 3์ ์ฒซ ๋ฒ์งธ ์ํ ๋ฆด๋ฆฌ์ค์์ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์๊ฐํ๊ณ , ์์ผ๋ก ๋์๊ฐ ๊ณํ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์์ฝ :
- Helm ์ฐฝ์กฐ์ ์ญ์ฌ;
- Tiller์๊ฒ ๋ถ๋๋ฌ์ด ์๋ณ ์ธ์ฌ๋ฅผ ์ ํฉ๋๋ค.
- ์ฐจํธ ์ ์ฅ์;
- ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ;
- ์ฐจํธ ์ข ์์ฑ ๋ณ๊ฒฝ;
- ๋์๊ด ์ฐจํธ;
- ๋ค์์?
ํฌ๋ฆ์ ์ญ์ฌ
์ถ์
Helm 1์ Deis๊ฐ ๋ง๋ ์คํ ์์ค ํ๋ก์ ํธ๋ก ์์๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ ์คํํธ์
์ด์์ด์ deisctl
, Deis ํ๋ซํผ์ ์ค์นํ๊ณ ์ด์ํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค.
2015๋
์ค๋ฐ์ ์ฐ๋ฆฌ๋ ๋ฐฉํฅ์ ๋ฐ๊พธ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ Deis(๋น์ Deis Workflow๋ก ์ด๋ฆ ๋ณ๊ฒฝ)๋ฅผ Fleet์์ Kubernetes๋ก ์ด๋ํ์ต๋๋ค. ์ฒ์์ผ๋ก ์ฌ์ค๊ณ๋ ๊ฒ ์ค ํ๋๋ ์ค์น ๋๊ตฌ์์ต๋๋ค. deisctl
. ์ฐ๋ฆฌ๋ ์ด๋ฅผ Fleet ํด๋ฌ์คํฐ์ Deis Workflow๋ฅผ ์ค์นํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ์ต๋๋ค.
Helm 1์ Homebrew, apt ๋ฐ yum๊ณผ ๊ฐ์ ์ ๋ช ํ ํจํค์ง ๊ด๋ฆฌ์์ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ฃผ์ ๋ชฉํ๋ Kubernetes์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์งํ๊ณ ์ค์นํ๋ ๋ฑ์ ์์ ์ ๋จ์ํํ๋ ๊ฒ์ด์์ต๋๋ค. Helm์ 2015๋ ์ํ๋์์ค์ฝ์์ ์ด๋ฆฐ KubeCon ์ปจํผ๋ฐ์ค์์ ๊ณต์์ ์ผ๋ก ์๊ฐ๋์์ต๋๋ค.
Helm์ ์ฌ์ฉํ ์ฒซ ๋ฒ์งธ ์๋๋ ์ฑ๊ณตํ์ง๋ง ๋ช ๊ฐ์ง ์ฌ๊ฐํ ์ ํ ์ฌํญ์ด ์์์ต๋๋ค. ๊ทธ๋ ์์ฑ๊ธฐ๋ฅผ ์ ๋ฌธ YAML ๋ธ๋ก์ผ๋ก ํ์ฉํ Kubernetes ๋งค๋ํ์คํธ ์ธํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. (์๋ฌธ)* ๊ฒฐ๊ณผ๋ฅผ Kubernetes์ ๋ก๋ํ์ต๋๋ค.
* ๋ฉ๋ชจ. ๋ฒ์ญ: Helm ์ฒซ ๋ฒ์งธ ๋ฒ์ ๋ถํฐ Kubernetes ๋ฆฌ์์ค๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํด YAML ๊ตฌ๋ฌธ์ด ์ ํ๋์์ผ๋ฉฐ ๊ตฌ์ฑ ์์ฑ ์ Jinja ํ
ํ๋ฆฟ๊ณผ Python ์คํฌ๋ฆฝํธ๊ฐ ์ง์๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ "Helm์ ๊ฐ๋ตํ ์ญ์ฌ" ์ฅ์์ ์ด์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ์ผ๋ฐ์ ์ธ Helm ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ ๊ตฌ์กฐ์ ๋ํด ์ผ์ต๋๋ค.
์๋ฅผ ๋ค์ด YAML ํ์ผ์ ํ๋๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด ๋งค๋ํ์คํธ์ ๋ค์ ๊ตฌ์ฑ์ ์ถ๊ฐํด์ผ ํ์ต๋๋ค.
#helm:generate sed -i -e s|ubuntu-debootstrap|fluffy-bunny| my/pod.yaml
์ค๋๋ ํ ํ๋ฆฟ ์์ง์ด ์กด์ฌํ๋ค๋ ๊ฒ์ ๋๋จํ ์ผ์ ๋๋ค. ๊ทธ๋ ์ง ์์ต๋๊น?
์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ด ์ด๊ธฐ Kubernetes ์ค์น ํ๋ก๊ทธ๋จ์๋ ํ๋ ์ฝ๋ฉ๋ ๋งค๋ํ์คํธ ํ์ผ ๋ชฉ๋ก์ด ํ์ํ์ผ๋ฉฐ ์๊ท๋ชจ์ ๊ณ ์ ๋ ์ด๋ฒคํธ ์ํ์ค๋ง ์คํํ์ต๋๋ค. ์ฌ์ฉํ๊ธฐ๊ฐ ๋๋ฌด ์ด๋ ค์์ Deis Workflow R&D ํ์ด ์ ํ์ ์ด ํ๋ซํผ์ผ๋ก ์ด์ ํ๋ ค๊ณ ํ ๋ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ด๋์ด์ ์จ์์ ์ด๋ฏธ ๋ฟ๋ ค์ก์ต๋๋ค. ์ฐ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ์๋๋ ํ๋ฅญํ ํ์ต ๊ธฐํ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ฉ์์ ์ผ์์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ค์ฉ์ ์ธ ๋๊ตฌ๋ฅผ ๋ง๋๋ ๋ฐ ์ง์ ์ผ๋ก ์ด์ ์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๊ณผ๊ฑฐ์ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก Helm 2 ๊ฐ๋ฐ์ ์์ํ์ต๋๋ค.
ํฌ๊ตฌ ๋ง๋ค๊ธฐ 2
2015๋ ๋ง์ Google ํ์์ ์ฐ๋ฝ์ด ์์ต๋๋ค. ๊ทธ๋ค์ Kubernetes๋ฅผ ์ํ ์ ์ฌํ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์์ต๋๋ค. Kubernetes์ฉ ๋ฐฐํฌ ๊ด๋ฆฌ์๋ Google Cloud Platform์ ์ฌ์ฉ๋์๋ ๊ธฐ์กด ๋๊ตฌ์ ํฌํธ์์ต๋๋ค. ๊ทธ๋ค์ โ๋ฉฐ์น ๋์ ์ ์ฌ์ ๊ณผ ์ฐจ์ด์ ์ ๋ํด ํ ๋ก ํด ๋ณผ๊น์?โ๋ผ๊ณ ๋ฌผ์์ต๋๋ค.
2016๋
2์, Helm ํ๊ณผ ๋ฐฐํฌ ๊ด๋ฆฌ์ ํ์ ์์ ํ์์ ๋ง๋ ์์ด๋์ด๋ฅผ ๊ตํํ์ต๋๋ค. ํ์์ ๋ ํ๋ก์ ํธ๋ฅผ ๊ฒฐํฉํ์ฌ Helm XNUMX๋ฅผ ๋ง๋๋ ์ผ์ฌ์ฐฌ ๊ณํ์ผ๋ก ๋๋ฌ์ต๋๋ค. Deis ๋ฐ Google๊ณผ ํจ๊ป
Helm์ ์ฌ์ฉ ํธ์์ฑ์ ์ ์งํ๊ณ ์ถ์์ง๋ง ๋ค์์ ์ถ๊ฐํ์ต๋๋ค.
- ์ฌ์ฉ์ ์ ์๋ฅผ ์ํ ์ฐจํธ ํ ํ๋ฆฟ;
- ํ์ ์ํ ํด๋ฌ์คํฐ ๋ด ๊ด๋ฆฌ;
- ์ธ๊ณ์ ์์ค์ ์ฐจํธ ์ ์ฅ์;
- ์๋ช ์ต์ ์ด ์๋ ์์ ์ ์ธ ํจํค์ง ํ์;
- ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฒ์ ๊ฐ์ ํ์ ํธํ์ฑ ์ ์ง์ ๋ํ ๊ฐํ ์์ง์ ๋๋ค.
์ด๋ฌํ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด Helm ์ํ๊ณ์ ๋ ๋ฒ์งธ ์์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด ํด๋ฌ์คํฐ ๋ด ๊ตฌ์ฑ ์์๋ Tiller๋ผ๊ณ ํ๋ฉฐ Helm ์ฐจํธ ์ค์น ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ์ต๋๋ค.
2๋
Helm 2016๊ฐ ์ถ์๋ ์ดํ Kubernetes์๋ ๋ช ๊ฐ์ง ์ฃผ์ ํ์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด๊ฐ ์ถ๊ฐ๋์์ต๋๋ค(
์ด๋ฌํ ๋ชจ๋ ๋ณํ ์์์๋ Helm์ ๊ณ์ํด์ Kubernetes ์ฌ์ฉ์์๊ฒ ์ถฉ์คํ๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ์ต๋๋ค. XNUMX๋ ์ด ์ง๋๊ณ ๋ง์ ์๋ก์ด ์ถ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง ํ, Helm์ด ์งํํ๋ ์ํ๊ณ์ ์ฆ๊ฐํ๋ ์๊ตฌ ์ฌํญ์ ๊ณ์ํด์ ์ถฉ์กฑํ ์ ์๋๋ก ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํฌ๊ฒ ๋ณ๊ฒฝํด์ผ ํ ๋๋ผ๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค.
ํธ๋ฌ์์ ๋ถ๋๋ฌ์ด ์๋ณ ์ธ์ฌ
Helm 2๋ฅผ ๊ฐ๋ฐํ๋ ๋์ Google ๋ฐฐํฌ ๊ด๋ฆฌ์์์ ํตํฉ์ ์ผ๋ถ๋ก Tiller๋ฅผ ๋์ ํ์ต๋๋ค. Tiller๋ ๊ณตํต ํด๋ฌ์คํฐ ๋ด์์ ์์ ํ๋ ํ์๊ฒ ์ค์ํ ์ญํ ์ ํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ธํ๋ผ๋ฅผ ์ด์ํ๋ ๋ค์ํ ์ ๋ฌธ๊ฐ๊ฐ ๋์ผํ ๋ฆด๋ฆฌ์ค ์ธํธ์ ์ํธ ์์ฉํ ์ ์์์ต๋๋ค.
Kubernetes 1.6์์๋ ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด(RBAC)๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์์ผ๋ฏ๋ก ํ๋ก๋์ ์์ Tiller๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ด๋ ค์์ก์ต๋๋ค. ๊ฐ๋ฅํ ๋ณด์ ์ ์ฑ ์ ์๊ฐ ์์ฒญ๋๊ฒ ๋ง๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์ ์ ์ฅ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฉ๋๋ ๊ตฌ์ฑ์ ์ ๊ณตํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ด๋ณด์๋ ๋จผ์ ๋ณด์ ์ค์ ์ ๋ค์ด๊ฐ์ง ์๊ณ ๋ Helm๊ณผ Kubernetes๋ฅผ ์คํํด ๋ณผ ์ ์์์ต๋๋ค. ๋ถํํ๊ฒ๋ ์ด ๊ถํ ๊ตฌ์ฑ์ ์ฌ์ฉ์์๊ฒ ํ์ํ์ง ์์ ๋๋ฌด ๊ด๋ฒ์ํ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค. DevOps ๋ฐ SRE ์์ง๋์ด๋ ๋ค์ค ํ ๋ํธ ํด๋ฌ์คํฐ์ Tiller๋ฅผ ์ค์นํ ๋ ์ถ๊ฐ ์ด์ ๋จ๊ณ๋ฅผ ๋ฐฐ์์ผ ํ์ต๋๋ค.
์ปค๋ฎค๋ํฐ๊ฐ ํน์ ์ํฉ์์ Helm์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์๊ฒ ๋ ํ ์ฐ๋ฆฌ๋ Tiller์ ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ ์์คํ ์ด ๋ฆด๋ฆฌ์ค ์ ๋ณด์ ์ค์ ํ๋ธ๋ก์ ์ํ๋ ๊ธฐ๋ฅ์ ์ ์งํ๊ธฐ ์ํด ํด๋ฌ์คํฐ ๋ด ๊ตฌ์ฑ ์์์ ์์กดํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๋์ , ๊ฐ๋จํ Kubernetes API ์๋ฒ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์์ ํ๊ณ , ํด๋ผ์ด์ธํธ ์ธก์์ ์ฐจํธ๋ฅผ ์์ฑํ๊ณ , ์ค์น ๊ธฐ๋ก์ Kubernetes์ ์ ์ฅํ ์ ์์์ต๋๋ค.
Tiller์ ์ฃผ์ ๋ชฉํ๋ Tiller ์์ด๋ ๋ฌ์ฑํ ์ ์์์ผ๋ฏ๋ก Helm 3์ ๊ดํ ์ฐ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๊ฒฐ์ ์ค ํ๋๋ Tiller๋ฅผ ์์ ํ ํฌ๊ธฐํ๋ ๊ฒ์ด์์ต๋๋ค.
Tiller๊ฐ ์ฌ๋ผ์ง๋ฉด์ Helm์ ๋ณด์ ๋ชจ๋ธ์ ๊ทผ๋ณธ์ ์ผ๋ก ๋จ์ํ๋์์ต๋๋ค. Helm 3์ ์ด์ ํ์ฌ Kubernetes์ ๋ชจ๋ ์ต์ ๋ณด์, ID ๋ฐ ์ธ์ฆ ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค. Helm ๊ถํ์ ๋ค์์ ์ฌ์ฉํ์ฌ ๊ฒฐ์ ๋ฉ๋๋ค.
์ฐจํธ ์ ์ฅ์
์์ ์์ค์์ ์ฐจํธ ์ ์ฅ์๋ ์ฐจํธ๋ฅผ ์ ์ฅํ๊ณ ๊ณต์ ํ ์ ์๋ ์ฅ์์ ๋๋ค. Helm ํด๋ผ์ด์ธํธ๋ ์ฐจํธ๋ฅผ ํจํค์งํ์ฌ ์ ์ฅ์๋ก ๋ณด๋ ๋๋ค. ๊ฐ๋จํ ๋งํด์ ์ฐจํธ ์ ์ฅ์๋ index.yaml ํ์ผ๊ณผ ์ผ๋ถ ํจํค์ง ์ฐจํธ๊ฐ ์๋ ๊ธฐ๋ณธ HTTP ์๋ฒ์ ๋๋ค.
๋๋ถ๋ถ์ ๊ธฐ๋ณธ ์ ์ฅ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ Charts Repository API์๋ ๋ช ๊ฐ์ง ์ฅ์ ์ด ์์ง๋ง ๋ช ๊ฐ์ง ๋จ์ ๋ ์์ต๋๋ค.
- ์ฐจํธ ์ ์ฅ์๋ ํ๋ก๋์ ํ๊ฒฝ์ ํ์ํ ๋๋ถ๋ถ์ ๋ณด์ ๊ตฌํ๊ณผ ํธํ๋์ง ์์ต๋๋ค. ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ์ํ ํ์ค API๋ฅผ ๊ฐ๋ ๊ฒ์ ํ๋ก๋์ ์๋๋ฆฌ์ค์์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ์ฐจํธ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ถ์ฒ๋ฅผ ์๋ช ํ๊ณ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋๋ Helm์ ์ฐจํธ ์ถ์ฒ ๋๊ตฌ๋ ์ฐจํธ ๊ฒ์ ํ๋ก์ธ์ค์ ์ ํ์ ์ธ ๋ถ๋ถ์ ๋๋ค.
- ๋ค์ค ์ฌ์ฉ์ ์๋๋ฆฌ์ค์์๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋์ผํ ์ฐจํธ๋ฅผ ์ ๋ก๋ํ ์ ์์ผ๋ฏ๋ก ๋์ผํ ์ฝํ ์ธ ๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๊ณต๊ฐ์ด ๋ ๋ฐฐ๋ก ๋์ด๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๋๋ํ ์ ์ฅ์๊ฐ ๊ฐ๋ฐ๋์์ง๋ง ๊ณต์ ์ฌ์์ ์ผ๋ถ๋ ์๋๋๋ค.
- ๋ฉํ๋ฐ์ดํฐ ๊ฒ์, ์ ์ฅ ๋ฐ ์ฐจํธ ๊ฒ์์ ๋จ์ผ ์ธ๋ฑ์ค ํ์ผ์ ์ฌ์ฉํ๋ฉด ์์ ํ ๋ค์ค ์ฌ์ฉ์ ๊ตฌํ์ ๊ฐ๋ฐํ๊ธฐ๊ฐ ์ด๋ ค์์ก์ต๋๋ค.
๊ณํ
ํ์ง๋ง ๋ฐฐํฌ ํ๋ก์ ํธ๊ฐ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ํํ์ ์ฝํ ์ธ ๋ฅผ ๋ฐฐํฌํ๋๋ก ์ค๊ณ๋์๋ค๋ ์ฌ์ค์ ์๊ณ ๊ณ์ จ๋์?
๋
ธ๋ ฅ ๋๋ถ์
Helm ์ฐจํธ ์ ์ฅ์์ ๋ํ ์ผ๋ถ ํฅํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์์ธํ ์ค๋ช
์ด ์ ๊ณต๋ฉ๋๋ค.
๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ
Helm 3์์ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ ๊ฐ์ฒด ์์ ํตํด ํด๋ฌ์คํฐ ๋ด์์ ์ถ์ ๋ฉ๋๋ค.
- ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด - ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๋ฅผ ๋ํ๋ ๋๋ค.
- ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ - ํน์ ์์ (์: ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์ค)์์ ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ฅผ ๋ํ๋ ๋๋ค.
๋์ helm install
๋ฆด๋ฆฌ์ค ๊ฐ์ฒด์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ์์ฑํฉ๋๋ค. ๋ถ๋ฅด๋ค helm upgrade
๋ฆด๋ฆฌ์ค ๊ฐ์ฒด(๋ณ๊ฒฝ ๊ฐ๋ฅ)๊ฐ ํ์ํ๋ฉฐ ์ ๊ฐ๊ณผ ์ค๋น๋ ๋งค๋ํ์คํธ๋ฅผ ํฌํจํ๋ ์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ์์ฑํฉ๋๋ค.
๋ฆด๋ฆฌ์ค ๊ฐ์ฒด์๋ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฆด๋ฆฌ์ค๋ ๋ช ๋ช ๋ ์ฐจํธ ๋ฐ ๊ฐ์ ํน์ ์ค์น์ ๋๋ค. ์ด ๊ฐ์ฒด๋ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ต์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ค๋ช ํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ ์ ๋ฐ์ ๊ฑธ์ณ ์ง์๋๋ฉฐ ๋ชจ๋ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ๊ณผ Helm ์ฐจํธ์์ ์ง์ ์์ฑ๋ ๋ชจ๋ ๊ฐ์ฒด์ ์์ ์์ ๋๋ค.
๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ผ๋ จ์ ๊ฐ์ (์ค์น, ์ ๋ฐ์ดํธ, ๋กค๋ฐฑ, ์ญ์ )๊ณผ ์ฐ๊ฒฐํฉ๋๋ค.
Helm 2์์๋ ์์ ๋ณธ์ด ๋งค์ฐ ์ผ๊ด์ฑ์ด ์์์ต๋๋ค. ๋ถ๋ฅด๋ค helm install
v1์ ์์ฑํ๊ณ ํ์ ์
๋ฐ์ดํธ(์
๊ทธ๋ ์ด๋) - v2 ๋ฑ์ ์ํํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ๋ฐ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ๊ฐ์ ์ด๋ผ๋ ๋จ์ผ ๊ฐ์ฒด๋ก ์ถ์๋์์ต๋๋ค. ๊ฐ์ ํ์ Tiller์ ๋์ผํ ๋ค์์คํ์ด์ค์ ์ ์ฅ๋์์ต๋๋ค. ์ด๋ ๊ฐ ๋ฆด๋ฆฌ์ค๊ฐ ๋ค์์คํ์ด์ค ์ธก๋ฉด์์ "์ ์ญ"์์ ์๋ฏธํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ฆ์ ์ธ์คํด์ค๋ ํ๋๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
Helm 3์์ ๊ฐ ๋ฆด๋ฆฌ์ค๋ ํ๋ ์ด์์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด๋ ํญ์ Kubernetes์ ๋ฐฐํฌ๋ ํ์ฌ ๋ฆด๋ฆฌ์ค๋ฅผ ์ค๋ช ํฉ๋๋ค. ๊ฐ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ํด๋น ๋ฆด๋ฆฌ์ค์ ํ ๋ฒ์ ๋ง ์ค๋ช ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๊ทธ๋ ์ด๋๋ ์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ์์ฑํ ๋ค์ ํด๋น ์ ๋ฒ์ ์ ๊ฐ๋ฆฌํค๋๋ก ๋ฆด๋ฆฌ์ค ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๋กค๋ฐฑํ๋ ๊ฒฝ์ฐ ์ด์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ๋น๋ฐ์ ์ฌ์ฉํ์ฌ ๋ฆด๋ฆฌ์ค๋ฅผ ์ด์ ์ํ๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค.
Tiller๊ฐ ํ๊ธฐ๋ ํ Helm 3์ ๋ฆด๋ฆฌ์ค์ ๋์ผํ ๋ค์์คํ์ด์ค์ ๋ฆด๋ฆฌ์ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด ๋ณ๊ฒฝ์ ํตํด ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ๋์ผํ ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ๊ฐ์ง ์ฐจํธ๋ฅผ ์ค์นํ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ๋ etcd์ ํด๋ฌ์คํฐ ์ ๋ฐ์ดํธ/์ฌ๋ถํ ์ฌ์ด์ ์ ์ฅ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด WordPress๋ฅผ "foo" ๋ค์์คํ์ด์ค์ ์ค์นํ ๋ค์ "bar" ๋ค์์คํ์ด์ค์ ์ค์นํ ์ ์์ผ๋ฉฐ ๋ ๋ฆด๋ฆฌ์ค ๋ชจ๋ "wordpress"๋ผ๋ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ฐจํธ ์ข ์์ฑ ๋ณ๊ฒฝ ์ฌํญ
ํฌ์ฅ๋ ์ฐจํธ(์ฌ์ฉ helm package
) Helm 2์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํด Helm 3๊ณผ ํจ๊ป ์ค์นํ ์ ์์ง๋ง ์ฐจํธ ๊ฐ๋ฐ ์ํฌํ๋ก๊ฐ ์์ ํ ์ ๊ฒ๋์์ผ๋ฏ๋ก Helm 3์ ์ฌ์ฉํ์ฌ ์ฐจํธ ๊ฐ๋ฐ์ ๊ณ์ํ๋ ค๋ฉด ์ผ๋ถ ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค. ํนํ ์ฐจํธ ์ข
์์ฑ ๊ด๋ฆฌ ์์คํ
์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
์ฐจํธ์ ์ข
์์ฑ ๊ด๋ฆฌ ์์คํ
์ด ๋ค์์์ ๋ณ๊ฒฝ๋์์ต๋๋ค. requirements.yaml
ะธ requirements.lock
์ Chart.yaml
ะธ Chart.lock
. ์ด๋ ๋ช
๋ น์ ์ฌ์ฉํ ์ฐจํธ๋ฅผ ์๋ฏธํฉ๋๋ค. helm dependency
, Helm 3์์ ์๋ํ๋ ค๋ฉด ์ผ๋ถ ์ค์ ์ด ํ์ํฉ๋๋ค.
์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. Helm 2์ ์ฐจํธ์ ์ข ์์ฑ์ ์ถ๊ฐํ๊ณ Helm 3์ผ๋ก ์ด๋ํ ๋ ์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํฌ๋ฆ 2์์ requirements.yaml
๋ค์๊ณผ ๊ฐ์ด ๋ณด์๋ค:
dependencies:
- name: mariadb
version: 5.x.x
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
tags:
- database
Helm 3์์๋ ๋์ผํ ์ข
์์ฑ์ด ๋ค์ ํญ๋ชฉ์ ๋ฐ์๋ฉ๋๋ค. Chart.yaml
:
dependencies:
- name: mariadb
version: 5.x.x
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
tags:
- database
์ฐจํธ๋ ์ฌ์ ํ ๋ค์ด๋ก๋๋์ด ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์น๋ฉ๋๋ค. charts/
, ํ์ ์ฐจํธ (ํ์ ์ฐจํธ), ์นดํ๋ก๊ทธ์ ๋์ charts/
, ๋ณ๊ฒฝ ์์ด ๊ณ์ ์๋ํฉ๋๋ค.
๋์๊ด ์ฐจํธ ์๊ฐ
Helm 3์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจํธ๋ผ๋ ์ฐจํธ ํด๋์ค๋ฅผ ์ง์ํฉ๋๋ค. (๋์๊ด ์ฐจํธ). ์ด ์ฐจํธ๋ ๋ค๋ฅธ ์ฐจํธ์์ ์ฌ์ฉ๋์ง๋ง ์์ฒด์ ์ผ๋ก ๋ฆด๋ฆฌ์ค ์ํฐํฉํธ๋ฅผ ์์ฑํ์ง๋ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจํธ ํ
ํ๋ฆฟ์ ์์๋ง ์ ์ธํ ์ ์์ต๋๋ค. define
. ๋ค๋ฅธ ์ฝํ
์ธ ๋ ๋จ์ํ ๋ฌด์๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ฌ๋ฌ ์ฐจํธ์์ ์ฌ์ฉํ ์ ์๋ ์ฝ๋ ์กฐ๊ฐ์ ์ฌ์ฌ์ฉํ๊ณ ๊ณต์ ํ ์ ์์ผ๋ฏ๋ก ์ค๋ณต์ ํผํ๊ณ ์์น์ ์ค์ํ ์ ์์ต๋๋ค.
๋์๊ด ์ฐจํธ๋ ์น์
์ ์ ์ธ๋์ด ์์ต๋๋ค. dependencies
ํ์ผ์ Chart.yaml
. ์ค์น ๋ฐ ๊ด๋ฆฌ๋ ๋ค๋ฅธ ์ฐจํธ์ ๋ค๋ฅด์ง ์์ต๋๋ค.
dependencies:
- name: mylib
version: 1.x.x
repository: quay.io
์ฐ๋ฆฌ๋ ์ด ๊ตฌ์ฑ ์์๊ฐ ์ฐจํธ ๊ฐ๋ฐ์์๊ฒ ๊ณต๊ฐ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจํธ์์ ๋ํ๋ ์ ์๋ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํด ๊ธฐ๋ํ๊ณ ์์ต๋๋ค.
๋ค์์ ๋ญ์ง?
Helm 3.0.0-alpha.1์ ์๋ก์ด ๋ฒ์ ์ Helm ๊ตฌ์ถ์ ์์ํ๋ ๊ธฐ๋ฐ์ ๋๋ค. ๊ธฐ์ฌ์์ ๋๋ Helm 3์ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ์ ์ค๋ช ํ์ต๋๋ค. ๊ทธ ์ค ๋ค์๋ ์์ง ๊ฐ๋ฐ ์ด๊ธฐ ๋จ๊ณ์ ์์ผ๋ฉฐ ์ด๋ ์ ์์ ์ธ ํ์์ ๋๋ค. ์ํ ๋ฆด๋ฆฌ์ค์ ์์ ์ ์์ด๋์ด๋ฅผ ํ ์คํธํ๊ณ , ์ด๊ธฐ ์ฌ์ฉ์๋ก๋ถํฐ ํผ๋๋ฐฑ์ ์์งํ๊ณ , ๊ฐ์ ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค.
์ํ ๋ฒ์ ์ด ์ถ์๋์๋ง์ (์ด๊ฑด ๊ธฐ์ตํด๋์ธ์
๋๋ Helm 3์ ์ฃผ์ ๊ฐ์ ์ฌํญ ์ค ์ผ๋ถ๋ฅผ ๊ฐ์กฐํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ์ด ๋ชฉ๋ก์ด ๊ฒฐ์ฝ ์์ ํ ๊ฒ์ ์๋๋๋ค. Helm 3์ ์ ์ฒด ๋ก๋๋งต์๋ ํฅ์๋ ์ ๋ฐ์ดํธ ์ ๋ต, OCI ๋ ์ง์คํธ๋ฆฌ์์ ์ฌ์ธต ํตํฉ, ์ฐจํธ ๊ฐ ๊ฒ์ฆ์ ์ํ JSON ์คํค๋ง ์ฌ์ฉ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ๋ฆฌํ๊ณ ์ง๋ XNUMX๋ ๋์ ๋ฐฉ์น๋ ๋ถ๋ถ์ ์ ๋ฐ์ดํธํ ๊ณํ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น ๊ฒ ๊ฐ๋ค๋ฉด, ์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋ฃ๊ณ ์ถ์ต๋๋ค!
์ฐ๋ฆฌ์ ํ ๋ก ์ ์ฐธ์ฌํ์ธ์
-
#helm-users
์ปค๋ฎค๋ํฐ์์ ์ง๋ฌธ ๋ฐ ๊ฐ๋จํ ์์ฌ์ํต์ ์ํด; -
#helm-dev
๋์ด์ค๊ธฐ ์์ฒญ, ์ฝ๋ ๋ฐ ๋ฒ๊ทธ์ ๋ํด ๋ ผ์ํฉ๋๋ค.
๋งค์ฃผ ๋ชฉ์์ผ 19:30 MSK์ ์ด๋ฆฌ๋ ๊ณต๊ฐ ๊ฐ๋ฐ์ ํตํ์์ ์ฑํ
ํ ์๋ ์์ต๋๋ค. ํ์์์๋ ์ฃผ์ ๊ฐ๋ฐ์์ ์ปค๋ฎค๋ํฐ๊ฐ ์์
์ค์ธ ๋ฌธ์ ์ ์ด๋ฒ ์ฃผ์ ํ ๋ก ์ฃผ์ ๋ฅผ ๋
ผ์ํ๋ ๋ฐ ์ ๋
ํฉ๋๋ค. ๋๊ตฌ๋ ํ์์ ์ฐธ์ฌํ๊ณ ์ฐธ์ฌํ ์ ์์ต๋๋ค. Slack ์ฑ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋งํฌ #helm-dev
.
๋ฒ์ญ๊ฐ์ ์ถ์
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes์ฉ ํจํค์ง ๊ด๋ฆฌ์ - Helm: ๊ณผ๊ฑฐ, ํ์ฌ, ๋ฏธ๋ "; - ยซ
Helm 2์ ๋ํ ๋์ฒ ํ ์๊ฐ: "์ด๊ฒ์ด ๋ฐ๋ก ์ด๊ฒ์ด๋ค..." "; - ยซ
Kubernetes์ฉ ํจํค์ง ๊ด๋ฆฌ์์ ๋ํ ์ค์ ์๊ฐ - Helm "; - ยซ
Kubernetes ํ ๋ฐ ์๋ น: ํด๋ฌ์คํฐ์์ ์คํ ์ค์ธ ๋ฆฌ์์ค๋ฅผ Helm 2 ๊ด๋ฆฌ๋ก ์ ์ก "; - ยซ
dapp์ผ๋ก ์ฐ์ตํด๋ณด์ธ์. 2๋ถ. Helm์ ์ฌ์ฉํ์ฌ Kubernetes์ Docker ์ด๋ฏธ์ง ๋ฐฐํฌ ".
์ถ์ฒ : habr.com