์ ์ด๋ฆ์ Dmitry Sugrobov์ด๊ณ Leroy Merlin์ ๊ฐ๋ฐ์์ ๋๋ค. ์ด ๊ธฐ์ฌ์์๋ Helm์ด ํ์ํ ์ด์ , Helm์ด Kubernetes ์์ ์ ๋จ์ํํ๋ ๋ฐฉ๋ฒ, ์ธ ๋ฒ์งธ ๋ฒ์ ์์ ๋ณ๊ฒฝ๋ ์ฌํญ, ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ ์ค์ง ์๊ฐ ์์ด ํ๋ก๋์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์ด๊ฒ์ ํ์์์์ ์ฐ์ค์ ๋ฐํ์ผ๋ก ํ ์์ฝ์
๋๋ค.
ํ๋ก๋์ ์์ Kubernetes๋ฅผ ์ฌ์ฉํ๋ ์ด์
Leroy Merlin์ ๋ฌ์์์ ์ ๋ฝ DIY ์๋งค ์์ฅ์ ์ ๋์ฃผ์์ ๋๋ค. ์ฐ๋ฆฌ ํ์ฌ์๋ 33๋ช ์ด์์ ๊ฐ๋ฐ์, 000๋ช ์ ๋ด๋ถ ์ง์, ๋ํ๋งํธ์ ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ ์๋ง์ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๋ชจ๋๋ฅผ ๋ง์กฑ์ํค๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์ ๊ณ ํ์ค ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํฉ๋๋ค. ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌํ๊ณ ์ ์ ํ ์ ๋ฌ์ ๋ณด์ฅํฉ๋๋ค. ์ค์ผ์คํธ๋ ์ด์ ์ ์ํด Kubernetes๋ฅผ ์ฌ์ฉํ์ธ์. ์ค์ผ์คํธ๋ ์ดํฐ ์ฌ์ฉ ๊ฐ๊ฒฉ์ ๋น ๋ฅด๊ฒ ์ ๋ ดํด์ง๊ณ ์์ต๋๋ค. ํด๋น ๊ธฐ์ ์ ๋ฅ์ํ ์์ง๋์ด์ ์๊ฐ ์์ฅ์์ ์ฆ๊ฐํ๊ณ ์์ผ๋ฉฐ ์๋น์ค ์ ๊ณต์ ์ฒด๊ฐ Kubernetes๋ฅผ ์๋น์ค๋ก ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ๋ํ๋๊ณ ์์ต๋๋ค.
๋ฌผ๋ก Kubernetes๊ฐ ์ํํ๋ ๋ชจ๋ ์์ ์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ํ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ถ Jenkins ๋ฐ docker-compose๋ฅผ ์คํฌ๋ฆฝํธ๋ก ์ฒ๋ฆฌํ๋ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ง๋ง ๊ธฐ์ฑ๋๊ณ ์์ ์ ์ธ ์๋ฃจ์ ์ด ์๋ค๋ฉด ์ ์ถ์ ๋ณต์กํ๊ฒ ๋ง๋ค๊น์? ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ Kubernetes๋ฅผ ์ ํํ๊ณ ํ์ฌ XNUMX๋ ๋์ ํ๋ก๋์ ํ๊ฒฝ์์ ์ฌ์ฉํด ์จ ์ด์ ์ ๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ XNUMX๊ฐ์ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ๊ทธ ์ค ๊ฐ์ฅ ์ค๋๋ ํด๋ฌ์คํฐ๋ ์ฝ XNUMX๊ฐ์ ํฌ๋๋ฅผ ํฌํจํ์ฌ XNUMX๋ ์ด์ ๋ ํด๋ฌ์คํฐ์ ๋๋ค.
Kubernetes์ ๋์ฉ๋ YAML ํ์ผ์ ์ ์ฃผ
Kubernetes์์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ํ๊ธฐ ์ํด ๋ฐฐํฌ, ์๋น์ค, Ingress, ConfigMap, Secrets์ฉ์ผ๋ก ์ต์ XNUMX๊ฐ์ YAML ํ์ผ์ ์์ฑํ์ฌ ํด๋ฌ์คํฐ๋ก ๋ณด๋ ๋๋ค. ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋์ผํ jambs ํจํค์ง๋ฅผ ์์ฑํ๊ณ ์ธ ๋ฒ์งธ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๋ ์์ผ๋ก ๊ณ์๋ฉ๋๋ค. ๋ฌธ์ ์์ ํ๊ฒฝ ์๋ฅผ ๊ณฑํ๋ฉด ์ด๋ฏธ ์๋ฐฑ ๊ฐ์ ํ์ผ์ ์ป๊ฒ ๋๋ฉฐ ์ด๋ ์์ง ๋์ ํ๊ฒฝ์ ๊ณ ๋ คํ์ง ์์ ๊ฒ์ ๋๋ค.
Helm์ ํต์ฌ ๊ด๋ฆฌ์์ธ Adam Reese๋ "
- YAML ๋ณต์ฌ - YAML ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.
- YAML ๋ถ์ฌ๋ฃ๊ธฐ - ๋ถ์ฌ๋ฃ์ต๋๋ค.
- ๋ค์ฌ์ฐ๊ธฐ ์์ - ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์์ ํฉ๋๋ค.
- ๋ฐ๋ณต - ๋ค์ ๋ฐ๋ณตํฉ๋๋ค.
์ด ์ต์ ์ ์๋ํ์ง๋ง YAML ํ์ผ์ ์ฌ๋ฌ ๋ฒ ๋ณต์ฌํด์ผ ํฉ๋๋ค. ์ด ์ฃผ๊ธฐ๋ฅผ ๋ฐ๊พธ๊ธฐ ์ํด Helm์ด ๋ฐ๋ช ๋์์ต๋๋ค.
ํฌ๋ฆ์ด๋ ๋ฌด์์ ๋๊น?
๋จผ์ ํฌ๋ฆ - ํจํค์ง ๊ด๋ฆฌ์, ํ์ํ ํ๋ก๊ทธ๋จ์ ์ฐพ๊ณ ์ค์นํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด MongoDB๋ฅผ ์ค์นํ๋ ค๋ฉด ๊ณต์ ์น ์ฌ์ดํธ๋ก ์ด๋ํ์ฌ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ผ๋ฉฐ ๋ค์ ๋ช
๋ น์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. helm install stable/mongodb
.
๋์งธ, ํฌ๋ฆ - ํ ํ๋ฆฟ ์์ง, ํ์ผ์ ๋งค๊ฐ๋ณ์ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Kubernetes์ YAML ํ์ผ ์ํฉ์ผ๋ก ๋์๊ฐ ๋ณด๊ฒ ์ต๋๋ค. ๋์ผํ YAML ํ์ผ์ ์์ฑํ๊ณ Helm์ด ๊ฐ์ ๋์ฒดํ ์๋ฆฌ ํ์์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค. ์ฆ, ๋๊ท๋ชจ ๋น๊ณ ์ธํธ ๋์ ํ์ํ ๊ฐ์ด ์ ์์ ๋์ฒด๋๋ ํ ํ๋ฆฟ ์ธํธ๊ฐ ์์ต๋๋ค.
์ ์งธ, ํฌ๋ฆ - ๋ฐฐํฌ ๋ง์คํฐ. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์น, ๋กค๋ฐฑ ๋ฐ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ณด๊ฒ ์ต๋๋ค.
Helm์ ์ฌ์ฉํ์ฌ ์์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ
๊ณต์ ์ง์นจ์ ๋ฐ๋ผ ์ปดํจํฐ์ Helm ํด๋ผ์ด์ธํธ๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค.
- ํ ํ๋ฆฟ์ด ์๋ ํด๋๋ฅผ ๋ํ๋ ๋๋ค.
- ์์นด์ด๋ธ๋ฅผ .tar๋ก ์์ถํ๊ณ ์ด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
- ํ ํ๋ฆฟ์ ์๊ฒฉ ์ ์ฅ์์ ๋ฃ๊ณ Helm ํด๋ผ์ด์ธํธ์ ์ ์ฅ์์ ๋ํ ๋งํฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ํ value.yaml ๊ฐ์ด ์๋ ํ์ผ์ด ํ์ํฉ๋๋ค. ๊ฑฐ๊ธฐ์ ๋ฐ์ดํฐ๊ฐ ํ ํ๋ฆฟ์ ์ฝ์ ๋ฉ๋๋ค. ๊ทธ๊ฒ๋ ๋ง๋ค์ด ๋ด ์๋ค.
Helm์ ๋ ๋ฒ์งธ ๋ฒ์ ์๋ Tiller๋ผ๋ ์ถ๊ฐ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ด ์์ต๋๋ค. Kubernetes ์ธ๋ถ์ ๋งค๋ฌ๋ ค Helm ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฌ๊ณ , ํธ์ถ๋๋ฉด ํ์ํ ๊ฐ์ ํ
ํ๋ฆฟ์ ๋์ฒดํ์ฌ Kubernetes๋ก ๋ณด๋
๋๋ค.
Helm 3์ ๋ ๊ฐ๋จํฉ๋๋ค. ์๋ฒ์์ ํ
ํ๋ฆฟ์ ์ฒ๋ฆฌํ๋ ๋์ ์ด์ ์ ๋ณด๊ฐ Helm ํด๋ผ์ด์ธํธ ์ธก์์ ์์ ํ ์ฒ๋ฆฌ๋์ด Kubernetes API๋ก ์ง์ ์ ์ก๋ฉ๋๋ค. ์ด๋ฌํ ๋จ์ํ๋ก ์ธํด ํด๋ฌ์คํฐ ๋ณด์์ด ํฅ์๋๊ณ ๋กค์์ ๊ณํ์ด ์ฌ์์ง๋๋ค.
์ด๋ป๊ฒ ์๋ํ๋์?
๋ช
๋ น์ ์คํํ์ญ์์ค. helm install
. ์ ํ๋ฆฌ์ผ์ด์
๋ฆด๋ฆฌ์ค์ ์ด๋ฆ์ ํ์ํ๊ณ value.yaml์ ๋ํ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค. ๋ง์ง๋ง์๋ ์ฐจํธ๊ฐ ์๋ ์ ์ฅ์์ ์ฐจํธ ์ด๋ฆ์ ํ์ํฉ๋๋ค. ์ด ์์์๋ ๊ฐ๊ฐ "lmru"์ "bestchart"์
๋๋ค.
helm install --name bestapp --values values.yaml lmru/bestchart
๋ช
๋ น์ ํ ๋ฒ๋ง ์คํ๋ ์ ์์ผ๋ฉฐ ๋์ ๋ค์ ์คํ๋ ๋ install
์ฌ์ฉํ ํ์๊ฐ upgrade
. ๋จ์ํ๋ฅผ ์ํด ๋ ๊ฐ์ ๋ช
๋ น ๋์ ๋ค์ ๋ช
๋ น์ ์คํํ ์ ์์ต๋๋ค. upgrade
์ถ๊ฐ ํค ํฌํจ --install
. ์ฒ์ ์คํ๋๋ฉด Helm์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ค์นํ๋ผ๋ ๋ช
๋ น์ ๋ณด๋ด๊ณ ๋์ค์ ์
๋ฐ์ดํธํ ๊ฒ์
๋๋ค.
helm upgrade --install bestapp --values values.yaml lmru/bestchart
Helm์ ์ฌ์ฉํ์ฌ ์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ๋์ ํจ์
์ด์ผ๊ธฐ์ ์ด ์์ ์์ ์ ๋ ์ฒญ์ค๊ณผ ํจ๊ป ๋ฐฑ๋ง์ฅ์๊ฐ ๋๊ณ ์ถ์ ์ฌ๋์ ์ฐ๊ธฐํ๊ณ ์์ผ๋ฉฐ Helm์ด ์ฑ ๋ฒ์ ์ ์
๋ฐ์ดํธํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์์๋ด๊ณ ์์ต๋๋ค.
Helm์ ์๋ ๋ฐฉ์์ ๋ฐฐ์ธ ๋ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ ค๊ณ ํ ๋ ์ด์ํ ๋์์ ๋๋์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ณ , Docker ๋ ์ง์คํธ๋ฆฌ์ ์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๊ณ , ๋ฐฐํฌ ๋ช ๋ น์ ๋ณด๋์ง๋ง ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์์ต๋๋ค. ๋ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์์ ํ ์ฑ๊ณตํ์ง ๋ชปํ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ๊ฐ์ ๋ ์์ธํ ์ฐ๊ตฌํ๋ฉด ๊ธฐ๊ธฐ์ ๋ด๋ถ ๊ตฌ์กฐ์ ์ด๊ฒ์ด ๋ช ํํ์ง ์์ ๋์์ ์ด์ ๋ฅผ ์ดํดํ๊ธฐ ์์ํฉ๋๋ค.
๋ฐฉ๋ฒ 1. ๋ง์ง๋ง ์คํ ์ดํ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ์ง ๋ง์ธ์.
์๋ฌธ๋๋ก helm upgrade
, ๊ทธ๋ฌ๋ฉด ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ ๊ฒ์
๋๋ค. Helm์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์
๋ฐ์ดํธํ๊ธฐ ์ํด Kubernetes์ ๋ช
๋ น์ ๋ณด๋ผ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ ๊ฒ์
๋๋ค.
์ฌ๊ธฐ์ ์๋์๋ ์ต์ ํ๊ทธ๊ฐ ์์๋ก๋ง ํ์๋ฉ๋๋ค. ์ด ํ๊ทธ๋ฅผ ์ง์ ํ๋ฉด Kubernetes๋ imagePullPolicy ๋งค๊ฐ๋ณ์์ ๊ด๊ณ์์ด ๋งค๋ฒ docker ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ต์ ์ ํ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง ์์ผ๋ฉฐ ๋ถ์์ฉ์ ์ ๋ฐํฉ๋๋ค.
๋ฐฉ๋ฒ 2. ์ด๋ฏธ์ง์ LABEL ์ ๋ฐ์ดํธ
๊ฐ์ ๊ธ์ ์ ํ๋๋ก
๋ฐฉ๋ฒ 3: ํค ์ฌ์ฉ --force
์ค๋ช
์๋ฅผ ์ดํด๋ณด๊ณ ํ์ํ ํค๋ฅผ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค. ์ด์ ๊ฐ ๊ฐ์ฅ ์๋ฏธ๊ฐ ์์ต๋๋ค --force
. ๋ช
๋ฐฑํ ์ด๋ฆ์๋ ๋ถ๊ตฌํ๊ณ ๋์์ ์์๊ณผ ๋ค๋ฆ
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์
๋ฐ์ดํธ๋ฅผ ๊ฐ์ ํ๋ ๋์ ์ค์ ๋ชฉ์ ์ FAILED ์ํ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณต์ํ๋ ๊ฒ์
๋๋ค. ์ด ํค๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ช
๋ น์ ์์ฐจ์ ์ผ๋ก ์คํํด์ผ ํฉ๋๋ค. helm delete && helm install --replace
. ๋์ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค --force
, ์ด๋ฌํ ๋ช
๋ น์ ์์ฐจ์ ์คํ์ ์๋ํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฐฉ๋ฒ 4. Kubernetes์์ ์ง์ ๋ ์ด๋ธ ๋ณ๊ฒฝ
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์์ ์ง์ ๋ ์ด๋ธ ์
๋ฐ์ดํธ kubectl edit
- ๋์ ์๊ฐ. ์ด ์์
์ ์ํํ๋ฉด ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์๋ ๋ฐฐํฌ๋ฅผ ์ํด ์ ์ก๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ์ ๋ณด ๋ถ์ผ์น๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฐฐํฌ ์ค Helm์ ๋์์ ํด๋น ๋ฒ์ ๊ณผ ๋ค๋ฆ
๋๋ค. Helm 2๋ ์๋ฌด ์์
๋ ์ํํ์ง ์์ผ๋ฉฐ Helm 3์ ์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํฉ๋๋ค. ๊ทธ ์ด์ ๋ฅผ ์ดํดํ๋ ค๋ฉด Helm์ ์๋ ๋ฐฉ์์ ์ดํดํด์ผ ํฉ๋๋ค.
ํฌ๋ฆ์ ์ด๋ป๊ฒ ์๋ํ๋์?
๋ง์ง๋ง ๋ฆด๋ฆฌ์ค ์ดํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ๊ธฐ ์ํด Helm์ ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ
- ์๋ก์ด value.yaml ๋ฐ ํ์ฌ ์ฐจํธ
- Helm์ ๋ด๋ถ ๋ฆด๋ฆฌ์ค ์ ๋ณด์ ๋๋ค.
๋ ๊ถ๊ธํ ์ : Helm์ ๋ฆด๋ฆฌ์ค์ ๋ํ ๋ด๋ถ ์ ๋ณด๋ฅผ ์ด๋์ ์ ์ฅํฉ๋๊น?๋ช
๋ น์ ์คํํ์ฌ helm history
, Helm์ ์ฌ์ฉํ์ฌ ์ค์น๋ ๋ฒ์ ์ ๋ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค.
์ ์ก๋ ํ
ํ๋ฆฟ ๋ฐ ๊ฐ์ ๋ํ ์์ธํ ์ ๋ณด๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์์ฒญํ ์ ์์ต๋๋ค:
Helm์ ๋ ๋ฒ์งธ ๋ฒ์ ์์ ์ด ์ ๋ณด๋ "OWNER=TILLER" ๋ ์ด๋ธ๋ก ํ์๋ ConfigMap์ Tiller๊ฐ ์คํ ์ค์ธ ๋์ผํ ๋ค์์คํ์ด์ค(๊ธฐ๋ณธ์ ์ผ๋ก kube-system)์ ์์ต๋๋ค.
Helm์ ์ธ ๋ฒ์งธ ๋ฒ์ ์ด ๋ฑ์ฅํ์ ๋ ์ ๋ณด๋ ๋น๋ฐ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋๊ณ ์๋ ๋์ผํ ๋ค์์คํ์ด์ค๋ก ์ด๋๋์์ต๋๋ค. ๋๋ถ์ ๋์ผํ ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ๊ฐ์ง ์๋ก ๋ค๋ฅธ ๋ค์์คํ์ด์ค์์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋์์ ์คํํ ์ ์๊ฒ ๋์์ต๋๋ค. ๋ ๋ฒ์งธ ๋ฒ์ ์์๋ ๋ค์์คํ์ด์ค๊ฐ ๊ฒฉ๋ฆฌ๋์ด ์์ง๋ง ์๋ก ์ํฅ์ ๋ฏธ์น ์ ์๋ค๋ ์ ์ด ์ฌ๊ฐํ ๋ฌธ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ Helm์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ์ง ์ดํดํ๋ ค๊ณ ํ ๋ ํ์ฌ ์ ๊ณต๋๋ ์ ๋ณด์ ConfigMap์ ์๋ ๋ฆด๋ฆฌ์ค์ ๋ํ ๋ด๋ถ ์ ๋ณด๋ผ๋ ๋ ๊ฐ์ง ์ ๋ณด ์์ค๋ง ์ฌ์ฉํฉ๋๋ค.
์ธ ๋ฒ์งธ Helm์ XNUMX๋ฐฉํฅ ๋ณํฉ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค. ํด๋น ์ ๋ณด ์ธ์๋ ํ์ฌ Kubernetes์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
๋ ๊ณ ๋ คํฉ๋๋ค.
์ด๋ฌํ ์ด์ ๋ก ์ด์ ๋ฒ์ ์ Helm์ ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด๋ฅผ ๊ณ ๋ คํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฌด ์์
๋ ์ํํ์ง ์์ง๋ง Helm 3์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ ํ๊ณ ๋ฐฐํฌ๋ฅผ ์ํด ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด๋
๋๋ค.
๋ฐฉ๋ฒ 5. --recreate-pods ์ค์์น ์ฌ์ฉ
์ด์ ๋ก --recreate-pods
ํค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ๋ฌ์ฑํ๋ ค๊ณ ๊ณํํ ๊ฒ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค. --force
. ์ปจํ
์ด๋๊ฐ ๋ค์ ์์๋๊ณ ์ต์ ํ๊ทธ์ ๋ํ imagePullPolicy: Always ์ ์ฑ
(์์ ๊ฐ์ฃผ์์ ์์ธํ ์ค๋ช
)์ ๋ฐ๋ผ Kubernetes๋ ์ด๋ฏธ์ง์ ์ ๋ฒ์ ์ ๋ค์ด๋ก๋ํ๊ณ ์คํํฉ๋๋ค. ์ด๋ ์ต์ ์ ๋ฐฉ๋ฒ์ผ๋ก ์ํ๋์ง๋ ์์ต๋๋ค. ๋ฐฐํฌ์ StrategyType์ ๊ณ ๋ คํ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๊ฐ ๊ฐ์๊ธฐ ๊บผ์ง๊ณ ์ ์ธ์คํด์ค๊ฐ ์์๋๊ธฐ ์์ํฉ๋๋ค. ๋ค์ ์์ํ๋ ๋์ ์์คํ
์ ์๋ํ์ง ์์ผ๋ฉฐ ์ฌ์ฉ์๋ ์ด๋ ค์์ ๊ฒช๊ฒ ๋ฉ๋๋ค.
Kubernetes ์์ฒด์์๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ์ค๋ซ๋์ ์กด์ฌํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์คํ 4๋
์ฐจ
Helm์ ๋จ์ํ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๊ณ ๊ทผ์ฒ์์ ์ ์ปจํ ์ด๋๋ฅผ ์์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ ์ค์ง ์๊ฐ์ด ๋ฐ์ํ์ง ์๋๋ก ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ ์๊ตฌ์๋ง ํ์ํ๋ฉฐ ๋ฌด๋ ํ๊ฒฝ์์๋ง ์ํํ ์ ์์ต๋๋ค.
Helm์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
Helm์ผ๋ก ์ ์ก๋๋ ๊ฐ์ ๋ณ๊ฒฝํ๊ฒ ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง ํ๊ทธ ๋์ ์ ๋์ฒด๋๋ ๊ฐ์ ๋๋ค. ๋น์์ฐ์ ์ธ ํ๊ฒฝ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ต์ ์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ ๋ณด๋ ์ฃผ์์ผ๋ก Kubernetes ์์ฒด์๋ ์ธ๋ชจ๊ฐ ์์ผ๋ฉฐ Helm์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ค๋ ์ ํธ๋ก ์์ฉํฉ๋๋ค. ์ฃผ์ ๊ฐ ์ ๋ ฅ ์ต์ :
- ์์์ ๊ฐ ํ์ค ๊ธฐ๋ฅ ์ฌ์ฉ -
{{ randAlphaNum 6 }}
.
์ฃผ์ ์ฌํญ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ณ์๊ฐ ํฌํจ๋ ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ ๋๋ง๋ค ์ฃผ์ ๊ฐ์ ๊ณ ์ ํ๋ฉฐ Helm์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ฒ์ ์ ๋ณ๊ฒฝํ์ง ์์๋๋ผ๋ ํญ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ๊ฐ๋ ์ค์ง ์๊ฐ์ด ์์ผ๋ฏ๋ก ์ด๋ ์ค์ํ์ง ์์ง๋ง ์ฌ์ ํ ๋ถ์พํฉ๋๋ค. - ํ์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ๋ ์ง์ ์๊ฐ -
{{ .Release.Date }}
.
๋ณํ์ ์๊ตฌ์ ์ผ๋ก ๊ณ ์ ํ ๋ณ์๊ฐ ์๋ ๋ฌด์์ ๊ฐ๊ณผ ์ ์ฌํฉ๋๋ค. - ๋ณด๋ค ์ ํํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฒดํฌ์ฌ. ์ด๋ ์ด๋ฏธ์ง์ SHA ๋๋ git์ ๋ง์ง๋ง ์ปค๋ฐ์ SHA์
๋๋ค.
{{ .Values.sha }}
.
์๋ฅผ ๋ค์ด Jenkins์์ ํธ์ถ ์ธก์ Helm ํด๋ผ์ด์ธํธ๋ก ๊ณ์ฐํ์ฌ ์ ์กํด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณ๊ฒฝ๋๋ฉด ์ฒดํฌ์ฌ๋ ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ฐ๋ผ์ Helm์ ํ์ํ ๋๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ฐ๋ฆฌ์ ์๋๋ฅผ ์์ฝํด๋ณด์
- Helm์ ์ต์ํ์ ์นจ์ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋ฏ๋ก Docker ๋ ์ง์คํธ๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฏธ์ง ์์ค์์ ๋ณ๊ฒฝํด๋ ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋ช ๋ น์ด ์คํ๋ ํ์๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ต๋๋ค.
- ์ด์
--force
๋ฌธ์ ๊ฐ ์๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณต์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ๊ฐ์ ์ ๋ฐ์ดํธ์ ๊ด๋ จ์ด ์์ต๋๋ค. - ์ด์
--recreate-pods
์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ๋ก ์ ๋ฐ์ดํธํ์ง๋ง ํ๊ดด์ ์ธ ๋ฐฉ์์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ๊ฐ์๊ธฐ ๊บผ์ง๋๋ค. ์ฌ์ฉ์๋ ์ด๋ก ์ธํด ์ด๋ ค์์ ๊ฒช๊ฒ ๋๋ฏ๋ก ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ด ์์ ์ ์ํํ๋ฉด ์ ๋ฉ๋๋ค. - ๋ช
๋ น์ ์ฌ์ฉํ์ฌ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ง์ ๋ณ๊ฒฝํฉ๋๋ค.
kubectl edit
ํ์ง ๋ง์ธ์: ์ผ๊ด์ฑ์ ๊นจ๋จ๋ฆด ๊ฒ์ด๋ฉฐ Helm ๋ฒ์ ์ ๋ฐ๋ผ ๋์์ด ๋ฌ๋ผ์ง ๊ฒ์ ๋๋ค. - Helm์ ์ ๋ฒ์ ์ด ์ถ์๋๋ฉด์ ๋ง์ ๋์์ค๊ฐ ๋ํ๋ฌ์ต๋๋ค. Helm ์ ์ฅ์์ ๋ฌธ์ ๋ ๋ช ํํ ์ธ์ด๋ก ์ค๋ช ๋์ด ์ธ๋ถ ์ฌํญ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ฐจํธ์ ํธ์ง ๊ฐ๋ฅํ ์ฃผ์์ ์ถ๊ฐํ๋ฉด ์ฐจํธ๊ฐ ๋์ฑ ์ ์ฐํด์ง๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋ ์ค์ง ์๊ฐ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ์ํ ์ ์์ต๋๋ค.
์ถ์ ๋ชจ๋ ์์ญ์ ์ ์ฉ๋๋ "์ธ๊ณ ํํ" ์ฌ์: ์ฌ์ฉ ํ๊ฐ ์๋ ์ฌ์ฉ ์ ์ ์ง์นจ์ ์ฝ์ผ์ญ์์ค. ์์ ํ ์ ๋ณด๊ฐ ์์ด์ผ๋ง ์ ๋ขฐํ ์ ์๋ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ฌ์ฉ์๋ฅผ ํ๋ณตํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๊ธฐํ ๊ด๋ จ ๋งํฌ:
์์๊ฐ๊ธฐ ํค 3 ํฌ๋ฆ ๊ณต์ ํํ์ด์ง GitHub์ Helm ์ ์ฅ์ 25๊ฐ์ง ์ ์ฉํ ์ฟ ๋ฒ๋คํฐ์ค ๋๊ตฌ: ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ
์ด ๋ณด๊ณ ์๋ ์์ ์ฒ์ ๋ฐํ๋์์ต๋๋ค.
์ถ์ฒ : habr.com