๋ด๊ฐ ์๋ ํ helm install
ํ์ฌ --version
ํ๋๊ทธ๋ฅผ ์ง์ ํ์ฌ ์ค์นํ ์ฐจํธ ๋ฒ์ ์ ์ง์ ํ๋ ๊ฒ๋ง ์ง์ํฉ๋๋ค.
Chart.yaml์ 'appVersion' ํ๋๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋์ด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก Chart์ ํน์ ๋ฒ์ (๋๋ ๋ฒ์ ์ธํธ)์ ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ๊ด๋ฆฌ ์ง์์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ appVersion
ํ๋๋ฅผ ์๋ชป ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๋์ ์ด์ ๋ฒ์ ๊ณผ ์ญํธํ๋๋๋ก ์ฐจํธ๋ฅผ ์ง์์ ์ผ๋ก ์์ฑํด์ผ ํฉ๋๊น, ์๋๋ฉด ์ฌ์ฉ์๊ฐ ํน์ ๋ฒ์ ์ ์ํ ๊ฒฝ์ฐ helm install
์คํํ ๋ ์ง์ ํ ์ฐจํธ ๋ฒ์ ์ ์ด๋ป๊ฒ ์ ์ถํ ์ ์์ต๋๊น(์ด๋ ํจ์ฌ ๋ ๋ณต์กํด์ง๋๋ค) ์ฌ์ฉ์๊ฐ --set image.tag
์ ๊ฐ์ ๊ฒ์ผ๋ก ๋ฐฐํฌ๋ ๋ฒ์ ์ ๋ณ๊ฒฝํ ์๋ ์๋ค๊ณ ์๊ฐํ ๋ ์ข
์ข
์ ํ๋ฆฌ์ผ์ด์
์ ๋ฒ์ ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
๋๋ ๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช์ณค๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐจํธ๋ฅผ ํจํค์งํ ๋ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ง์ ํ๊ณ ์ถ์ง๋ง ๋๋ฒ๊น ์ ์ํด ์ฑ์์ ๋ค๋ฅธ ํ๊ทธ๋ก ์ค์น๋ฅผ ํ๊ณ ์ถ์์ต๋๋ค.
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํ๋ ๊ฒ์ด ์์ ํ๋ค๋ฉด /close
.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
https://github.com/kubernetes/charts/pull/5919 ์์ ์ ๊ธฐ๋ ๋๋ก ๋ค์ ๊ฐ์ ธ์ค๊ธฐ
๋ด ์ต๊ทผ ๋๊ธ์ ์ผ๋ถ ๋ณต์ฌ:
์ฐ๋ฆฌ๋ ์ฐจํธ์ ๋ถ ๋ฒ์ ์ ๋ถ ์์ฉ ํ๋ก๊ทธ๋จ ๋ฒ์ ๊ณผ ์ ๋ ฌ๋๋๋ก ํน๋ณํ ์ ํํฉ๋๋ค(ํจ์น ๋ฒ์ ๋ฒํธ๋ ์ฐจ์ด๊ฐ ์์ ์ ์๊ณ ์ฐจ์ด๊ฐ ๋ ์ ์์ง๋ง).
์ด๋ cert-manager์ ์ ๋ฆด๋ฆฌ์ค์ ์ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์๊ณ Helm ์ฐจํธ์ ์ด์ ๋ํ ์ง์์ ์ถ๊ฐํ๋ฉด ํ๋๊ทธ๋ฅผ ์ง์ํ์ง ์๋ cert-manager์ ์ด์ ๋ฆด๋ฆฌ์ค์์ ํธํ์ฑ์ด ๊นจ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ธ IMO์ Helm ์ฐจํธ ๋ฒ์ ๊ด๋ฆฌ์ ๊ด๋ จ๋ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ์ง๋ฌธ์ด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ์ด์ ๋ํ ์ข์ ์ด์ผ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค.
appVersion์ ์ฐจํธ ๋ฒ์ ๊ณผ ์ ๋ ฌํ๋ ๊ฒ์ด ๊ถ์ฅ๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์๋ Helm ์ฐจํธ ๋ฒ์ 0.3.x๋ฅผ cert-manager 0.3.x์ ํจ๊ป ์ฌ์ฉํ ์ ์๊ณ ์ฐจํธ ๋ฒ์ 0.4.x๋ฅผ cert์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๋๋ค. -๊ด๋ฆฌ์ 0.4.x. ํธํ์ฑ์ ๋ถ ๋ฒ์ ๋ด์์ ์ ์๋ฉ๋๋ค.
/remove-lifecycle ๋ถ์ค
๋๋ ์ด๊ฒ์ ํ ๋ก ์ ์ํด ๋ค์ ๊ฐ์ ธ์ค๊ณ ์ถ์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๋ชจ๋ ๊ฒ์ด ์ผ๋ถ ๊ตฌ์ฑ ์์์์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง ํ๊ทธ์ผ ๋ ๋ด๋ถ ์ฑ์ฉ ์ฐจํธ ๋ฒ์ ๊ด๋ฆฌ์ ์ฐฌ์ฑํ๋ ๊ฒ์ ๊ทธ๋ค์ง ๋งค๋ ฅ์ ์ด์ง ์์ต๋๋ค. ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ทธ๋ ์ด๋ํ ๋ appVersion ํ๋๋ ์ด ์ ๋ณด์ ์ ํฉํ ์์น์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์์์ ์ธ๊ธํ ๋ด ์๋ ์ ์ ๋ณต์ฌ:
helm ์ฐจํธ ๋ฐฐํฌ๋ฅผ ์ํ ํ์ฌ ์ํฌํ๋ก์๋ helm upgrade CLI ๋ช ๋ น์ ํธ์ถํ๋ ๊ฐ๋ฅํ ์์ ์ด ํฌํจ๋๋ฉฐ ๋์ผํ ์ฐจํธ ๋ฒ์ ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ ๋ appVersion์ ์ค์ ํ๋ ํ๋๊ทธ๋ฅผ ์ ๋ฌํ ์ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
appVersion์ด ๋ฆด๋ฆฌ์ค๊ฐ ์๋ ์ฐจํธ์ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ์ ์ผ๋ก ์ฝ๊ฐ ์ด์ํ ์ ์์ง๋ง ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ผ๋ถ ์ปจํ ์ด๋์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์์ผ๋ฉฐ ์ํฌํ๋ก์ ์ฐจํธ ๋ฒ์ ๋ฐ/๋๋ ์ฐจํธ ์ ์ฅ์๊ฐ ํตํฉ๋์ง ์์์ต๋๋ค. ์์ง. ์ด๊ฒ์ ๋ฏธ๋์ ๋ณ๊ฒฝ๋ ์ ์์ง๋ง ํ์ฌ๋ก์๋ ์ด ํ๋๊ฐ ์์ ํ ์ ๋ณด ์ ๊ณต์ฉ์ด๋ฏ๋ก ์ค์น ๋ฐ ์ ๊ทธ๋ ์ด๋ ์ --app-version ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์ฒด ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ๋ ์ฑ ์์ฒด๋ ์ฑ์ ๋ฐฐํฌํ๋ ์ฐจํธ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ง์์ ์ธ ๋ฐฐํฌ ๋ช
๋ น์ helm upgrade
์ด๋ฉฐ --set imageTag=<new_version>
(์ปจํ
์ด๋ ๋ฒ์ ์ ์ค์ ํ๊ธฐ ์ํด ์ฐจํธ์ ๋ค๋ฅธ ๊ณณ์์ ๋ถ๋ช
ํ ์ฌ์ฉ๋จ)๋ฅผ --app-version์ผ๋ก ๋ฐ๊พธ๋ฉด ๋ค์์ด ์ ๊ณต๋ฉ๋๋ค. ๋ฐฐํฌ๋ ์ฐจํธ ๋ฒ์ ๊ณผ ํจ๊ป ๋ฐฐํฌ๋ ์ฝ๋ ๋ฒ์ ์ ๋ณด๋ ค๋ฉด helm ls
๋ ๋ค๋ฅธ ์๊ฐ์ ์ง์ ์ ์ฌ์ฉํ์ธ์.
์ด๋ฅผ ๋ ์ ๋ณด์ด๊ฒ ํ๊ธฐ ์ํด ์ค์น/์
๊ทธ๋ ์ด๋ ์ ์ ๋ฌ๋ imageTag๋ก ์ค์ ๋๋ imageTag
์ ๋ฉํ๋ฐ์ดํฐ ํ๊ทธ ์ค์ ์ ๋ํด ํ์คํํ์ต๋๋ค. ์ด๋ฅผ ํตํด K8s ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ imageTag๊ฐ ํ์๋ Graphana ๋์๋ณด๋๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์์ง๋ง ๋ช
๋ น์ค์ ๋ ๋ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
๊ฐ์ฌ ํด์
์ด์ ๋ํ ๋ชจ๋ ์
๋ฐ์ดํธ. @Eraac์ PR์ด ์์ฒญํ helm upgrade --set imageTag=<imagetag>
๋ ์คํํ์ง๋ง helm ls
์ถ๋ ฅ์ ๋์ด๋ APP VERSION์ ์
๋ฐ์ดํธํ์ง ์์ต๋๋ค. --set app-version
๋๋ --set version
๋ฅผ ์คํํ ์ ์์ผ๋ฉด helm ls
๊ฐ ๋ฐฐํฌ๋ ๋ฒ์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ํ๋๋ก helm upgrade
๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
Aaaaany ์๊ฐ์ด ๊ณง ์ฌ๋์ค๋ฌ์ธ ๊ฒ์ ๋๋ค!
๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค
๋ํ ๊ณตํต ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ฏ๋ก ์ค์น ์ ์ฑ ๋ฒ์ ์ ์ค์ ํ๋ ๊ธฐ๋ฅ์ ์ํฉ๋๋ค.
+1
+1
๋งค์ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค
๊ฐ์ ๊ฒ์ ์๊ตฌ
์คํธ์ +1๋ก ๋ง์์ฃผ์ธ์. ์ด๋ฏธ PR(https://github.com/helm/helm/pull/4961)์ด ์๊ณ ์ฌ๋๋ค์ด ์ ์์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค. ๋ง์ง๋ง ๋ต์ฅ์ 2์ผ ์ ์ด์๋ค.
์๋ ํ์ธ์ @filipre
์ด๋ฏธ PR(#4961)์ด ์๊ณ ์ฌ๋๋ค์ด ์ ์์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค.
๊ทธ PR์ ๋ฐ๋ฅด๋ฉด, ์ด๊ฒ์ ์ฌ๊ธฐ๋ก ์ฎ๊ฒจ์ก์ต๋๋ค:
https://github.com/helm/helm/pull/5492
์ด๊ฒ์ #4961์ ๋ํ ์ต์ PR์ด๋ฉฐ ๋ฆฌ๋ทฐ๊ฐ ๋ณํฉ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค ...
@filipre ๋ง์ํด ์ฃผ ์๊ฒ ์ต๋๊น? PR์ ์ด๋ป๊ฒ ๋ฉ๋๊น? PR์ด ํ๋ฌ ๋ฐ ๋์ ์์ง์ด์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค. ์ฑ ๋ฒ์ 0.6.0์ ๊ณ ์ ํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๋๋ฐ ์ฐจํธ ๋ฒ์ ์ ์ฑ ๋ฒ์ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๋์ํฉ๋๋ค. ๋ํ ์ด๊ฒ์ด ๋งค์ฐ ์ ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
https://github.com/helm/helm/pull/5492#issuecomment -509662190์ ์ฐธ์กฐ
๋ง์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฌ์ฉํ ๊ณํ์ธ Helm ์ฐจํธ๋ฅผ ์์ฑํ๋ ๋์ ์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ ๋ ์ง๊ธ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ญ์์ค. ๊ฐ๋จํ ๋ฐฉ๋ฒ(์ฆ, ์ค์น ์ ์ฑ ๋ฒ์ ์ ์ค์ ํ๋ ํ๋๊ทธ ์ฌ์ฉ)์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ง์ ์ด ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ํ์ฌ ์๋ํด์ผ ํ๋ ๋์์ ์๊ฐํด ๋์ต๋๋ค. ์ ๋ง ๋งค์ฐ ๊ฐ๋จ์ด๋ค - ๋ฐ๋ก ์๋ helm fetch
๋จผ์ ๋ค์์ ์์ถ์ ํ๋ ์ต์
๊ณผ์ helm package
์ --app-version
์กด์ฌ๋ฅผ ์ํ ํ๋๊ทธ, ๊ทธ ์ง์ญ์ ์ฐจํธ๋ฅผ ์ค์น๋ฅผ ์งํํฉ๋๋ค.
์ด์์ ์ด์ง๋ ์์ง๋ง helm list
์ ์ต์ข
๊ฒฐ๊ณผ๋ ์ ํํ๋ฉฐ CI ์๋ฒ์์ ์ด ์์
์ ์ํํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. helm install
๋ฐ helm upgrade
--app-version
๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
#5492์์ ๋
ผ์ํ ๋ด์ฉ์ ์์ฝํ๋ฉด helm package
๋ฐ helm install
์ ๋
ผ๋ฆฌ๋ฅผ ๋ํํ๋ ๋ช
๋ น์ด ์ด ๋ฌธ์ ์์ ์๋ ์ค๋ช
๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ฆ, ๋ค์์ ์คํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
$ helm package myapp --app-version 1.0.0
$ helm install myapp-1.0.0.tgz
(์ต๊ทผ์ ๋ซ์ PR์ ์ฃผ์์ ์ฌ๊ธฐ๋ก ์ด๋ - Nirvana์์ ๋๋์ง ์๋๋ก)
์ฌ๊ธฐ์ ๋ด 2 ์ผํธ๊ฐ ์์ต๋๋ค.
appVersion Y
ํ์ฌ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ chart version X
๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
helm ์ฐจํธ๋ appVersion Y
์๋น์ค๋ฅผ ํธ์คํ
ํ๋ ๋ฐ ์ฌ์ฉ๋๋ chart version X
์ Kubernetes ๋ด๋ถ ์ธํ๋ผ๋ฅผ ์ค๋ช
ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ด๊ธฐ ๊ฐ๋ฐ ์ค์ X
๋ฐ Y
๋ชจ๋ ์ ๊ธฐ์ ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์์ ์์ X
๋ ๋ค์ ์์ ์ ์ด ๋ ๊ฒ์ด๋ฉฐ Y
๋ ๊ณ์ ๋ณ๊ฒฝ๋ ๊ฒ์
๋๋ค( Y
๊ฐ ์ธํ๋ผ์ ๋ํ ๋ช ๊ฐ์ง ์๋ก์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ์๋ ํ ํจ์ฌ ๋ ์์ฃผ ๋ฐ์ํฉ๋๋ค. Y
์ ๊ฐ๋ฐ ์ฃผ๊ธฐ์์).
์ด ํฐ์ผ์์ ์ ์๋ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด X
๋ฒ์ ์์ ์์ ์ ์ธ ์กฐํ์ ์ฐจํธ ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ appVersion Y
, Y+1
, Y+N
๋ฑ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ํ๋๊ทธ๊ฐ helm ์ค์น ๋๋ ์
๊ทธ๋ ์ด๋ ์ค์ ์ฌ์ ์๋๋ ๊ฒ์ ํ์ฉํ์ง ์๊ณ ๋์ ์๋ฅผ ๋ค์ด ํจํค์ง์์๋ง ํจ๊ณผ์ ์ผ๋ก X
๋ฐ Y
ํจ๊ป ๋ฌถ์ด ํญ์ ์๋ก์ด X+1
๋ง๋ค๋๋ก ํฉ๋๋ค Y+1
. ์ด๊ฒ์ ๋์๊ฒ ๋ถํ์ํ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ์๋ก์ด appVersion
์ฐธ์กฐํ๋ ๊ฒ ์ธ์๋ ์ฌ์ค์ ๋ณ๊ฒฝ๋์ง ์์ ์๋ง์ helm ํจํค์ง๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ด ๊ด์ ์์ ๋ณผ ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ๊ณผ ํด๋น ์ ํ๋ฆฌ์ผ์ด์
์ ํธ์คํ
ํ๋ ์ธํ๋ผ ๋ฒ์ ์ ๊ด๊ณ๊ฐ ์์ง๋ง ์ฌ์ ํ ๋
๋ฆฝ์ ์ผ๋ก ๋ฒ์ ์ด ์ง์ ๋์ด์ผ ํ๊ฑฐ๋ ์ฌ์ ํ ์์ ์ ์์ต๋๋ค. ์ด๋ป๊ฒ ํ๋๋๋ ๊ฐ ๊ฐ๋ฐํ์ ๋งก๊ฒจ์ผ ํ๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ํ์คํ ํจ๊ณผ๊ฐ ์์ง๋ง AppVersion
๋ณ๊ฒฝ๋ ๋ถํ์ํ Helm ํจํค์ง๊ฐ ๋ง์ด ๋ฐ์ํฉ๋๋ค.
$ helm package myapp --app-version 1.0.0
$ helm install myapp-1.0.0.tgz
๋ค, ํ์ง๋ง ์์์ ์ธ๊ธํ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ฉด ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฑ ๋ฒ์ ์ด ์ค์ ๋์ง ์์ ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ(๋๋ 0.0.0 ๋๋ ๊ธฐํ)๋ก ์ฐจํธ๋ฅผ ํธ์ํ ๋ค์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ helm fetch
๋ฅผ ์ฌ์ฉํ๊ณ ์ฌ๋ฐ๋ฅธ ์ฑ ๋ฒ์ ์ผ๋ก ํจํค์งํ ๋ค์ ๋ก์ปฌ .tgz
ํ์ผ์ ๋ง๋ค๊ณ ํด๋น ์ฐจํธ๋ฅผ ํธ์ํ์ง ๋ง์ญ์์ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ๊นจ๋ํ๊ฒ ์ ์ง๋๊ณ ์ค์ ์ฐจํธ ๋ณ๊ฒฝ ์ฌํญ๋ง ํ์๋ฉ๋๋ค.
์, ์๋ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฐฐํฌ ์ํฐํฉํธ๋ฅผ ์ง์ ์ฌ์ฉํ ์ ์์ง๋ง(์: Helm ์ ์ฅ์์์ ์ง์ ์ค์นํ์ฌ) ํญ์ ์ํฐํฉํธ๋ฅผ ๋ณ๊ฒฝํ๋ ์ถ๊ฐ ๋จ๊ณ๋ฅผ ํตํด ๋ณด๋ด์ผ ํฉ๋๋ค.
Charts.yaml
๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒฝ์ฐ ๋ฐฐํฌ ์ํฐํฉํธ๊ฐ ์์ด์ผ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.
์์ ๋ด ์๊ฐ์ _Summarising https://github.com/helm/helm/pull/5492#issuecomment -520029902_
์ปค๋ฎค๋ํฐ๊ฐ ํจํค์ง, ์ฐจํธ ๋ฐ ๋ฒ์ ์ ํด์ํ๋ ๋ฐฉ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. @BenjaminSchiborr , ์ด๊ฒ์ด ๋น์ ์๊ฒ ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฐจํธ - ๋ฆด๋ฆฌ์ค์ ์์ค ์ฝ๋์
๋๋ค. ์ฑ์ ์์ค ์ฝ๋์ ๊ฐ์ต๋๋ค. ํ
ํ๋ฆฟ, ์ฝ๋ ํ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํจํค์ง - ๋ฆด๋ฆฌ์ค์ ๋น๋, ์ํฐํฉํธ์
๋๋ค. ์์ค ์ฝ๋์์ ๋น๋๋ ๋ฐ์ด๋๋ฆฌ์ ๊ฐ์ต๋๋ค. ๊ณ ์ ํ๋ก๋์
๋ฒ์ (์ฐจํธ ๋ฒ์ ๋ฐ ์ฑ ๋ฒ์ ๋ชจ๋)์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ฆด๋ฆฌ์ค - ์ง์ ๋ ๊ตฌ์ฑ์ผ๋ก ๋ฐฐํฌ๋ ๋น๋์
๋๋ค.
Chart ์์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค . ์ด ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ์ง ์์ต๋๋ค!
์คํ
์ด์ง์ ์ฑ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ์ฐจํธ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ helm package
์ฌ์ฉํ์ฌ ๋ ๋ฒ์ ์ ๋ชจ๋ ์์ ํ์ฌ ์ฐจํธ์ ํจ๊ป ์ฑ์ ํจํค์งํด์ผ ํฉ๋๋ค. ๋ชจ๋ ๋จ๊ณ์์ ๋ฐฐํฌํ ์ ์๋ ํจํค์ง๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ํจํค์ง๋ฅผ ์๋ฅผ ๋ค์ด QA ๋จ๊ณ์ ์ค์นํ๊ณ helm install
์ฌ์ฉํ์ฌ UA ๋ฐ ํ๋ก๋์
์์ ์น๊ฒฉํฉ๋๋ค.
๋ชจ๋ ํจํค์ง ์งํฅ ์ํํธ์จ์ด๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋๋ค.
helm install
์๋ ์์ค๊ฐ ํ์ํ๋ฉฐ ์ค์นํด์ผ ํฉ๋๋ค. ์์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
๋ค ๋ฒ์งธ ์ ๊ทผ ๋ฐฉ์์ ์ฌ๊ธฐ์์ ๊ฒ์ ์์ฒ๋ผ ๋๊ปด์ง์ง ์์ต๋๊น? ์ด๊ฒ์ด ppl์ด ํจํค์ง์ ์ฐจํธ๋ฅผ ํผ๋ํ๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ฌธ์ ์ ๊ทผ์์ ๋๋ค.
์ผ์์๋ ๋ ๊ฐ์ง ์ข ๋ฅ์ ์ฑ์ด ์์ต๋๋ค.
Big/Medium - ๋ ๋์ ๋ด์ฑ ๋ฐ ํ์ง ๋ณด์ฆ์ ์ํด ์ธ๋ถ์ ์ด๊ณ ์ธ๋ถํ๋ ํ๋ฆ์ ์ค์ ํ๊ธฐ ์ํ ์๊ฐ, ๋ ๋ฐ ๋ฆฌ์์ค๊ฐ ์๋ ๊ณณ์
๋๋ค.
์๊ท๋ชจ - ๋ง์ดํฌ๋ก์๋น์ค, ์ ์๋๋ฌผ ํ๋ก์ ํธ, PoC, ์ ๋น์ฉ ํ๋ก์ ํธ, DevOps ์ง์์ด ์๊ฑฐ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค ํ
์คํธ๋ฅผ ์ฃผ๋ํ์ง ์๋ ํ๋ก์ ํธ.
์๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ํจํค์ง์ ๋ง๋ค๊ฑฐ๋ ์ฒ๋ฆฌํ ์๊ฐ์ด๋ ํ์๊ฐ ์์ต๋๋ค. ๋ช ๊ฐ์ง ํ ํ๋ฆฟ ํ์ผ์ ์์ฑํ๊ณ ํ๋์ ๋ช ๋ น์ผ๋ก ๋ฐฐํฌํ๊ณ ์ถ์ต๋๋ค !
์ด๊ฒ์ด helm install
๊ฐ helm package & helm install
์ ๊ฐ์ ์ฌ์ฉ์ ํ์ฉํ๋ ์ด์ ์
๋๋ค. ๊ทธ๋ฌ๋ --app-version
์ ๊ฐ์ ์์ ํ helm package
๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
helm install
๋ helm package & helm install
์ผ ์ ์์ง๋ง helm install
๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์ง์, ํ
์คํธ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก ๋ง๋ค๊ธฐ์ ์ง์ฅ์
๋๋ค.
helm install
๋จ์ํํฉ๋๋ค. helm
๋ํ ์ดํด๋ฅผ ๋จ์ํํ๊ธฐ ์ํด ์ฝ๋๋ฒ ์ด์ค, ํ
์คํธ ๋ฐ ์๊ฒฌ์ ๋จ์ํํ๊ธฐ ์ํด ์ ๊ณต๋๋ ํจํค์ง๋ง ํ์ฉํด์ผ ํฉ๋๋ค.
helm run
์๋ก์ด ๋ช
๋ น ๋์
: helm run
. ์๋ ํด์ผ ํ๋ ๋ช
๋ น์
๋๋ค. ์์ ์ฑ์ ์ด์์ ์
๋๋ค. ๋๋ ์คํ ๋ฐ ๋ํ์ผ ์๋ ์์ต๋๋ค.
helm package
์ helm install
๊ฒฐํฉํด์ผ ํ๋ฉฐ ์ด๋ฌํ ์ฌ์ฉ ์ฌ๋ก์์ ์๋ฏธ๊ฐ ์๋ ๋ช
๋ น์ ์ ์ธํ๊ณ ๋ ๋ช
๋ น์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ ๊ณตํด์ผ ํฉ๋๋ค.
helm package
go build
๊ฐ ํ๋ ๊ฒ์ฒ๋ผ helm package
๋ ๋น๋๋ฅผ ์์ฑํฉ๋๋ค. go run
์ฌ์ฉํ๋ฉด ๋น๋ ํ๋ก์ธ์ค ์์ด ์ฑ์ ์์ํ ์ ์์ผ๋ฏ๋ก helm run
๋ ์ฌ๊ธฐ์์ ํ์คํ ์ด๋ฆ์ฒ๋ผ ๋ณด์
๋๋ค.
๊ณ ๋ คํด์ผ ํ ์ถ๊ฐ ์ฌํญ:
upgrade --install
๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?--atomic
ํ์ฑํํด์ผ ํฉ๋๊น?@iorlas ,
๊ทํ์ ์๊ฒฌ์ด ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ธํ๋ผ ๋ฒ์ ๊ณผ ์ํํธ์จ์ด ๋ฒ์ ๋ชจ๋๋ฅผ ์์์ ์ผ๋ก ์ฐ๊ฒฐํ๋ ์ต์ข
ํจํค์ง๊ฐ ํ๋๋ง ์์ ์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ๋ฐ๋ฉด ๋ด ์ํํธ์จ์ด ๋ฒ์ ์ฉ ํจํค์ง์ ์ธํ๋ผ์ฉ ํจํค์ง๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ด๋ฅผ ๋ฌถ๊ณ ์ถ์ต๋๋ค. ๋ฆด๋ฆฌ์ค์์(์: ์ํํธ์จ์ด ๋ฒ์ ๋ฐ ์ธํ๋ผ ๋ฒ์ ์ ์ฐธ์กฐํ๋ ์ํ๋ ์ํ ๊ตฌ์ฑ์ ํตํด).
๋๋ ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ์ฑ ์ ์๋ ๊ฐ๋ฐ ๊ทธ๋ฃน์ด helm ํจํค์ง ์์ค ์ด์์์ ์ธํ๋ผ์ ์ํํธ์จ์ด ๋ฒ์ ์ ํจ๊ป ๋ฌถ์ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋๋ก ๋จ๊ฒจ๋ ์ ์๋ ํจํด์ผ๋ก ๊ฐ์ ๋์ด์ผ ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์ฌ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ ํญ์ ์๋ก์ด helm ํจํค์ง๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๋ฐ๋ฉด ์ํํธ์จ์ด ๋ฒ์ ๋ง ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๋ก ์ธํด ์ ์ฅ์์ ์์ฒ ๊ฐ์ ์ธ๋ชจ์๋ ํจํค์ง๊ฐ ์๊น๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก ์ด์ ์ด ์๋ค๋ฉด ๊ด์ฐฎ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ณด์ง ์๋๋ค.
@BenjaminSchiborr ์ข์์, ์กฐ๊ธ ๋ถํดํ๊ฒ ์ต๋๋ค.
X
๋ฒ์ ์ Chart(== ์ธํ๋ผ)๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
Y
๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ง ์ ์์ต๋๋ค.
helm
๊ฐ ํ์ฌ ์๋ํ๋ ๋ฐฉ์์ helm package
๋จ๊ณ์์ ์ธํ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ k8 ๋ค์์คํ์ด์ค์ ์ฐ๊ฒฐํ์ฌ Release๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ๊ณต์์ package(infra + app) + k8s = Release
์ ๋ง๋ก ์ํ๋ ๊ฒ์ ์ด ์ค๊ฐ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ 3๊ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ชจ๋ ํ ๋จ๊ณ์ธ ๋ฆด๋ฆฌ์ค๋ก ๋ฌถ๋ ๊ฒ์
๋๋ค. ๋ค์๊ณผ ๊ฐ์ด: infra + app + k8s = Release
. ๋ ๋ง์?
์ด๊ฒ์ด ํ๋ฉด์ ์ผ๋ก helm run
๊ฐ ํ๋ ์ผ์
๋๋ค. ํ๋ ์๋์์๋ ๋์ผํ ๊ฒ์
๋๋ค.
ํ์ง๋ง... Helm์ ์์ ์ ๋์น๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค . ์ด๋ค ๋๊ตฌ๋ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋๋ก ์ฌ์ฉํ ์ ์์ง๋ง ์ปค๋ฎค๋ํฐ์ ์ํฅ์ ๋ฏธ์น๊ณ "๊ธธ"์ ๋ง๋๋ ์์ด๋์ด๊ฐ ํญ์ ์์ผ๋ฏ๋ก ๋ง์๊ฒฝ์ ๋งฅ์ฃผ๋ฅผ ์์กฐํ ์ ์๋ ํ๋จธ๋ก ๋๋์ง ์์ต๋๋ค.
์ด๋ป๊ฒ ์ฌ์ฉ๋์ด์ผ ํ๋์ง ์ค๋ช ํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ๋ถ์ ๊ด์ ์์ ๊ทธ๊ฒ์ ๋ณด๋ ๊ฒ์ ์ ๋ง ๋ฉ์ง ๊ฒ์ ๋๋ค.
Helm ์์ฒด๋ k8s ํ
ํ๋ฆฟ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ถ์ํํ๊ณ ์ข
์์ฑ๊ณผ ํจ๊ป ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ธํ๋ผ๋ฅผ ์ฐ๊ฒฐํ๋๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ํ
ํ๋ฆฟ์ ์๋์ผ๋ก ๋ค์ ์์ฑํ๊ณ K8s์ ์ ์ฉํ ๋ค์ ์ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ ๊ณตํ๋ ๋์ helm upgrade
๋ช
๋ น ํ๋๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์๋ก์ด ์ฑ ๋ฒ์ ์ ์ค์นํ๊ฑฐ๋ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ helm์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฑ์ ๊ด๋ฆฌํ๋ ๋์ ์ ์ฒด ํจํค์ง๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฑ ๋ฒ์ ๊ณผ ์ธํ๋ผ๋ฅผ ๋ณ๋๋ก ๋กค๋ฐฑํ๋ ๊ฒ์ ๊ณจ์น ์ํ ์ผ์ ๋๋ค. ์ ๋ ๊ฑฐ๊ธฐ์ ๊ฐ๋ณธ ์ ์ด ์์ผ๋ฉฐ ๋๊ตฌ์๊ฒ๋ ์ ์ํ์ง ์์ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋ ์ง์คํธ๋ฆฌ์ ๋ง์ ํจํค์ง๊ฐ ์๋ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ์ผ์ ๋๋ค. ํจํค์ง๋ ์ธํ๋ผ๊ฐ ์๋๊ณ ํจํค์ง๊ฐ ์ฑ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฑ์ ์ธํ๋ผ๊ฐ ์๋ K8์์ ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ์ ํจํค์ง๊ฐ ๋๋ฌด ๋ง๋ค๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฆฌํฌ์งํ ๋ฆฌ ๋์ ์ํฐํฉํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ ๋ CI์์ ๊ทธ๋ ๊ฒ ํฉ๋๋ค. ์ฑ์ ๋น๋ํ๊ณ , ๋์ปค ๋ ์ง์คํธ๋ฆฌ๋ก ๋ณด๋ด๊ณ , ํจํค์ง๋ฅผ ๋ง๋ค๊ณ , ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด ์ํฐํฉํธ๋ก ์ ์ฅํฉ๋๋ค. CircleCI, Travis, Azure Pipelines๋ ์ํฐํฉํธ๋ก ๋น๋์ ์ฒจ๋ถ๋ ํ์ผ ์์ฑ์ ์ง์ํฉ๋๋ค. ๋น์ ๋ ๋๊ฐ์ด ํ ์ ์์ต๋๊น?
์ด์ฉ๋ฉด ๋ด๊ฐ Helm์ ์์ ์ ๋์น๊ณ ์๋์ง๋ ๋ชจ๋ฆ ๋๋ค. ์๋ง๋ Helm์ ์ฌ๊ธฐ์ ์์ ์ ๋์ณค์ ๊ฒ์ ๋๋ค. ๋๋ ์ด ํฐ์ผ์ด ๋ฐ๋ก ๊ทธ๊ฒ์ ํ๊ฐํ๊ธฐ ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ธ์ ์ผ๋ก - ๋ํ ๋์ ์งํ์ ๋ํ๋ ๊ฒ์ ๋ํด :)
๊ทธ๋ฌ๋ ๋ค, ์ถ์์ ์ผ๋ก ๋ง์ํ์ ๊ฒ์ด ๋ง์ต๋๋ค. ๋๋ helm ํจํค์ง/๋ฆด๋ฆฌ์ค์ ์ฐ๊ฒฐ๋ ์ํํธ์จ์ด ๋ฒ์ ์ ์ํ์ง ์์ผ๋ฏ๋ก ๋ณธ์ง์ ์ผ๋ก infra + app + k8s = Release
์
๋๋ค. ๋ด ์ํํธ์จ์ด ๋ฒ์ ์ ์์ฑ์ด ๋ด helm ํจํค์ง/๋ฆด๋ฆฌ์ค์ ์ฐ๊ฒฐ๋๋ ๊ฒ์ ์ํ์ง ์๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค(๋ฌด์ํ ์ ์๋ ์ ์์ ์ธ ๊ธฐ๋ณธ๊ฐ์ ์ ์ธ).
๋น์ ์ด ๋ ์๋๋ก ์ ๊ณตํ๋ ์์ ๊ด๋ จํ์ฌ. ๋๋ ์ด๊ฒ์ด ์ด ์ ๊ทผ ๋ฐฉ์์ด ์ด๋ป๊ฒ ๋ฌธ์ ๊ฐ ๋๋์ง๋ฅผ ๋ณด์ฌ์ฃผ์ง ์์ต๋๋ค. ์ฌ์ ํ helm์ ์ฌ์ฉํ์ฌ ๋กค๋ฐฑ ๋๋ ๋กคํฌ์๋ํฉ๋๋ค. ์ธํ๋ผ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ณ๊ฒฝ๋ helm ์ฐจํธ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ํํธ์จ์ด ๋ฒ์ ์ด ๋ณ๊ฒฝ๋๋ฉด ๋ค๋ฅธ ์ฑ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ๋งค๊ฐ๋ณ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ค๋ฅธ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋น์ค๋น ํญ์ (๋จ์ผ) ์กฐํ ์ฅ์น ํธ์ถ์ด ๋ฉ๋๋ค.
์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
๋ฆฌํฌ์งํ ๋ฆฌ์ ํจํค์ง๊ฐ ๋๋ฌด ๋ง๋ค๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฆฌํฌ์งํ ๋ฆฌ ๋์ ์ํฐํฉํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ด๊ฐ ์ธ๊ธํ ๊ฒ์ ๋๋ฌด ๋ง์ ํจํค์ง๋ helm ์ฐจํธ(์ด๋ฏธ appVersion์ด ํฌํจ๋์ด ์์)์ ๋๋ค. ์์ ์ ์ธ ํ๋์ helm ์ฐจํธ ๋ฒ์ ๊ณผ ํ๋ฃจ์ ์๋ฐฑ ๋ฒ ๋ณ๊ฒฝ๋๋ appVersion์ผ๋ก ์๊ฐํ์ญ์์ค. ๋ฐ๋ผ์ ๋์ค์ ์๋ํ์ ์ํด ์ฌ์ฉ๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋น์ค๋น ๋งค์ผ ์๋ฐฑ ๊ฐ์ ํจํค์ง๋ helm ์ฐจํธ๊ฐ ์์ต๋๋ค.
(๋ด ํ์ดํ๋ผ์ธ์ ์ผ๋ฐ์ ์ผ๋ก ๊ทํ์ ํ์ดํ๋ผ์ธ๊ณผ ๋์ผํ๊ฒ ๋ณด์ ๋๋ค. ์ฑ ๋น๋ --> Docker ์ด๋ฏธ์ง(๊ฒฐ๊ณผ๋ appVersion) --> ํจํค์ง ์ฐจํธ(์ ๋ฐ์ดํธ๋ appVersion ํฌํจ) --> ์ ์ฅ์๋ก ํธ์ํฉ๋๊น?
๋๋ ์ด ํฐ์ผ์ด ๋ฐ๋ก ๊ทธ๊ฒ์ ํ๊ฐํ๊ธฐ ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
ํ์คํ! ์ ์๊ฐ์๋ ์ด๋ฏธ ์ถ์ํ ์์ค์ด ๋๋ฌด ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์กฐํ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ค์ ๋ถ๋ด์ค๋ฝ์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฑด ๋ค๋ฅธ ์๊ฐ์ ํ ์๊ธฐ์ฃ , ํํ.
์์ ์ ์ธ ํ๋์ helm ์ฐจํธ ๋ฒ์ ๊ณผ ํ๋ฃจ์ ์๋ฐฑ ๋ฒ ๋ณ๊ฒฝ๋๋ appVersion์ผ๋ก ์๊ฐํ์ญ์์ค. ๋ฐ๋ผ์ ๋์ค์ ์๋ํ์ ์ํด ์ฌ์ฉ๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋น์ค๋น ๋งค์ผ ์๋ฐฑ ๊ฐ์ ํจํค์ง๋ helm ์ฐจํธ๊ฐ ์์ต๋๋ค.
๋ค, ํ์คํ ๋๋ฌด ๊ณผํ ๋๋์ด ๋ค์ง๋ง ์๋ํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋น๋ ์คํ์ด ์๊ณ ์ผ๋ถ ์ํฐํฉํธ๋ฅผ ์์ฑํ ๋ค์ ์คํ ์ด์ง์ ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉํ๊ธฐ ์ํด ์ ์ฅํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด... ๋น๋ ๊ฒฐ๊ณผ๊ฐ ์๋ ๋น๋ ์คํ์ ์ด๋ป๊ฒ ํ ์ ์์ต๋๊น? ๋ฐฐํฌํ ๋ ๋น๋๋ฅผ ์์ฑํด์ผ ํฉ๋๊น? ์ ๋ง ์๋ชป๋ ๊ฒ์ ๋๋ค. ์ผ๋ถ CI ํ์ดํ๋ผ์ธ์ JS ๋น๋๋ฅผ ์ํด ๊ทธ๋ ๊ฒ ํฉ๋๋ค.
๋์ปค์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ฐ ๋น๋๋ ๋์ปค ๋ ์ง์คํธ๋ฆฌ์ ๋ค์ด๊ฐ๋ ์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ ์ฅํด์ผํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด ์ด๋ป๊ฒ ๋ฐฐํฌํด์ผํฉ๋๊น?
๋ฌผ๋ก docker save
๋ ์ง์คํธ๋ฆฌ์ ๊ณต๊ฐ์ ์ ์ฝํ๊ณ ๋์ค์ ๋น๋ ์์ฐ ๋ณด์กด ์ ์ฑ
์ ์ธ ์ ์์ต๋๋ค. ํ์ง๋ง helm package
ํ์ผ๋ก ๋ณด๊ดํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๋น์ ์ ์์ ์ ํ์คํ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฑ ๋ฒ์ ์ ์์ฉํ ์ ์๋ ํ๋์ "์ค์น ํ๋ก๊ทธ๋จ"์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค์น ํ๋ก๊ทธ๋จ์๋ ์ธํ๋ผ๊ฐ ์์ผ๋ฏ๋ก ์ฑ ๋ฒ์ ์ ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ๊ทธ๋๋ก ์ ์งํ ์ ์์ต๋๋ค. ๊น๋ํ๊ณ ๋จ์ํด ๋ณด์ด์ง๋ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฑ ์์ฒด๋ ์ธํ๋ผ๊ฐ ์๋ k8s ํ๊ฒฝ์์ ์๋ฏธ๊ฐ ์์ต๋๋ค .
์ฑ์ด ์ผ๋ถ ์ธํ๋ผ์ ์์กดํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ธฐ๋ณธ ์ - configmap.
๊ทธ๋ฐ ๋ค์ ์ฑ์ ๋กค๋ฐฑํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํ์๊ฒ ์ต๋๊น?
์ฑ์ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํ์ง๋ง ์ธํ๋ผ๋ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ธํ๋ผ๋ฅผ ๋กค๋ฐฑํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํฉ๋๊น?
์ด์ ์ธํ๋ผ์๋ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ค์นํด์ผ ํ๋ ์ฑ ๋ฒ์ ์ ๋ํ ๋จ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ค ์ฑ์ด ์ด๋ค ์ธํ๋ผ๋ฅผ ์ง์ํ๋์ง ๊ธฐ์ตํ๊ณ ์๋์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ ๋ง, ๊ทธ๊ฒ์ ์ง์ฅ์ด ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ด ์กฐํ ์ฅ์น๊ฐ ์๋ ์ง๊ธ์ ์ง์ฅ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์๋ชป์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ์๋ ํฌ๊ตฌ๋ฅผ ์ฌ์ฉํ ์ด์ ๊ฐ ๊ฑฐ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋๋ฌด ๋ง์ ์ถ์ํ ์์ค์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ชจ๋ ๋ฉ์ง๊ณ ๋จ์ํ ์ํฌ
๋๋ ๋น์ ์ ๋ง์ง๋ง ์์ ์ด ๋งค์ฐ ์ค๋๋ ฅ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ์ธํ๋ผ์๋ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ค์นํด์ผ ํ๋ ์ฑ ๋ฒ์ ์ ๋ํ ๋จ์๊ฐ ์์ต๋๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ๋ถ๋ฆฌํ๊ณ Helm ํจํค์ง/๋ฆด๋ฆฌ์ค๋ฅผ ์ง์ค์ ์์ค๋ก ์ฌ์ฉํ๋ค๋ฉด ์ด๊ฒ์ ํ์คํ ๋ฌธ์ ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ด๊ฒ์ ์๋ง๋ ์ฌ์ค์ด ์๋ ๊ฒ์ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ helm ์ฐจํธ(๋ฐ appVersions)๋ฅผ ํจ๊ป ๋ฌถ๋ Helm(์, ์ถ์ํ์ ๋ ๋ค๋ฅธ ๊ณ์ธต) ์์ ์ค์ผ์คํธ๋ ์ด์ ์ด ์์ต๋๋ค(helmsman, ๋ง๊ตฌ ๋ฑ์ ์๊ฐํ์ญ์์ค). ๊ทธ๋ฆฌ๊ณ ํด๋น ๋ ์ด์ด ์์ฒด์๋ ๋ฒ์ ์ด ์ง์ ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ค๋ช ํ๋ ๋ด์ฉ์ ๋ ์ด์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทธ ์ด์ ๋ ์ด์ ๋ฒ์ ์ helm ์ฐจํธ๋ก ๋๋๋ฆฌ์ง ์๊ณ ์ค์ผ์คํธ๋ ์ด์ ๊ณ์ธต์ ์ด์ ๋ฒ์ (์ฑ ๋ฐ ์ธํ๋ผ๋ฅผ ์๋ฏธํจ)์ผ๋ก ๋๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ์ง๋ง ํค๋ง ๊ฐ์ง๊ณ ๋ 100% ๋ฌธ์ ๐ฃ. ์ด๊ฒ์ด ์์ด๋์ด๊ฐ ๋ช ์์ ์ผ๋ก appVersion ์ฌ์ ์๋ฅผ ํ์ฉํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฉํ์ง ์๋ ์ด์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฐจํธ ๋ฒ์ ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ํจ๊ป ๊ฒฐํฉํ๋ ๊ฒ์ ๋ํด ๋ด๊ฐ ์ข์ํ๋ ํ ๊ฐ์ง๋ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ด ์ด๋ ์ฐจํธ์ ์ํ๋์ง ๋ช ํํด์ง๋ค๋ ๊ฒ์ ๋๋ค. ํน์ ๋ฒ์ ์ ๋ค์ ๋ฐฐํฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ด ์ด๋ค ์ฐจํธ ๋ฒ์ ๊ณผ ํธํ๋์๋์ง ๊ธฐ์ตํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ํจ๊ป ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฐ๋ฅธ ์ฐจํธ ๋ฒ์ ์ ์ฐธ์กฐํ๊ธฐ๋ง ํ๋ฉด ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ฐจํธ๊ฐ ์ผ์นํ๋ค๋ ๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก @iorlas๊ฐ ์ค๋ช ํ ๋ด์ฉ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ง๋์?
๊ฒฐ๊ตญ ์ฐจํธ ๋ฒ์ ์ "์ํผ" ๋ฒ์ ์ผ๋ก ์๋ํฉ๋๋ค.
๋ฌธ์ํ ๋ชฉ์ (๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ฉ์ง ์์ด๋์ด)์ ์ํด ์ฐจํธ ์ ์ ์์ฒด๋ง ์ฐธ์กฐํ๋ ๋ ๋ค๋ฅธ "์ฐจํธ ์ ์ฉ" ๋ฒ์ ์ ์ง์ ์๊ฐํ ์ ์์ต๋๋ค.
@ํ๋ฆฌํ๋
๋ต ๋ต! ์ด๊ฒ์ด ํ์ฌ ์ํคํ
์ฒ ์ค๊ณ ๊ฒฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Helm์ด ์๋ํ๋ ๋ฐฉ์์
๋๋ค. ๋ด๊ฐ ๋ณผ ๋.
๋ฌธ์ ๋ ๋๋๋ก ์ด์ํ๊ฒ ๋๊ปด์ง๋ค๋ ๊ฒ์ ๋๋ค. ์ฑ๊ณผ ์ธํ๋ผ๋ฅผ ํจ๊ป ๋ฌถ๋ ๊ฒ์ ๋ํ ์ค์ ๊ณผ ์์ฌ์ค๋ฌ์ด ์์ด๋์ด๊ฐ ๋๋ฌด ๋ง์ต๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ๋๊น - ๊ทธ๊ฒ์ด ๋ฌธ์ ์ ๋๋ค.
@BenjaminSchiborr
๊ทธ๋ฌ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ด๊ฒ์ ์๋ง๋ ์ฌ์ค์ด ์๋ ๊ฒ์ ๋๋ค
ํ์คํ! ์ ์ฒด k8์์๋ ์ปจํ ์ด๋ํ๋ ๋๋ฌด ๋ง์ ์ ์์ต๋๋ค.
์กฐํ ์ฅ์น๊ฐ ์์ฑ๋ ๋ฌธ์ ๋ฅผ ์ฐพ๊ธฐ ์ํด ์กฐ๊ธ ๋ค๋ฅธ ๊ด์ ์์ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ ํจํค์ง๊ฐ ์ ํ ์์ด ๊ต์ฅํ๊ณ ๋ชจ๋ ๊ฒ์ด ๋๊ปด์ง๋๋ค. ๋ฐ๋ผ์ ์ด ์ฐจํธ๋ฅผ ์ ์ฉํ ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฌด๋ ์ด๋ค ์ฑ ๋ฒ์ ์ ์ด๋ค ์ฐจํธ๊ฐ ํ์ํ์ง ๊ธฐ์ตํ๊ณ ์ถ์ดํ์ง ์์ต๋๋ค. ์ด๋ค ์ฐจํธ๊ฐ ์ ๋ฐ์ดํธ๋์ด ์ด๋ค ์ฑ ๋ฒ์ ์ ๋ํ ์๋ก์ด ๊ตฌ์ฑ ๊ฐ์ ์ ๊ณตํ๋์ง.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ "Setup myApp version 1.4.2 as K8s app" ์
๋๋ค . ๋ชจ๋ ์ํ, ์ข
์์ฑ, ๋ณ๊ฒฝ ์ฌํญ์ ํ๋์ ์ํฐํฉํธ์ธ apps versions + hooks + setup logic + infrastructure to connect it all
์ ํ๋ฆฌ์ผ์ด์
์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก ์บก์ํํฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ MSI, Deb, RPM, ์ฌ์ง์ด NPM, Go mod, Pip, Gem๊ณผ ๊ฐ์ ๊ฒ์ ๊ฐ์ง๊ณ ์๋ ์ด์ ์
๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ํจํค์ง๊ฐ ๋ฑ์ฅํ๋ ๊ณณ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํจํค์ง๋ ์ ์์ ๋ฐ๋ผ CI/CD ํ๋ฆ ๋ด์์ ์ค์น ๊ฐ๋ฅํ ๋ฆด๋ฆฌ์ค๋ก ์์ฑ๋์ด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ์ง์คํธ๋ฆฌ ๋ฐ/๋๋ ์์คํ ์ค์ (k8s ํด๋ฌ์คํฐ)์ผ๋ก ๋ณด๋ผ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ๋ก์ ํธ๋ ๋ค๋ฅด์ง ์์ต๋๋ค. ํจํค์ง ์์ด ์ง์ helm install
์ฐจํธ๋ฅผ ์์ฑํ ๋ ๋์ผํ ์์
์ ์ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ํจํค์ง ์์ฑ ๋์ ๋ค๋ฅธ ๋จ๊ณ์์ ์์ฑํฉ๋๋ค. ์ฑ ๋น๋ ํ๋ก์ธ์ค์์ ๋น๋ํ๋ ๋์ ๋ฆด๋ฆฌ์ค ๋จ๊ณ์์ ๋น๋ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ธํ๋ผ์ ์ฑ ๋ฒ์ ์ ํจ๊ป ๋ฌถ์ต๋๋ค . ์์์ ์ผ๋ก .
์ฌ๋ฏธ์๋ ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋๋ k8s ์ด์์๋ ํ์ฌ ๋ฌธ์ ์ ๋ํด ์์ํด์ผ ํ๋ฏ๋ก ์ด์์์ฒ๋ผ ์๋ํด์ผ ํ์ง๋ง helm์ด ํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ด ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ํ๋์ ๋๊ตฌ๋ง ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒฌ์๋ ์ฌ๋? ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ์๋ก์ด ๊ฒ์ ๋ง๋ค ์ ์์ง๋ง ๋ ๋์
๊ทํ๊ฐ ์ค๋ช ํ๋ ๋ด์ฉ์ ์ ์ดํ ์ ์๋ ์ธํ๋ผ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฌ์ฉํ๋๋ก ๋์ด ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ๋ง์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํฐํ๋ผ์ด์ฆ ์๋๋ฆฌ์ค์์ ํจํค์ง๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ฐ์ ์์ ์ด ๋ฉ๋๋ค. ๊ณต์ ๋๋ ์ฟ ํค ์ปคํฐ ํ๊ฒฝ์ ๋ฐฐํฌ๋๊ณ ๋ฆฌํฌ์งํ ๋ฆฌ ์์ฒด์ ์๋ CI/CD ํ์ดํ๋ผ์ธ ์ ์ ๋๋ถ์ ์์ญ ๊ฐ์ ์ฟ ํค ์ปคํฐ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ์์ ์ ์์ต๋๋ค. azure-pipelines.yaml)์์ "ํจํค์ง ๋ฒ์ "์ ๋ง์คํฐ ๋ถ๊ธฐ์ ํน์ ๋ฒ์ ์์ ์์ฑ๋ ๋น๋์ผ ๋ฟ์ ๋๋ค. ์๋ฏธ, "ํจํค์ง"๋ฅผ ์๋ฌด๋ฐ๋ ์ ์ฅํ ํ์๊ฐ ์์ต๋๋ค. ๋ด ๋น๋๋ configmaps ๋ฑ์์ ์ฌ์ฉ๋๋ ๋์ผํ ๋นํธ์ ๋์ผํ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ํจํค์ง๋ฅผ ์์ฑํฉ๋๋ค. ์์ฃผ ๋๋ฌผ๊ฒ ๋ฐ์ํ๋ ์๋น์ค ์ธํ๋ผ ๋ณ๊ฒฝ. Helm์ด ์ด ๊ทธ๋ฆผ์ ์๋ ์ด์ ๋ 1) ์ด๋ฏธ ์ผ๋ถ ์ธํ๋ผ(์: nginx)๋ฅผ ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. 2) k8s yaml ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ํ ์ ์ฌ๋ฐ๋ช ํ ํ์๊ฐ ์์ต๋๋ค.
@wasker
์๋ฅผ ๋ค์ด docker์ ํฌ์ํด ๋ณด๊ฒ ์ต๋๋ค. Docker ์ด๋ฏธ์ง๋ ํจํค์ง์ ๋๋ค. ๋ฐ์ด๋๋ฆฌ๋ฅผ OS ์ด๋ฏธ์ง = ์ธํ๋ผ์ ํจ๊ป ๋ฌถ์ต๋๋ค. ๋น๋๋ฅผ ํ ๋๋ง๋ค docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ์ด์ ๋ helm ํจํค์ง๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ ๋์ปค ์ด๋ฏธ์ง๋ก ์ถ์ํํ ํ์๊ฐ ์๋ค๋ฉด ๋์ปค๊ฐ ํ์ ์๊ณ ์ผ๋ฐ VM์ผ๋ก ์ด ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋์ปค ์ฌ์ฉ์ helm์ ํฌ์ํ๋ ค๊ณ ํ๋ฉด helm์ ์ธํ๋ผ ๋๊ตฌ๋ก๋ง ์ฌ์ฉํ๋ ๊ฒ์ ๋์ปค๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ธฐ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ ๋ค์ ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ณด๋ด k8s ํธ์คํธ ์์ฒด์์ ์ด๋ฌํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ํฌ๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋งค๋ฒ ๋ค์ ํฌ์ฅํ์ง ์๋ ๊ฒ๊ณผ ๊ฐ์ ์ข ๋ฅ์ ๋์ ๊ฒ์ ๋๋ค.
์ด์จ๋ ์ฐ๋ฆฌ๋ ์๋ชป๋ ๊ธธ์ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ฌด๋ helm์ ์ฌ์ฉํ๊ณ ์๋์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํฉ๋๊น? ์ ์๊ฐ์๋ 3๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค.
helm package chart
-> helm install package
helm install chart
helm install
-> kubectl set image
@wasker ์ด๋ ์ชฝ์ด ๋น์ ์ ๊ฒ์
๋๊น? 3๋ฒ์ด ์๋๋ผ ๋ฏฟ์ต๋๋ค. ์ธํ๋ผ ๊ตฌ์ฑ๊ณผ ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ค์ ๋ก ๋ถ๋ฆฌํ๋๋ผ๋ ์์
ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์ธํ๋ผ๋ฅผ ์
๋ฐ์ดํธํด์ผ ํ ๋ ๋ชจ๋ ๋ฒ์ ์ ์๊ฒ ๋๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฐจํธ์์ ์๋์ผ๋ก ์
๋ฐ์ดํธํ๊ฑฐ๋ ๊ฐ ๋ฐฐํฌ์ ๋ํด kubectl set image
๋ก ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
๊ทธ๋์, ์ฐ๋ฆฌ๋ ๋ ๋ฒ์งธ helm install chart
"w/o ํฌ์ฅ"์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์กฐํ ์ฅ์น๋ ํญ์ ๊ทธ๋ฆผ์ ์์ต๋๋ค. ๋ฌธ์ ๋ ํจํค์ง๊ฐ ๋น๋์ง๋ง ๋ฐํ์์ ์ฑ์ ๋ฐฐํฌํ ๋๋ผ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ CI ๋น๋๋ ๋ฐฐํฌํด์ผ ํ ๋ ์์์ ์ผ๋ก ํจํค์ง ์์ฑ์ ๋ด๋นํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ golang์ ํ๋ก์ ์
ํ๋ฉด ๋น๋ํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋์ ์์ค ์ฝ๋๋ฅผ ๋ณด๋ด๊ณ docker์์ go run
๋ก ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ ํจํค์ง ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๋ ๋จ์ํํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ?
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐ๋ฅผ ์์ํ ์ ์๋ ๊ณณ์
๋๋ค. ์ฌ๊ธฐ https://github.com/helm/helm/issues/3555#issuecomment -529022699๊ฐ ์ ์ ์์
๋๋ค. ์ถ๊ฐ helm run
ํ๊ณ ๋ก ๋ชจ๋ธ๋ง go run
.
์ธํ๋ผ์ ์ฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋ถ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์ธํ๋ผ ๋ฅผ ์ ๋ฐ์ดํธ/์๋ํ๋ ๋ฐ์๋ง helm์ ์ฌ์ฉํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด๊ณ ์ถ์ง๋ง ์ ๋ฐ์ดํธ์ ๋ํต์ ์ถ๊ฐํ์ง ์๋ ๋ฐฉ๋ฒ์ ๋ณผ ์ ์์ต๋๋ค. ํ์ฌ ๋ฐฐํฌ ๋ฒ์ ๊ณผ ๋ด์ฉ์ ๋ฌด์ํ ์ ์์ง๋ง... ๋๋ฌด ์๋ชป๋ ๊ฒ ๊ฐ์์ ๋ง๋๋ ๋ฐ ์๊ฐ ๋ญ๋น๊ฐ ๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด docker์ ํฌ์ํด ๋ณด๊ฒ ์ต๋๋ค. Docker ์ด๋ฏธ์ง๋ ํจํค์ง์ ๋๋ค. ๋ฐ์ด๋๋ฆฌ๋ฅผ OS ์ด๋ฏธ์ง = ์ธํ๋ผ์ ํจ๊ป ๋ฌถ์ต๋๋ค. ๋น๋๋ฅผ ํ ๋๋ง๋ค docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ์ด์ ๋ helm ํจํค์ง๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฌธ์ ๋ ์ Docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ ํด๋น ์ด๋ฏธ์ง ๋ด์ ๋ฌด์ธ๊ฐ๊ฐ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ ์ค๋ช ๋ ์๋๋ฆฌ์ค์์ ํจํค์ง๋ Helm ์ฐจํธ์ ๋ด์ฉ์ ์ฑ ๋ฒ์ ์ด๋ผ๋ ํ ์ค์ ์ ์ธํ๊ณ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ์ด๊ฒ์ ์ต์ข ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น์ง๋ง ์์ฒด์ ์ผ๋ก Helm ์ฐจํธ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ์ง๋ ์์ต๋๋ค. ๋ค๋ฅธ ๊ฐ์ ์ฌ์ฉํ์ฌ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋์ผํ ์์ ์ ์ํํฉ๋๋ค. ์์ฒด์ ์ผ๋ก ์ํฐํฐ๋ก์์ Helm ์ฐจํธ๋ ํด๋น ์ฑ ๋ฒ์ ๋ณ๊ฒฝ์ ๊ฒฐ๊ณผ๋ก ์กฐ๊ธ๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ๋ง์ง๋ง์ ๊ณต๊ฐ๋๋ ๊ฒ๋ง์ด ์์ต๋๋ค.
Docker ์ด๋ฏธ์ง์ ๋ํ ๊ตฌ์ฑ ์ฌ์ฉ๊ณผ ๊ฐ์ ์์ ์ ์ํํ ์ ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ฌ๊ธฐ์์ ์ ์ฌ์ ์ ๊ทธ๋ฆด ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์๋ฅผ Docker ์ด๋ฏธ์ง์ ์ ๋ฌํ๋ฉด ๋ฐํ์์ ์คํ๋๋ ๋ฐฉ์์ ์ํฅ์ ๋ฏธ์น๋ฉฐ ์ด๋ฌํ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ์ง ์์ต๋๋ค. ์ด๋ฏธ์ง์ ๋ด์ฉ์ ๋ณ๊ฒฝ๋์ง ์์์ง๋ง ์ต์ข ๊ฒฐ๊ณผ๋ - ๋งค์ฐ ์ ์ฌํ ์ํฉ์ด์ง๋ง ์ด ๊ฒฝ์ฐ ๋์์ ๋ฐ๋์งํ๊ณ ์ ์์ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ golang์ ํ๋ก์ ํธ๋ฅผ ์ํํ๋ฉด ๋น๋ํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋์ ์์ค ์ฝ๋๋ฅผ ๋ณด๋ด๊ณ docker์์ go run์ผ๋ก ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. [...] ๋ฐ๋ผ์ ํจํค์ง ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๋ ์ง์ง ์ด์ ๋ ์์ง๋์ด์ ์ ์ฒด ๊ทธ๋ฆผ์ ๋จ์ํํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ต๋๊น?
๋ด ์๊ฐ์๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ํ์ค์ ์ผ๋ก ์ฌ๊ธฐ์์ ์ฃผ์ฅํ๋ ๊ฒ์ ์ฌ๋๋ค์ด ์ฑ ๋ฒ์ ์ "์ฐจํธ์ ์ผ๋ถ"๋ก ๊ณ ๋ คํ๋์ง ์ฌ๋ถ์ Helm ์ฐจํธ๋ฅผ ์ฐจํธ์ ๊ฒฐ๊ณผ๋ก ๋ฐฐํฌ๋๋ Docker ์ด๋ฏธ์ง์ ๊ตฌ๋ณ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋์ง ์ฌ๋ถ์ ๋๋ค. ์ด์ ๋ํ ๋์ ๊ฒฌํด๋ ์์์ ์ธ๊ธํ ๋ฐ์ ๊ฐ๋ค. Docker ์ด๋ฏธ์ง์์ ์ปดํ์ผ๋ Go ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ์ ธ์์ ๋ค๋ฅธ ํ๊ฒฝ ๋ณ์๋ก ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์ฆ, ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ผ๋ก Helm ์ฐจํธ๋ฅผ ์ฌํจํค์งํ๊ณ ์ฐจํธ ๋ฒ์ ์ ์ผ์ข ์ "์ํผ ๋ฒ์ "์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ฃผ์ฅ์ ์ค๋๋ ฅ์ด ์์ต๋๋ค(์ฆ, ํญ์ ํธํ๋๋ ์ฑ ๋ฒ์ ์ ์ฐจํธ - ๊ฐ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ฌ์ฉ์ ์ ์ํ ์ ์๋ ๊ฒฝ์ฐ).
์ ์ง๋ฌธ์ - _๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๋ชจ๋ ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?_ ๊ฐ ์ ๊ทผ ๋ฐฉ์์๋ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฅผ ์ง์ํ์ง ์์ผ๋ฉด ์๋ฒฝํ๊ฒ ์ ํจํ ์ผ๋ถ ์ํฌํ๋ก๊ฐ ๋ ์ด๋ ค์์ง ๋ฟ์
๋๋ค. ์๋ฅผ ๋ค์ด Flux CD์ Helm Operator๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ณต์ Helm ์ฐจํธ๊ฐ ์๋ ๊ฒฝ์ฐ(์ฆ, ๋ง์ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๊ณ ๋์ผํ ํน์ฑ์ ๊ณต์ ํ๋ ํน์ ์ ํ์ ์๋น์ค๊ฐ ์๊ธฐ ๋๋ฌธ์) ์ ์ฉํ helm list
์ถ๋ ฅ์ ์ป์ผ๋ ค๋ฉด ์ Helm์ด ์์ด์ผ ํฉ๋๋ค. ๊ฐ ์ฑ์ ์ฐจํธ์ ๊ฐ ๋ฆด๋ฆฌ์ค์๋ ๊ณ ์ ํ Helm ์ฐจํธ๋ ํ์ํฉ๋๋ค. ์ด๊ฒ๋ง์ผ๋ก๋ ํ์ดํ๋ผ์ธ์ด ๋ณต์กํด์ง๋๋ค. ์ฐจํธ๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ฉด ์ฐจํธ๊ฐ ์
๋ฐ์ดํธ๋์์ ๋๋ง ์คํ๋๋ ์์ฒด ํ์ดํ๋ผ์ธ์ด ์์ ์ ์๊ณ ์ ํ๋ฆฌ์ผ์ด์
ํ์ดํ๋ผ์ธ์ด ๋จ์ผ Helm ๋ช
๋ น์ ์คํํ ํ์๋ ์๊ธฐ ๋๋ฌธ์
๋๋ค(Flux CD์ ์ค์น/์
๊ทธ๋ ์ด๋ ์ ์ ์ฑ ๋ฒ์ ํ๋๊ทธ).
์ ์ง๋ฌธ์ - ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๋ชจ๋ ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ทธ๊ฒ์ด ๋ฐ๋ก ๋ด๊ฐ ์๊ฐํ๋ ๊ฒ์ ๋๋ค.
์ ๊ฒฝ์ฐ์ "์ํผ ๋ฒ์ "์ ์กฐํ ์ฅ์น ์ฐจํธ๊ฐ ์๋๋ผ ๊ณผ๋คํ ์กฐํ ์ฅ์น ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ๋ ์ด์ด์
๋๋ค. ๋์๊ฒ ๋จ์ผ Helm ์ฐจํธ๋ ๋ค๋ฅธ ๋ง์ ์๋น์ค ์ค์์ ์์ ์๋น์ค๋ง ์ค๋ช
ํ๋ฏ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ํจ๊ป๋ง ์๋ฏธ ์๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํ์ฑํฉ๋๋ค.
๋ฐ๋ผ์ ์ ๊ฒฝ์ฐ์ "์ํผ ๋ฒ์ "์ ๋ชจ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํจ๊ป ์์ฝํ ๊ฒ์
๋๋ค(์ค์ ๋ก ๋ฒ์ ์ด ์ง์ ๋๋ ๋ฐฉ์์
๋๋ค).
์ฌ์ ํ Helm ์ฐจํธ ์์ฒด๋ฅผ ์ค๋ช ์ ์ธ "์ํผ ๋ฒ์ "์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ํ ๋ ผ์์ด ์์ต๋๋ค.
@seeeruk ์ ์์ ์ผ๋ก ๋์๊ฐ๊ธฐ: ๋ ๋ค ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
ํ์ฌ ํ ๋ก ์์ ์ธ๋ถ์ ๋ชฉ์๋ฆฌ๋ฅผ ์ป๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค. ์ฝ๊ฐ์ ๋งฅ๋ฝ์์, ์ ๋ ์ด _11์ผ ๋์ helm
๋ฅผ ์ฌ์ฉํด ์์ต๋๋ค._ ์ ๋ ๊ณ ๊ธ ํ์ต์ ์ฐธ์ฌํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ ์๊ฒ ์ถ๊ฐํ ๋
ํนํ ๊ด์ ์ ์ ๊ณตํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ด๊ฐ ์์งํ ๋ชจ๋ ๊ฒ์ ๋ฌธ์ํ์ ์คํ์์ ๋์จ ๊ฒ์
๋๋ค.
Helm์ด ์ฐจํธ๊ฐ ์๋ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ์ ๋ํ ์ด ํ์ฌ ๋ ผ์์ ์ฝ๊ธฐ ์ ๊น์ง ๋๋ Helm์ด ์ฃผ๋ก ๊ด๋ จ๋ Kubernetes ๋ฆฌ์์ค๋ฅผ ์ค๋ช ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ผ๊ณ ๋ฏฟ์์ต๋๋ค. ์ด ๋ฏฟ์์ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ Helm ๋ฌธ์์์ ๋์ต๋๋ค.
Helm์ Kubernetes์ ์ฐจํธ๋ฅผ ์ค์นํ์ฌ ๊ฐ ์ค์น์ ๋ํ ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ์ฐจํธ๋ฅผ ์ฐพ๊ธฐ ์ํด Helm ์ฐจํธ ์ ์ฅ์๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
์ปจํ ์คํธ์ ๊ฒฝ์ฐ ํ์ฌ ์์ ์ ์ธ helm ๋ฌธ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ช ์๋์ด ์์ต๋๋ค.
์ฐจํธ๋ ํฌ๊ตฌ ํจํค์ง์ ๋๋ค. ์ฌ๊ธฐ์๋ Kubernetes ํด๋ฌ์คํฐ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ , ๋๊ตฌ ๋๋ ์๋น์ค๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค ์ ์๊ฐ ํฌํจ๋ฉ๋๋ค. Homebrew ์์, Apt dpkg ๋๋ Yum RPM ํ์ผ์ ํด๋นํ๋ Kubernetes์ฒ๋ผ ์๊ฐํ์ญ์์ค.
๊ทธ๋์ ์ง๊ธ ์ฝ๊ฐ์ ํผ๋์ด ์์ต๋๋ค! Helm ๋ฌธ์์๋ "์ฐจํธ๊ฐ ์กฐํ ์ฅ์น ํจํค์ง"๋ผ๊ณ ๋ถ๋ช
ํ ๋ช
์๋์ด ์์ง๋ง, ๊ทธ๋ ๋ค๋ฉด ๋๋์ฒด ์ helm install
๊ฐ ํจํค์ง๋์ง ์์ ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์๋ฝํฉ๋๊น?
์กฐํ ์ฅ์น๊ฐ ๋ฌด์์ด๋ฉฐ ์ด๋ป๊ฒ ์๋ํด์ผ ํ๋์ง์ ๋ํ ๋์ ํ์ฌ ๊ฒฌํด์ ์ํฅ์ ๋ฏธ์น ๊ฒ์ ์ด ๋์์ ๋๋ค.
Helm์ _what_์ ๊ตฌ์กฐ๊ฐ ํด๋ฌ์คํฐ๋ก ๋ค์ด๊ฐ๋ ๊ฒ๊ณผ _what properties_ ์ฌ์ด์์ ๋งคํผ ์ญํ ์ ํฉ๋๋ค.
์ด์ ์ง๋ฌธ์ "Helm์ด ๋ฐฐํฌํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น?"์ ๋๋ค.
helm install release-name ./local_chart
์คํํ๋ฉด helm์ด ์ง์ ๋ ๊ฐ์ผ๋ก ๋ชจ๋ ์ฐจํธ ํ
ํ๋ฆฟ์ ๋ก์ปฌ๋ก ๋ ๋๋งํ๊ณ (๊ธฐ๋ณธ๊ฐ ๋๋ ์ฌ์ ์๋ฅผ ํตํด) ๋ ๋๋ง๋ ๋ฒ์ ์ Kubernetes๋ก ํธ์ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๋ํ ๋ด๊ฐ ๋กค๋ฐฑํ๋ ๊ฒฝ์ฐ Helm์ด ์ด์ ์ ๋ฐฐํฌ๋ Kubernetes ๊ฐ์ฒด๋ฅผ ์ ์งํ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. (์ผ๋ถ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค) "๋ ๋๋ง ํ
ํ๋ฆฟ ์ปฌ๋ ์
"์์ด ๊ฐ๋
์ ๋ฆด๋ฆฌ์ค ๋ฐ ํจํค์ง์
๋๋ค. ์ด๋ฌํ ๋ชจ๋ ๋ฆฌ์์ค ์ ์(๋ณ๊ฒฝ๋์ง ์์๋๋ผ๋)๋ ๋ฆด๋ฆฌ์ค๊ฐ ์กด์ฌํ๊ฑฐ๋ ๋กค๋ฐฑ๋๊ธฐ ์ํด _๋ฒ๋ค์ ์ค๋ช
๋ ์ํ_์ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ผ๋ก๋ถํฐ ๋๋ helm ๋ง์ด ์ง์ ์ผ๋ก packages ๋ฅผ ๋ฐฐํฌ ํ๋ค๊ณ ์ถ์ธก
_๋ด ๊ฐ์ธ์ ์ธ ์๋ฏธ๋ก ์ ๋ฐ๋ฅด๋ฉด ์ด ์ง๋ฌธ์ ๋ํ ๋๋ต์ yes ์ ๋๋ค. ๋ณ๊ฒฝ๋์ง ์๋ ํ ๋ฒ์ ๋ฒํธ๋ฅผ ์ฌ๋ฆฌ์ง ์์ ๊ฒ์ด๋ผ๋ ์ฃผ์ฅ์ ๋ฐ๋ฅด๋ฉด ์ผ๋ถ ๊ธฐ๋ณธ ์์ฑ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ์ ๋ฒํธ๋ฅผ ์กฐ์ ํ๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ ์ง์คํธ๋ฆฌ์์ ๋ค๋ฅธ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ์ค์ ํ๊ฑฐ๋ ์ผ๋ถ ์ฝ๋ ์ํฐํฉํธ์ ๋์์ ๋ณ๊ฒฝํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ด ๋๋ฌธ์ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๊ธฐ ์์ํ๊ณ ๊ฐ๋ฐ์ ์ ์ธํ๊ณ :latest
์์ ๋ฐฐํฌํ์ง ์์์ต๋๋ค . ๋์ปค ์ด๋ฏธ์ง์ ๋ฆด๋ฆฌ์ค ํ๊ทธ ๋์ "๋ฉํ ํ๊ทธ"๋ฅผ ์ฌ์ฉํ๋ฉด ์ฃผ์ด์ง ๋ฐฐํฌ๋ฅผ ์ฃผ์ด์ง ์ฝ๋ ๋ฒ ์ด์ค์ ๋ฌถ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ด๋ ต๊ฒ ๋ฐฐ์ ์ต๋๋ค.
์ด๊ฒ์ ์ด๋ฏธ Helm: packages์ ์ํด ์๊ฒฌ์ด ์ ์๋์์ต๋๋ค.
์ด ํจํด ์ด 100% ๋ช
ํํ์ง ์๋๋ผ๋ --appVersion
ํ๋๊ทธ๊ฐ ์ ๊ณต๋๋ ๊ฒ์ด ๋
ผ๋ฆฌ์ ์ผ๋ก ์ผ๊ด์ฑ์ด ์์ด ๋ณด์
๋๋ค. ์ด๊ฒ์ "์ด์ "์ ๋ตํ๋ ๊ฒ์ด ์๋ง๋ ๋ค๋ฅธ ์ด๋ค ๊ฒ๋ณด๋ค ๋ ์ค์ํ ๊ฒ์ด๋ฏ๋ก ๊ทธ ๋๋ต์ผ๋ก ์ ๊ธฐ์ฌ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค.
๋ฐฐํฌ์ ํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ์ฌ์ ๋ ๊ฐ์ง ์ฃผ์ ๋ฒ์ ์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ์ด ํ์ฌ์ ํด๋ผ์ด์ธํธ ์ค ์ผ๋ถ๋ ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์ต์ ์ฃผ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ธฐ๋ก ์ฝ์ ํ์ง ์์๊ณ ๋ ์ค ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ๋ฃ ๊ฐ๋ฐ ๊ณ์ฝ์ผ๋ก ์ธํด ๋ผ์ด๋ธ ๊ฐ๋ฐ์ ์ฌ์ ํ โโ๊ตฌ ๋ฉ์ด์ ๋ฒ์ ์์ ์ด๋ฃจ์ด ์ง์ง๋ง ์ ํ์ "๋์ผ"ํฉ๋๋ค. ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ฒ์ ์ ๋ฐฐํฌํ ์ธํ๋ผ๋ ๋์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฑ ๋ฒ์ ์ ์ด๋ฌํ ๋ฐฐํฌ ๊ฐ์ ํฌ๊ฒ ๋ค๋ฆ ๋๋ค.
์ด ํ์ฌ๋ ๋ฌด์์ ํ ๊น์?
appVersion
๋ง ๋ค๋ฅธ ๋ ๊ฐ์ ๋ณ๋์ ๊ฑฐ์ ๋์ผํ ์กฐํ ์ฅ์น ์ฐจํธ๋ฅผ ๋ง๋์๊ฒ ์ต๋๊น?appVersion
์
๋ฐ์ดํธํฉ๋๊น?appVersion
๋ฅผ ํ๋๊ทธ(ํ์ฌ ์ง์๋์ง ์์)๋ก ์ฌ์ ์ํ์ฌ ๋ช
๋ น์ค์์ ์ ์ฌ์ ์ธ ๊ฐ๋ฐ์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค์๊ฒ ์ต๋๊น?appVersion
๋ฐ์ผ๋ก์ Chart.yaml
์์ values.yaml
?์ ์ 1์ ๋ค๋ฅธ ์ ์๋ณด๋ค ์ฝ๊ฐ ๋ ๋ง์ ์ค๋ฒํค๋๋ฅผ ๋์ ํ์ง๋ง ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋ํ ์ฐจํธ๊ฐ ์๋ก ๋ค๋ฅธ ๊ฒฝ์ฐ ๋ณ๋๋ก ์ ์งํ๋ ์ด์ ๋ ์์ต๋๋ค. ๋ช ํํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ผ๋ฉฐ ์๋ง๋ ์ด ๋ฌธ์ ์ ๋ง์ ๊ฒฝ์ฐ์ ์ฑํ๋ ๊ฒ์ ๋๋ค.
์ ์ 2๋ ์ ์ 1๋ณด๋ค ์ค๋ฒํค๋๊ฐ ์ ์ง๋ง ์ฐจํธ์ ๋์ ๋ณ๋์ฑ์ ๋์
ํฉ๋๋ค. helm install release-name https://remote-repo.com/chart
๋ฅผ ์คํํ๊ณ ์ฐจํธ์ ์ต์ ๋ฒ์ ์ด ์๋ชป๋ ๋ฒ์ ์ ์์ฉ ํ๋ก๊ทธ๋จ์ธ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ด๋ฐ. ์๋ง๋ ์ต์ ์ ์ ๊ทผ ๋ฐฉ์์ ์๋ ๊ฒ์
๋๋ค.
์ ์ 3์ ํ์ฌ ๋
ผ์ ์ค์ธ ๊ฒ์
๋๋ค. ๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ์ต์
์ ์ซ์ดํ์ง๋ง ๋ฌธ์ ์ ๋ํ ์๋ชป๋ ํด๊ฒฐ์ฑ
์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ helm install release-name https://remote-repo/chart
๋ฅผ ์คํํ ๋ ๋ฐ์ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค . ๋ฉํ๋ฐ์ดํฐ๋ ์์์ ์ด๋ฉฐ Helm์์๋ง ์ ์ง ๊ด๋ฆฌ๋ฉ๋๋ค.
์์ง ์๋ฌด๋ ์ ์ 4 ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์ ์ํ์ง ์์๋ค๋ ์ฌ์ค์ ์๋นํ ์ถฉ๊ฒฉ์ ๋ฐ์์ต๋๋ค. ์ด๋ appVersion์ ์ฌ์ ์ํ ์ ์๋ ์ํ๋ก ๋ง๋ค๊ณ ( helm run
์ ์ ์ฌํ ๊ฒ์ ํ์ฑํ) helm package
์ํด ์์ฑ๋ ํจํค์ง์ ํฌํจ๋ ์ ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ์ ๊ฐ๋
์ ์ง์ ์ผ๋ก ํ๋ฆฝ๋๋ค. appVersion
๊ฐ๋
์ ์กฐํ ์ฅ์น ๋ฐฐํฌ์ ๊ฒฐํฉํ๋ฉด์ ์ฐจํธ ๋ฒ์ ์์ ๊ฐ์ ธ์ต๋๋ค(appVersion์ด ์ด๋๊ฐ์ ๋ง์์ผ ํฉ๋๊น?).
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๐ ์ด๋ฒ ํ๋ณด.
@jrkarnes : ์ด๋ค ์๋ฏธ์์ 4)๋ ์ด๋ฏธ ์ ์๋์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค(https://github.com/helm/helm/pull/5492#issuecomment-517255692 ์ฐธ์กฐ). ์ฐจํธ ํ ํ๋ฆฟ์์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
{{ default .Values.appVersion .Chart.AppVersion }}
์ด๊ฒ์ ๋น์ ์ด ์ฌ์ฉํ ์ ์๋๋ก ํ appVersion
์์ Charts.yaml
๋ญ๊ฐ์ ๊ธฐ๋ณธ์ผ๋กํ๊ณ ์ฌ์ ์ Values.yaml
(์ ํ๋ฅผ ์ค์น / ์
๊ทธ๋ ์ด๋์ ๋ฌด์ ๋ ์์๋ค). ๋จ์ ์ ์๋ฅผ ๋ค์ด helm ls
์ํํ ๋ appVersion
์๊ฑฐ๋ ์๋ชป๋ ๊ฒ์ผ๋ก ํ์๋๋ค๋ ๊ฒ์
๋๋ค.
@BenjaminSchiborr ์ด์ ๋ํด helm
์์
๊ณต๊ฐ์ ์์์ผ๋ฏ๋ก ์ด ์์ ์์ ๋ชจ๋ ์ง์์ ์ข์ ์ง์ ์
๋๋ค.
๋ค ๋ฒ์งธ ์ ์์ด ์ฝ๊ฐ ์คํด๊ฐ ์์๋ ๊ฒ ๊ฐ์์. {{ default .Values.appVersion .Chart.AppVersion}}
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ๋์ {{ .Values.Helm.AppVersion}}
๋ฅผ ์ฌ์ฉํ๊ณ values.yaml
๋ appVersion
๋์ Chart.yaml
@jrkarnes
๊ทธ๊ฒ ๋ด๊ฐ ์ง๊ธ ์๊ฐํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด ์ฑ ๋ฒ์ ์ด ๊ณ ์ ํ ๋์ก์ด๋ก ์ทจ๊ธ๋์ด์ผ ํ๋ ์ด์ ์
๋๋ค. ์ฐจํธ์ ๊ฐ์
๋๋ค.
์ด์ ๋ ๊ฐ๋จํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ธํ๋ผ์ ์ผ๋ถ์ ๋๋ค. ๋ฐ๋ผ์ ์ธํ๋ผ์๋ ๋ฒ์ ์ด ์์ต๋๋ค. ์ ๋ ๊ฐ์ง ๋ฒ์ ์ ๋๊น?
๊ทธ๋ฌ๋ ๋๋ ๋๋ฌด ๋ฐ๋น ์ ์ฌ์ด๋ ์ผ์ด์ค์ ํ๋ก์ ์ ์ ๋ํด ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ์ง๋ฌธ์ ๋๋ค. ๊ฐ๋จํ ๋งํด์ ๋ชจ๋ ์ธํ๋ผ์ธ๋ฐ ์ฑ ๋ฒ์ ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋๋ Chart๊ฐ ์ธํ๋ผ ํ ํ๋ฆฟ์ผ ๋ ์ธํ๋ผ ๋ฒ์ ์ผ๋ก, ์ธํ๋ผ์ ์ฑ ๋ฒ์ ์ด ํฌํจ๋ ๊ฒฝ์ฐ ์ฑ ๋ฒ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๊น?
์กฐ๊ธ ๋ ์๊ฐํด๋ณผ๊ฒ
@jrkarnes
๊ทธ๊ฒ ๋ด๊ฐ ์ง๊ธ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฑ ๋ฒ์ ์ด ๊ณ ์ ํ ๋์ก์ด๋ก ์ทจ๊ธ๋์ด์ผ ํ๋ ์ด์ ์ ๋๋ค. ์ฐจํธ์ ๊ฐ์ ๋๋ค.์ด์ ๋ ๊ฐ๋จํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ธํ๋ผ์ ์ผ๋ถ์ ๋๋ค. ๋ฐ๋ผ์ ์ธํ๋ผ์๋ ๋ฒ์ ์ด ์์ต๋๋ค. ์ ๋ ๊ฐ์ง ๋ฒ์ ์ ๋๊น?
๊ธฐ๋ณธ์ ์ผ๋ก ์ฐจํธ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ๊ณผ ๋ณ๋๋ก ์ ์งํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ๋น ๋ฅธ ์๋ ์๋ง๋ ์ด๊ฒ์ด ์ฌ์ค์์ ์ฆ๋ช ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ผ ๊ฒ์ ๋๋ค.
ver 1.1.0
๋ฒ์ ์ ์ฐจํธ์์ ์คํ ์ค์ธ ver 4.0.0
์ ํ๋ฆฌ์ผ์ด์
์ด ๋ฐฐํฌ๋์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์์
ํ๋ ๋์ ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ cron ์์
์คํ์ ์์ํด์ผ ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ฉ๋๋ค. cronJob ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ํด๋ฌ์คํฐ์ ์ ์ฉํ๋ ๋์ ์ด ์ฐจํธ๋ฅผ ์คํํ๋ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ cron ์์
์ด ํ์ํ ์ ์์์ ๊นจ๋ซ๊ณ ์ฐจํธ์ ์ถ๊ฐํฉ๋๋ค. ์ด์ ์ฐจํธ๊ฐ ver 1.2.0
๋์์ง๋ง ์ฐจํธ๊ฐ ๊ด๋ฆฌํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉฐ ์ฌ์ ํ ver 4.0.0
์์ต๋๋ค.
๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ์๋ ์ ์ฉํ ์ ์์ผ๋ฉฐ ์ด๋ฏธ ์ด PR์์ ๋ ผ์์ ์ฃผ์ ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๋๋ฌด ๋ฐ๋น ์ ์ฌ์ด๋ ์ผ์ด์ค์ ํ๋ก์ ์ ์ ๋ํด ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ์ง๋ฌธ์ ๋๋ค. ๊ฐ๋จํ ๋งํด์ ๋ชจ๋ ์ธํ๋ผ์ธ๋ฐ ์ฑ ๋ฒ์ ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋๋ Chart๊ฐ ์ธํ๋ผ ํ ํ๋ฆฟ์ผ ๋ ์ธํ๋ผ ๋ฒ์ ์ผ๋ก, ์ธํ๋ผ์ ์ฑ ๋ฒ์ ์ด ํฌํจ๋ ๊ฒฝ์ฐ ์ฑ ๋ฒ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๊น?
์กฐ๊ธ ๋ ์๊ฐํด๋ณผ๊ฒ
์ฌ์ด๋ ์ผ์ด์ค๋ ํ๋ก์ ์
์ ๋ํด ์๊ฐํ๊ธฐ๋ณด๋ค ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์ง์๋๋ ์ธ ๊ฐ์ง ์์ง ๋ฒ์ ์ด ์๋ MySql๊ณผ ๊ฐ์ ๊ฒ์ ์๊ฐํด ๋ณด์ญ์์ค. [5.6, 5.7, 8.0]
. mysql
์ธ์คํด์ค๋ฅผ ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ๋ ค๋ฉด ํญ์ ๋ค์์ด ํ์ํฉ๋๋ค.
MySql 5.6, 5.7 ๋๋ 8.0 ๋ฐฐํฌ ์ฐจํธ๋ ๋ชจ๋ ์์ง(์ ํ๋ฆฌ์ผ์ด์ ) ๋ฒ์ ์์ ๋น๊ต์ ๋์ผ ํด์ผ ํฉ๋๋ค
์ฑ ๋ฒ์ ์ "ํ์"์ ๋ํด ๊ถ๊ธํดํ๋ ๊ฒ์ด ๋ฌด์จ ๋ง์ธ์ง ์๊ฒ ์ต๋๋ค. helm ls
๋๋ helm inspect
์คํํ ๋ ๊ฐ๋ฐ์ ๋๋ ์ด์ ํธ์์ ๋ฌ๋ ค ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@jrkarnes ๋ง์ง๋ง ๊ฒ์๋ฌผ์ +1. ์ฐจํธ ๋ฒ์ ์ด "์ธํ๋ผ ๋ฒ์ "์ด๊ธฐ ๋๋ฌธ์ ์ฐจํธ์ ์ฑ ๋ฒ์ ์ ๋ณ๋์ ๊ฐ๋ ์ผ๋ก ์ ์งํ๋ ๊ฒ์ ๋ง์ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋๋ก ์ฐจํธ๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ ์ฐจํธ์ ์์กดํ๋ ํ๋ก์ ํธ๋ฅผ ์ํ ์ธํ๋ผ์ ์ผ๋ถ๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ์ฌ๋์ด ์ฌ์ฉํ๋๋ก ํ ์๊ฐ์ด ์๋ค๋ฉด ์ฐจํธ ์์ฒด๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋๋๋ก ๋ด ์์ ์ ์ฐจํธ ๋ฒ์ ์ helm install last-known-good-chart-version
ํ์ฌ ๋ฐฐํฌ๋ฅผ ๋กค๋ฐฑํ๋ ๋์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ฌ CD ํ์ดํ๋ผ์ธ์ ๋ค์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์๋ ค์ง ์ํธํ ์ปค๋ฐ ID.
@iorlas helm run
๋ํ ๊ทํ์ ์ ์์ ์ฝ์ ์ผ๋ฉฐ ๊ทธ๊ฒ์ ๋ํด ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ค์น/์คํ ์ด๋ถ๋ฒ์ ๊ฐ์ง ํ์ ๋ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ฑ ๋ฒ์ ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋ฐ ์์ด ํค ์ ์ง ๊ด๋ฆฌ์์ ๋ง์์ ํธ์ํ๊ฒ ํด์ค๋ค๋ฉด ์ ๋ ๊ด์ฐฎ์ต๋๋ค. :)
@iorlas ์ด ์ ์์ผ๋ก ๋ฌด์์ ํ๊ณ
{{ default .Values.appVersion .Chart.AppVersion}}
์ ๊ด๋ จ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ค๋ฅ: YAML์ JSON์ผ๋ก ๋ณํํ๋ ์ค ์ค๋ฅ ๋ฐ์: yaml: ์๋ชป๋ ๋งต ํค: map[interface {}]interface {}{".Values.appVersion | default \"0.0.1\"":interface {}(nil)}[
๋ด Chart.yaml์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
name: demo-helm
version: 0.0.1
appVersion: {{ .Values.appVersion | default "0.0.1" }}
home: http://example.com
description: Demo Helm
@IRobL ์ด ์ค๋ํซ์ templates/deployment.yaml
์ ๋ฃ์ด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ version์ด ์ฌ์ฉ๋ฉ๋๋ค. values.yaml
์ ๊ฐ์ ํ์ผ์ ํ
ํ๋ฆฟ์ผ๋ก ์ทจ๊ธ๋์ง ์์ต๋๋ค.
@jrkarnes ์ ๋ ๋ฉ์ธํ
์ด๋๊ฐ ์๋๋ฏ๋ก ๋ง์ง๋ง ๋ง์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ๊ฒ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ ์ง๋ ๋ช ์ฃผ ๋์ ๋๋ ๊ฝค ๋ฐ๋นด์ต๋๋ค. ๋ค์ ์ฃผ์ ์ ๋ helm
๋ฐ packages
๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ์ฌ ์ ๊ทผ ๋ฐฉ์์ ์ฌํ๊ฐํ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ ๋ด๊ฐ ์ค๋ช ํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
Helm Chart
๋ ์ฑ ์ ์ฅ์์ ์ผ๋ถ์
๋๋ค.install
ํจํค์งํ์ฌ ์ฐ๋ ค ์ฌํญ:
helm package
) ์์ฑgo build
/ make install
๊ฒฐ๊ณผ ํ์ผ ์ธ์ ํ์ํ ์ฃผ์ ์ด์ ๋ ๋ฌด์์
๋๊น?๊ทธ๋ฌํ ์ฌํ๊ฐ๋ ์ถ๊ฐ์ ์ธ ๋จ์ํ์ ์์ด๋์ด๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ณผ ๊ฒ์
๋๋ค :)
๋ค์์ฃผ ๊ธ์์ผ์ ์
๋ฐ์ดํธ๋ฅผ ๋ณด๋ด๋๋ฆฌ๊ฒ ์ต๋๋ค.
์, ๋น์ ์ด ์ ๋ฅผ ์ํด ์ด๊ฒ์ ์ง์ ํด ์ฃผ์ ์ ์ ๊ทธ ํธ๋ฆญ์ด ์๋ํ์ง ์๋์ง ์๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๋ค์์ ์ด๋ฌํ ์ข ๋ฅ์ ์ค๋ฒํค๋ ์กฐ๊ฐ์ผ๋ก helm ๋๊ตฌ๋ฅผ ๊ฐ์ธ๋ ๊ฒ์ด ํธํ๋ค๊ณ ๊ฐ์ ํ ๋ Helm 2.x๋ฅผ ์ฌ์ฉํ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ์๋ํ๋ค๊ณ ์๊ฐํ๋ ํธ๋ฆญ์ ๋๋ค.
APP_VERSION=0.0.7
sed -i.bak "s/^appVersion:.*\\\$/appVersion: $APP_VERSION/" helm/Chart.yaml
helm install --name helm_demo helm/
@IRobL
์ผ๋ฐ์ ์ผ๋ก ๋ฐฐํฌ๋ฅผ sed๋ก ๋ํํ๋ ๊ฒฝ์ฐ ํ ํ๋ฆฟ ์์ง์ด ํ์ํ ์์ ์ ์ํํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ ์ด๊ฒ์ด ์ด ๋ ผ์์ ์์ ์ ๋๋ค.
gitlab์ด ์ด๊ธฐ ๋จ๊ณ์ ์๊ณ ์กฐํ ์ฅ์น๋ฅผ ์ง์ํ์ง ์์์ ๋ ์ฐ๋ฆฌ๋ ๋ง ๊ทธ๋๋ก ์์ผ๋ก ๋ง๋ ๋งค๋ํ์คํธ ํ์ผ์ ๋์ฒด ๋์์ ๊ฐ์ ์ ๋ ฅํ์ต๋๋ค.
์ด์ ๊ฐ์ ์ผ์ ๋ํ ๋์ ์ต๊ด์ด๋ฉฐ ๊ฐ๋ฅํ๋ฉด ์ด๋ฅผ ๋ฉ๋ฆฌํ ๊ฒ์ ์ด๊ตฌํฉ๋๋ค.
2019๋ 10์ 7์ผ ์คํ 3์ 33๋ถ์ IRobL [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์, ๋น์ ์ด ์ ๋ฅผ ์ํด ์ด๊ฒ์ ์ง์ ํด ์ฃผ์ ์ ์ ๊ทธ ํธ๋ฆญ์ด ์๋ํ์ง ์๋์ง ์๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๋ค์์ ์ด๋ฌํ ์ข ๋ฅ์ ์ค๋ฒํค๋ ์กฐ๊ฐ์ผ๋ก helm ๋๊ตฌ๋ฅผ ๊ฐ์ธ๋ ๊ฒ์ด ํธํ๋ค๊ณ ๊ฐ์ ํ ๋ Helm 2.x๋ฅผ ์ฌ์ฉํ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ์๋ํ๋ค๊ณ ์๊ฐํ๋ ํธ๋ฆญ์ ๋๋ค.
์ฑ_๋ฒ์ =0.0.7
sed -i.bak "s/^a ppVersion:. *\\$/appVersion: $APP_VERSION/" helm/Chart.yaml
helm ์ค์น --name helm_demo helm/
โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ๋ณด๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ธ์.
@jrkarnes , ๋์ ์ต๊ด์ด๋ผ๊ณ ํ๋ฉด helm
๋ช
๋ น์ ์คํฌ๋ฆฝํ
์ผ๋ก ๊ฐ์ธ์ผ ํ๋ ๊ฒ์ด ๋ฐ๋์งํ์ง ์๋ค๋ ๋ง์์ด์ ๊ฐ์? ๊ทธ๋ ๋ค๋ฉด ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. --app-version
ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋ฐ๋ํ๋ค๋ ๋ง์ ์๋๋๋ค. ๋ฐ๋๋ก ๋๋ ๊ทธ๊ฒ์ด ์กฐํ ์ฅ์น์ ๋งค์ฐ ํธ๋ฆฌํ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ถ๋ช
ํ ์ด PR์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ฐฐํฌ๋๋ ์ค์ ๋น๋์ appVersion ๋ณ์๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๋ ค๋ helm์ ์ฌ์ฉํ๋ ์ ์ผํ ์ฌ๋์ ์๋๋๋ค. ๋๋ ์ฌํ ๊ฐ๋ฅํ ๋น๋๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ค์ํ ๋น๋ ๋๊ตฌ๋ฅผ ํจ๊ป ๋ํํ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋น๋ ํ์ดํ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋๊ท๋ชจ ๊ธฐ์ ์กฐ์ง์ ์ผ๋ฐ์ ์ธ ๊ดํ์
๋๋ค. ๋ด ์ฌ์ฉ์ ๊ฒฝ์ฐ, ํ์ดํ ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐํ์ ๊ณ ์ ํ์๊ธฐ ์ฉ๊ธฐ๋ฅผ ๊ตฌ์ถํ๊ณ , ๊ถ๊ทน์ ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๋น๋ ํ์ดํ ๋ผ์ธ์์ ํฌ๊ตฌ๋ฅผ ํตํด ๊ทธ๋ค์ ๋ฐฐํฌ (์๋ฅผ ๋ค์ด, ์์ฉ ํ๋ก๊ทธ๋จ ๋ฒ์ ๊ณ ๋ ค 1.0.1-pr-3.1
์ ์ธ ๋ฒ์งธ PR์ ์ฒซ ๋ฒ์งธ ๋น๋๋ฅผ ๋ฒ์ 1.0.1์ ์ํํ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฑ).
์ด ๋ฌธ์ ๊ฐ ์ฐ๋ฆฌ ํ์ฌ์ ๋น๋ ํ์ดํ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํด๊ฒฐ๋ ํ์๋ --app-version
์ค์์น๊ฐ Helm์ ๋ด์ฅ๋์ด ์์ผ๋ฉด ํ์คํ ๋ ํธํ ๊ฒ์
๋๋ค. ๋ฐฐํฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ ์ ์ฐํ ๋ฐฉ๋ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๋ด ๋ง์, ์ค์๋ก ์ซ์๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค ์ ์๋ ๋น๋ ํ๋ซํผ์์ ์๋ํํ ์ ์๋ค๋ฉด ์ ์ธ๋ถ ์์คํ
์ด๋ ์์ง๋์ด๊ฐ ์ฐจํธ ํ์ผ๋ก ์ด๋ํ์ฌ ๋ชจ๋ ๋ฐฐํฌ ์ ์ yaml์ ์
๋ฐ์ดํธํด์ผ ํฉ๋๊น? ๋ด ๊ด์ ์์ ๋ณด๋ฉด appVersion ๊ธฐ๋ฅ์ ์ฐ๋ฆฌ ์กฐ์ง์์ ์์ ํ ํฌ๊ธฐํด์ผ ํ๊ฑฐ๋ "์์ฑํ" sed
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํ์ดํ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋์ ์ถ๊ฐํด์ผ ํ๋ฏ๋ก ๊ณต์ ํ ์๊ฐ์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ค๋ฅธ ์ฌ๋.
@IRobL
์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ์ ํธ๋ฆฌํฐ๋ ์์ฒด ์ถ์ํ ์์ค์์ ์๊ธ์์กฑํด์ผ ํฉ๋๋ค. ์ถฉ๋ถํ API๋ฅผ ์ ๊ณตํ์ฌ ํด๊ฒฐํ๋ ๋ฌธ์ ๋ฅผ ์ถ์ํํด์ผ ํฉ๋๋ค. ํฌ๊ตฌ๋ ์์ธ๋ ์๋๋ค. ๋ฐ๋ผ์ ์๋ ๋ฐฉ์์ ์ฌ์ฉ์ ์ ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋จผ์ ์ง๋ฌธํด์ผ ํฉ๋๋ค. ์ํคํ
์ฒ, ๋์์ธ ์์น๊ณผ ์ผ์นํ๋์ง ์๋๋ฉด ๋ด๊ฐ ๋์น ๋ถ๋ถ์ด ์์ต๋๊น?
์ด PR์ด ๊ทธ๋ ๊ฒ ์ฝ๊ฒ ํด๊ฒฐ๋์ง ์์ ์ด์ ์ ๋๋ค. ์์ ์ ๋ถ๋ช ํ์ง๋ง Helm ๋์์ธ๊ณผ ์ผ์นํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ ์๋ฃจ์ ์ด ๊ฑฐ์ ์ ๊ณต๋์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋น์ ์ app-version
ํ๋๊ทธ์ ๋ํด ์ณ์ต๋๋ค. ์ ๊ณตํด์ผ ํ๋ฉฐ Helm์ ๋ชจ๋ ๊ฒ์ ์์ฒด์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ง๋ฌธํด๋ ๋ ๊น์? ์ ํ์์ Helm์ ์ด๋ป๊ฒ ํ์ฉํฉ๋๊น? helm install
๋ฅผ ์ฌ์ฉํ ๋? ์ ํํ ์ด๋ป๊ฒ ์ฌ์ฉํฉ๋๊น? helm package
์ฌ์ฉ์ ๊ณ ๋ คํด ๋ณด์
จ์ต๋๊น?
์ด์ ๋ฐค์ helm package
๋ค์ ์ดํด๋ณด์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ํด ์ ๋ง๋ก ํ๋ฆฌ์ง ์์๋ค. sed
์ ๋งค์ฐ ์ค๋ซ๋์ ์ฌ์ฉ๋์ด ์์ผ๋ฉฐ ๋งค์ฐ ์์ ์ ์
๋๋ค. ์ด๋ฌํ ๋ชจ๋ tiller
/ package
/ install
ํ์ ๋ช
๋ น์ ์๋์ ์ผ๋ก ์๋กญ๊ณ ๋ ์์ ์ ์
๋๋ค. ๋ด ์์ ์ ๋ช
ํํ ํ๊ธฐ ์ํด ๋ช ๋ฌ ์ ์ ๋๋ Tiller์ ํ์์ฑ์ ์ฐํํ๋ ๋๊ตฐ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ๋ณด์์์๋ ๋ถ๊ตฌํ๊ณ "๋ถ๋ช
ํ Tiller๊ฐ ํด๊ฒฐ๋ ์ ์๋ค"๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ๋๋ ํ๋ฌ๊ทธ์ธ์ ๋ ์ฃผ๋ฅ๊ฐ ๋์ด์ผ ํ๋ ๊ฒ์ผ๋ก ๋ณด์์ง๋ง ๊ทธ ์ดํ๋ก ์ค์ค๋ก๋ฅผ ๊ฑท์ด์ฐจ๊ณ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋ฏฟ์๋๋ผ๋ฉด ์ง๊ธ๋ณด๋ค ํจ์ฌ ๋ ๋์ ์์น์ ์์์ ๊ฒ์
๋๋ค. Helm์ ์ ์ง ๊ด๋ฆฌ์๋ ์ ์ง ๊ด๋ฆฌํ ์ ์๋ ๋์์ธ์ด๋ฉฐ ํฅํ ๋ฆด๋ฆฌ์ค์์ ์ฌ๋ผ์ง ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํ์ต๋๋ค.
์ด๋ฌํ ๊ฐ๋จํ sed ์์
์ ์ํํ๊ธฐ ์ํด helm package
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ค์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์จ๋ package
์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฌด์์
๋๊น? ๋๋ helm package
์ ์ ์ฒด ๊ฐ๋
์ด ์น 2.0/๋ฒ์ ์ ์ด ๋ฆด๋ฆฌ์ค์ ์์ ์ ๋์น๋ ๊ฒ์ฒ๋ผ ๋๋๋๋ค. ํ๋ ๊ธฐ์ ๊ทธ๋ฃน์ด ๋์ผํ ํ๋ก์ธ์ค๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ํ๊น
์ ํ์ ํ์ฉํ๊ณ ์์ ๋ ์ฒ์์๋ ๋ฐ์ด๋๋ฆฌ zip์ผ๋ก ํจํค์งํจ์ผ๋ก์จ ๊ทธ๋ฌ๋ ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐ์ฌ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก.
์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ ์ฑ ๊ฐ๋ฐ์๊ฐ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋ํํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํ ์ ์๋๋ก ํ๊ณ ์์ผ๋ฏ๋ก ์ค๋ฒํค๋(์ด์/๊ฒฝ์ ์์คํ ๊ด๋ฆฌ์, ์ค๋ณต ๋ฆด๋ฆฌ์ค ์ํฐํฉํธ ๊ด๋ฆฌ ๋ฑ)๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋ด ์ฌ์ฉ๋ฒ์ ๊ฐ์ฅ ์ํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ์ ์ ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋๊ตฌ(์: sed)๋ก ์ ํํ๋ ์ ๋์ค ์ฒ ํ์ ๋ ๋ฐ์ ํ๊ฒ ๋ฐ๋ฅธ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ ์๋ฒฝํ๊ฒ ์ํํ ์ ์๋ ํ๋์ ๋๊ตฌ๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ํ์ฌ ์์ ํ๋ฆ์ ๋ง์กฑํ๋ค๋ฉด ์์ ์ ์ฒ ํ์ ๋ฐ๋ฅด๋ ๊ฒ์ ๋จ๋ ํ์ง ๋ง์ญ์์ค.
@IRobL
๋์ ์ต๊ด์ด๋ผ๊ณ ํ๋ฉด helm ๋ช ๋ น์ ์คํฌ๋ฆฝํ ์ผ๋ก ๊ฐ์ธ์ผ ํ๋ ๊ฒ์ด ๋ฐ๋์งํ์ง ์๋ค๋ ๋ง์์ด์ ๊ฐ์?
์. ์ด๊ฒ์ ์ ํํ๊ฒ.
๋ด ์ฌ์ฉ ์ฌ๋ก์์ ํ์ดํ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ปค ์ปจํ ์ด๋๋ฅผ ๋น๋ํ๊ณ ๊ฒ์ํ๊ณ ๊ถ๊ทน์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ ํ์ดํ๋ผ์ธ์์ helm์ ํตํด ๋ฐฐํฌํฉ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ํ๊ณ ์๋ ์ผ์ด๊ธฐ๋ ํฉ๋๋ค.
์ฐ๋ฆฌ ํ์ฌ์ ๋น๋ ํ์ดํ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ์๋ Helm์ --app-version ์ค์์น๊ฐ ๋ด์ฅ๋์ด ์์ผ๋ฉด ํ์คํ ๋ ํธํ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ ํ ๋จ๊ณ ๋ ๋์๊ฐ appVersion
๊ฐ Chart.yaml
ํ์ผ์ ์์ฑ์ด ๋๋๋ก ํ๋ ๊ฒ์ด ์๋ง๋ ์ฌ๋ฐ๋ฅด์ง ์๋ค๊ณ ๋งํ ๊ฒ์
๋๋ค. ๊ฐ์ ์ฆ์์์ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒฝ์ฐ "๋ถ๋ณ ๊ฐ ์งํฉ"์ผ๋ก ๊ฐ์ฃผ๋์ง ์์์ผ ํฉ๋๋ค. ๋๋ ์ด์ ์๊ฒฌ์์ ๊ฐ์ ๊ฒ์ ์นํธํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฌํ ๋ชจ๋ tiler/package/install ํ์ ๋ช ๋ น์ ๋น๊ต์ ์๋กญ๊ณ ๋ ์์ ์ ์ ๋๋ค.
FWIW, Tiller
๋ Helm 3์์ ๋ค๋ฃจ์ง ์์ ๊ฒ์
๋๋ค. ๋น์ ์ ๋์ค์ ๋น์ ์ ํฌ์คํธ์์ ์ด๊ฒ์ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ฌ๋ "kubernetes ๋ฐ์ด๋๋ฆฌ"๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ Tiller
๋ก ๋ฐฐ์กํ๋ helm package
๊ตฌ๋ฌธ์ด ์๋ง๋ ๋์ ์ต๊ด์ผ ์ ์์์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ณตํฉ๋๋ค.
์ด๋ฌํ ๊ฐ๋จํ sed ์์ ์ ์ํํ๊ธฐ ์ํด helm ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ด ์ค์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์จ๋ ํจํค์ง์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น?
๋๋ ์๋ง๋ ์ด๊ฒ์ ๋ํด Helm ํ์ ์นํธํ ์ ์์ ๊ฒ์
๋๋ค. ๋ด๊ฐ ์ฃผ๋๊ถ์ ์ก์ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ๊ฐ Kubernetes ๋ด๋ถ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ๋ฐ๋ฅด๊ฒ ์คํ ํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
๊ณต๊ธ์๋ ๋ฐฐํฌ์ ์ฃผ์ด์ง ๋ฒ์ ์ ๋ค์ด๋ก๋ํ๊ธฐ ์ํด ์ถ๊ฐํ ์ ์๋ ์์ฒด Helm ์ ์ฅ์๋ฅผ ์คํํฉ๋๋ค. Helm ํ์ ์๋ํ ๋์ ํ๋ก๋์
ํ์ด CI/CD์์์ ๊ฐ์ด ์ผ์์ ์ธ ์ํฌํ๋ก์์ Helm์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋์ ์ธํ๋ผ ์ฝ๋๊ฐ ์๋ก ์ฝํ ์๋ ๊ฒ์ผ๋ก ๋ณด์์ ๊ฒ์
๋๋ค. ์: ์ฐ๋ฆฌ๋ ํ๊ท ์ ์ผ๋ก ํ๋ฃจ์ helm upgrade
130๋ฒ ์ฌ์ฉํฉ๋๋ค. ์๋๋ ์ฉ๋๋ ์๋ ๊ฒ ๊ฐ์์.
์๋ง๋ ์ฌ๋๋ค์ด "๋๋ mysql์ kubernetes์ ์ค์นํ๊ณ ์ถ์ต๋๋ค"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ผ๋ฐ์ ์ด์๊ณ helm์ kubernetes์ ๋ํด ๊ฑฐ์ ์์ง ๋ชปํ๊ณ ๊ทธ๋ฅ ๊ฐ์ง๊ณ ๋ ธ๋ ์ฌ๋๋ค์ ์ํด (์๋์ ์ผ๋ก) ์ฌ์ด ๋ฐฉ๋ฒ์ด์์ต๋๋ค.
๋ฐ๋ผ์ helm package
๋ ๊ถ๊ทน์ ์ผ๋ก _๊ทธ ์ฒญ์ค_์ด ์๋นํ๋๋ก ์๋๋์์ต๋๋ค. ์ด ๋๊ตฌ๋ ํ(๋ด ์๊ฐ์)์ด ๋๊ตฌ๋ฅผ ์ ํํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ฑฐ๋ ์๋๋๋ก ์ฌ์ฉํ ์๋๊ฐ ์ ํ ์์๋ ์์ญ์์ ํจ์ฌ ๋ ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
๋ด ์ฌ์ฉ๋ฒ์ ๊ฐ์ฅ ์ํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ์ ์ ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋๊ตฌ(์: sed)๋ก ์ ํํ๋ ์ ๋์ค ์ฒ ํ์ ๋ ๋ฐ์ ํ๊ฒ ๋ฐ๋ฅธ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก awk
์ฒ๋ผ Helm์ kubectl apply -f
๋ค์์ ์ฒ๋ฆฌํฉ๋๋ค. ์ธ์ ์ค๋ฅ๋ฅผ ํผํ๊ธฐ ์ํด ์๋ํ๋ ๋๊ตฌ๊ฐ ๊ฐ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ๊น๋ํฉ๋๋ค.
๋น์ ๊ณผ ๋๋ ๊ฐ์ ๊ฐ์น๊ด์ ๋ง์ด ๊ฐ๊ณ ์๊ณ ๋น์ทํ ์ผ์ ๋ง์ด ํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@IRobL
๊ฒฝ์ด๊ธฐ
์ ์๊ฒ tiller
๋ ํ์ฉ๋์ง ์์ต๋๋ค. ๋
ธ์ถ ์ง์ ์ด ํ๋ ๋ ์ถ๊ฐ๋๊ณ ๋ณด์ ์ํ์ด ์ถ๊ฐ๋๊ณ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ค๋ฅธ API๋ฅผ ์ฌ์ฉํ์ฌ yaml ํ์ผ์ ์ ์ฉํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ง๋๋ ๊ฒ๋ฟ์
๋๋ค. Tiller๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ฉํ๋ Helm ํจํค์ง๋ฅผ ๋ณดํธํ๊ณ ์ ๋ ฌํ๋๋ก ์ค๊ณ๋์์ง๋ง ์ํ์ด ๋๋ฌด ๋ง๊ณ ์ถ๊ฐ ์ํํธ์จ์ด(๋ฐ ๋ฒ์ ๊ด๋ฆฌ)๊ฐ ์์ต๋๋ค. ๊ทธ๋์ Helm 3rd์์๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ด๋ฌํ ๊ฐ๋จํ sed ์์ ์ ์ํํ๊ธฐ ์ํด helm ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ด ์ค์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ด ์์ ์ ๋์น๊ณ ์๋ ๊ฒ ๊ฐ์์. ๋ค์ ์๋ํ๊ฒ ์ต๋๋ค. sed
๋ ๋ฌด์์ ์ํด ๋ง๋ค์ด์ก์ต๋๊น? ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋ณํํฉ๋๋ค. ๋ณํ ๋ฌธ์ ๋ฅผ ์ถ์ํํ์ฌ ์ฃผ์ด์ง ์
๋ ฅ์ ๋ํ API์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
sed
๋ช
๋ น์ด ์๋ํ์ง ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ ๊ฒฝ์ฐ(์ฆ, ์ ๊ท์์ ์ค์๊ฐ ์๋ ๊ฒฝ์ฐ)? ๊ทธ๋์ ๋น์ ์ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ง๋ง ์๋ํ์ง ์์ต๋๋ค. sed
๊ฐ ์์ฒด์ ์ผ๋ก ์๋ํ์ง ์๋ ์ด์ ๋ฅผ ์ดํดํ๋ ค๊ณ ํฉ๋๊น, ์๋๋ฉด ํ ์คํฌ๋ฆฝํธ๋ก ํ์ดํ๋ฅผ ํ๋ ์ถ๊ฐํ์๊ฒ ์ต๋๊น?
๋ชจ๋ ์๋ฃจ์ ์ด ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. API๋ฅผ ์ ๊ณตํ๊ณ , ์ ๋ ฅ์ ๋ฐ๊ณ , ์ถ๋ ฅ์ ์ ๊ณตํด์ผ ํ๋ฉฐ, ํ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ์ถ์ํํด์ผ ํฉ๋๋ค. ์ ๋์ค ์คํ์ผ์ ๋๋ค.
Helm์ ํฌ์ํ์ฌ ๋ฆด๋ฆฌ์ค ๋ฒ์ ์ ์ง์ ํ๊ณ K8์ ํธ์ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๋ฅผ ๊ด์ฐฐํ๊ณ ์๋ ๊ฒฝ์ฐ ๋ฒ์ ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. Helm์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๊ฐ๋จํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๊ณ ๋น๋ ์๋ ๋ฐฉ์์ ์ฌ์ฉ์ ์ ์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ ์ถ๊ฐ ์ํํธ์จ์ด๋ก ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ๋ ๋์ ์๋ ๋ฐฉ์์ ์ดํดํ๋ ค๊ณ ํ์ง ์๊ฒ ์ต๋๊น?
@jrkarnes
์, ์ฐ๋ฆฌ ๋ ๋ค ๋น์ทํ ๊ด์ฌ์ฌ๋ฅผ ์ผ๋์ ๋๊ณ ์ฃผ๋๊ถ์ ์ ๊ทผํ๊ณ ์์ต๋๋ค. package
๋ช
๋ น์ ๋ฟ๋ฆฌ๊ฐ ํธ๋ฌ๊ฐ ๋ง๋ ์ค์์ ์ฝํ ์๋ค๋ ์ฌ์ค์ ์ ํ ๊นจ๋ซ์ง ๋ชปํ์ต๋๋ค. ์ด๋ฌํ ํต์ฐฐ๋ ฅ์ ์ ์ ๊ณต์ ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค!
๊ทธ๊ฒ์ ์ด๋ฏธ ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก์ด ๊ธฐ๋ฅ์ ๋ฐฉ๊ธ ์ถ๊ฐ๋์ง ์๋ ์ด์ ์ ์ญ์ฌ๋ฅผ ๊ฒํ ํ๊ณ ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค ์ด์ ์ ๋ ๊ฐ์ ์ธ์๋ฅผ ๋ณด์๋ค, ์ฌ๋ ์ด์๋ค๋ ๊ฒ์ package
๊ทธ๋ค์ ๋ํ ์ install
/ upgrade
์๋ ์ ์ํด์ผ ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ํด ๊ณต๊ฐํฉ๋๋ค. ์ด๊ฒ์ ๊ธฐ์ ๋ถ์ฑ ๋ฌธ์ ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ธฐ์ ๋ถ์ฑ๊ฐ ์๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ํํธ์จ์ด๋ ์์ต๋๋ค. ๋ค๋ฅธ ์ด์ ๋ Chart.yml ํ์ผ์ด ๋ฉํ๋ฐ์ดํฐ์ด๊ณ ์
๋ฐ์ดํธ๋์ด์๋ ์ ๋๋ค๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ๊ฒ์ ๋๋ฅผ ์ด์ํ๊ฒ ์๊ฐํ์ต๋๋ค... ์ฌ๋๋ค์ด ์กฐํ๋ ฅ ์ฐจํธ๋ฅผ ๊ฐ๋ฐํ ๋, ํ์คํ ๊ทธ๋ค์ ์ํฉ์ด ๋ณํ ๋ ์๋์ผ๋ก ๊ทธ ํ์ผ์ ์
๋ฐ์ดํธํ๋ฏ๋ก ๊ทธ ์์ฒด๊ฐ ๋ถ๋ณํ์ง ์์ต๋๋ค. ๋์กฐ์ ์ผ๋ก ์ค์ ๋ก ๋ณ๊ฒฝํ ์ ์๋ ๋ฐฐํฌ ๊ฐ์ฒด๋ฅผ ๋น๋ํ ๋ helm ๋ฐ์ด๋๋ฆฌ์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ผ๋ก Chart.yml ํ์ผ์ ๋ณด๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.
๋น๋ ํ๋ซํผ์ ๋ฌด์์ ๋๊น? ๋ด๊ฐ ์์ฑํ๋ ํ์ดํ๋ผ์ธ ์ฝ๋๋ Jenkins๋ฅผ ์ํด ๊ธ๋ก๋ฒ ํ์ดํ๋ผ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ฑ๋์์ต๋๋ค.
@IRobL ํต์ฌ ๋ฌธ์ ๋ Helm์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ก ๋ณด๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ํฌ๋ฆ์ ๊ทธ๋ ์ง ์์ต๋๋ค. Helm์ ์ถ์ํ ๊ณ์ธต์ ๋๋ค. Helm์ ๋ชจ๋ ์ํฐํฉํธ๋ฅผ ๊ฐ์ ธ์ ํ๋์ ์์ ๋จ์๋ก K8์ ํ๋ซํผ์ผ๋ก ์ ์ฉํฉ๋๋ค.
Helm์ ํฌ์ฅ์ ์ฒด์ ๋๋ค. Helm์ ๋ฐฐํฌ๊ฐ ์ฉ์ดํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ํฐํฉํธ์์ "์ค์น ํ๋ก๊ทธ๋จ"์ ์์ฑํ๋ฏ๋ก OS - K8์ "์ค์น"ํ ์ ์์ต๋๋ค.
app-version
์์ install
๊ธฐ์ ๋น๊ณผ๋ ์๋ฌด ์๊ด์ด ์์ต๋๋ค. install
๋๋ upgrade
์ ์ํ ๋ ์ ํ ํ์ํ์ง ์์ต๋๋ค. Chart.yml
์
๋๋ค. ์ค์ ์ฐจํธ ๋ฒ์ ์ด ํฌํจ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ ํ์ผ์ด์ง๋ง ์ฐจํธ๋ ์ํํธ์จ์ด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ ํ ๋ณ๊ฒฝํด์๋ ์ ๋ฉ๋๋ค. ๋น์ ์ ๋จ์ง ๊ทธ๊ฒ์ ์๋ชป ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฐ ๊ด์ ์์ ์ package
์ฌ์ฉ์ ๊ณ ๋ คํ์ง ์์ต๋๊น? ๋๋ฌด ๋ณต์กํด ๋ณด์ด์ฃ ?
์ด ๋ฌธ์ ์ ๋ํ ๋ฃจํ์์ ์ ์ ๋ฒ์ด๋ฌ์ง๋ง ์ด๋ฐ ์ข ๋ฅ์ ์์ ์ด ๋ช ๋ฒ ๋ฐ์ํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
Helm์ ํฌ์ฅ์ ์ฒด์ ๋๋ค. Helm์ ๋ฐฐํฌ๊ฐ ์ฉ์ดํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ํฐํฉํธ์์ "์ค์น ํ๋ก๊ทธ๋จ"์ ์์ฑํ๋ฏ๋ก OS - K8์ "์ค์น"ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Helm์ _์ด๋ค ์์ผ๋ก๋ _ ์ค์น ํ๋ก๊ทธ๋จ์ ์์ฑํ์ง ์์ต๋๋ค. "๋ฐ์ด๋๋ฆฌ"๋ฅผ ์์ฑํ์ง ์์ต๋๋ค. ".deb" ํ์ผ์ด๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์์ฑํ์ง ์์ต๋๋ค. ์ผ๋ถ ๊ธฐ๋ณธ๊ฐ ๋ฐ/๋๋ ์ฌ์ ์ค์ ๊ฐ์ ์ฌ์ฉํ์ฌ Kubernetes ๋งค๋ํ์คํธ์ ์ผ๋ถ ํ ํ๋ฆฟ ์์นด์ด๋ธ๋ฅผ ์์ฑํฉ๋๋ค. ์ค์ ์ํํธ์จ์ด๋ ํด๋น Helm ์ฐจํธ์ ์กด์ฌํ์ง ์์ต๋๋ค. ํจ๊ป ํฌ์ฅ๋์ด ์์ง ์์ต๋๋ค. ๋ถ๋ณ์ฑ์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ Helm ์ฐจํธ๊ฐ Chart๋ฅผ ํตํด ๋ฐฐํฌํ๋ ์ํํธ์จ์ด๋ณด๋ค _lot_ ์ ๊ฒ ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ๊ณต์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ด --app-version
๊ฐ helm install
๋ฐ helm upgrade
์ฌ์ฉ ๊ฐ๋ฅํ ๊ทผ๋ณธ์ ์ธ ์ด์ (์ ์ด๋ IMO)์
๋๋ค. ๋ง ๊ทธ๋๋ก ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ฐจํธ๋ฅผ ๋ค์ ํจํค์งํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋๋ Helm Chart๋ฅผ Kubernetes ๋งค๋ํ์คํธ์ ๋ํ ๋ฒ์ ์ค๋ช ์ผ๋ก ๋ณด๊ณ ์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๊ณต์ ์ผ๋ก ์คํํ Kubernetes ๊ตฌ์ฑ ์์ ์ธํธ๋ฅผ ์ค๋ช ํฉ๋๋ค. ๊ทธ๊ฒ ์ ๊ฐ ๋ณด๋ ์ ๋ถ์ ๋๋ค. ์ด ์ง์นจ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฐจํธ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์ถ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค๊ฐ ์๋๋ผ ์ด๋ฏธ์ง ๋ฒ์ (์ด์จ๋ ๊ฐ์ ํตํด ์ค์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์)๋ง ์ ๋ฐ์ดํธํ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Flux์ Helm Operator๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด์ญ์์ค. ์ด๋ฏธ์ง ํ๊ทธ ๊ฐ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ๋๋ก ํ ์ ์์ต๋๋ค. ์ฐจํธ๋ ์ ๋ฐ์ดํธํ์ง ์๊ณ ๋ฐฐํฌ ์ค์ธ ์ด๋ฏธ์ง ํ๊ทธ๋ง ์ ๋ฐ์ดํธํฉ๋๋ค.
์ผ๋ถ ๊ธฐ๋ณธ๊ฐ ๋ฐ/๋๋ ์ฌ์ ์ค์ ๊ฐ์ ์ฌ์ฉํ์ฌ Kubernetes ๋งค๋ํ์คํธ์ ์ผ๋ถ ํ ํ๋ฆฟ ์์นด์ด๋ธ๋ฅผ ์์ฑํฉ๋๋ค.
๊ทธ๋ฌ๋ deb ํ์ผ์ ๊ตฌ์ฑ ํ์ผ, ๋ช ๋ น, ๋งค๋ํ์คํธ ๋ฐ/๋๋ ์ฌ์ ์ค์ ๊ฐ์ ๋์ผํ ์งํฉ์ ๋๋ค. MSI ์ค์น ํ๋ก๊ทธ๋จ๊ณผ ๋์ผํ๊ฑฐ๋ ์ ํ ์ด๋จธ์ง ํจํค์ง ์์คํ ์ ebuild์ ๋ ๊ฐ๊น์ต๋๋ค. ๋ํ Brew ํจํค์ง์ ๋์ผํฉ๋๋ค.
K8์ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์๋ ๊ฒฝ์ฐ Helm์ ๋ฌด์์ ๋๊น? ๋น์ ์ด ๋ณด๋ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
๋ถ๋ณ์ฑ์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
์ ์ ๋ผ? ํจํค์ง ์์ฑ ํ ํจํค์ง๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋ชป๋ ๊ฒ์
๋๋ค. install/upgrade
ํ๋ก์ธ์ค ์ค์ ์ถ๊ฐ ์ต์
์ ์ ๊ณตํ๋ฉด ๋ชจ๋ ํจํค์ง ์์คํ
์์์ ๊ฐ์ด ์๋๋ ๊ฒ์
๋๋ค.
Kubernetes ๋งค๋ํ์คํธ์ ๋ฒ์ ์ค๋ช ์ผ๋ก Helm ์ฐจํธ๊ฐ ํ์๋ฉ๋๋ค.
์ด๋ฏธ GIT๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ํฌ๊ตฌ๊ฐ ํ์ํ ๊น์?
๋๋ถ๋ถ์ ๊ฒฝ์ฐ Helm ์ฐจํธ๊ฐ Chart๋ฅผ ํตํด ๋ฐฐํฌํ๋ ์ํํธ์จ์ด๋ณด๋ค ํจ์ฌ ์ ๊ฒ ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ๊ณต์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ด helm ์ค์น ๋ฐ helm ์ ๊ทธ๋ ์ด๋์์ --app-version์ ์ฌ์ฉํ ์ ์๋ ๊ทผ๋ณธ์ ์ธ ์ด์ (์ ์ด๋ IMO)์ ๋๋ค. ๋ง ๊ทธ๋๋ก ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ฐจํธ๋ฅผ ๋ค์ ํจํค์งํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ด ๋์์ธ์์ appVersion์ Helm ํจํค์ง ๋น๋์ ์์ฑ์ผ๋ก ์ทจ๊ธ๋์ด์๋ ์๋ฉ๋๋ค. ๊ฐ์์ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ก ์ฒ๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด Flux์ Helm Operator๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด์ญ์์ค. ์ด๋ฏธ์ง ํ๊ทธ ๊ฐ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ๋๋ก ํ ์ ์์ต๋๋ค. ์ฐจํธ๋ ์ ๋ฐ์ดํธํ์ง ์๊ณ ๋ฐฐํฌ ์ค์ธ ์ด๋ฏธ์ง ํ๊ทธ๋ง ์ ๋ฐ์ดํธํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ์ฑ ์ธํ๋ผ ๋งค๋ํ์คํธ์ ์ฑ ๋ฒ์ ์ ๊ฒฐํฉ์ด ๋์จํด์ง๋๋ค. ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ๋ณ๊ฒฝํด๋ ์ ์กฐํ ์ฅ์น ์
๊ทธ๋ ์ด๋๊ฐ ํธ๋ฆฌ๊ฑฐ๋์ง ์๊ธฐ ๋๋ฌธ์(Flux ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ํํ๋ ๊ฒฝ์ฐ ์์ ํ์ญ์์ค). ์ด ๊ฒฝ์ฐ Helm์ ๊ตฌ์ฑ ํ
ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ --app-version
๊ฐ ์ ํ ํ์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ deb ํ์ผ์ ๊ตฌ์ฑ ํ์ผ, ๋ช ๋ น, ๋งค๋ํ์คํธ ๋ฐ/๋๋ ์ฌ์ ์ค์ ๊ฐ์ ๋์ผํ ์งํฉ์ ๋๋ค. MSI ์ค์น ํ๋ก๊ทธ๋จ๊ณผ ๋์ผํ๊ฑฐ๋ ์ ํ ์ด๋จธ์ง ํจํค์ง ์์คํ ์ ebuild์ ๋ ๊ฐ๊น์ต๋๋ค. ๋ํ Brew ํจํค์ง์ ๋์ผํฉ๋๋ค.
.deb
๋ฐ .msi
ํจํค์ง์ ๋ํ ๊ทํ์ ์ค๋ช
์๋ ํ๋์ ํต์ฌ ๊ตฌ์ฑ์์๊ฐ ๋๋ฝ๋์์ต๋๋ค. .deb
ํ์ผ์ ๋ด์ฉ์ ์ดํด๋ณด๋ฉด ๋น๋๋ ์ํํธ์จ์ด - ์ค์น๋ _THE_ ์ํํธ์จ์ด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋งํด์(ํญ์ .deb
?์ ๊ฒฝ์ฐ) ๋ฐฐํฌ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ํด๋น ํจํค์ง์ ์ผ๋ถ์
๋๋ค(brew์ ๊ฒฝ์ฐ ์๋).
์์กฐ ํจํค์ง๋ ๋ค๋ฅด๋ฉฐ ์ค์ ๋ก ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋น๊ตํ ์ ์์ต๋๋ค. Brew๋ ์ค์น ๋ฐฉ๋ฒ๊ณผ ์์ค/ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํด์ผ ํ๋ ์์น์ ๋ํ ์ง์นจ์ผ ๋ฟ์ด๋ฏ๋ก ์ค์ ๋ก ํ์ฌ Helm๊ณผ ํจ์ฌ ์ ์ฌํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ ๋์ ์ผ๋ก ๋ช ํํฉ๋๋ค. Helm ์ฐจํธ๋ _๋ณธ์ง์ ์ผ๋ก ํน์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ผ๋ฉฐ_ ๋ฐฐํฌ๋๋ ์ธ๊ณต๋ฌผ(์: Docker ์ด๋ฏธ์ง)์ ํฌํจํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ฐธ์กฐ๋ง ํฌํจ๋๋ฉฐ ํด๋น ์ฐธ์กฐ ๋ค์ ์๋ ๊ฐ์ ๋ณ๊ฒฝ๋ ์๋ ์์ต๋๋ค(์: ์ํ๋ ๊ฒฝ์ฐ ๋์ผํ Docker ํ๊ทธ๋ก ํธ์ํ ์ ์์). ๋ฐ๋ผ์ ์ด๋ค ์ผ์ด ์์ด๋ Helm ์ฐจํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์ง ๋ฒ์ ์ด ์๋๋ฉฐ ํน์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์๊ฒฉํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์์ ์ ์ธ ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ดํด๋ณด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ฐ์ ํตํด ์ฌ์ฉ ์ค์ธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ ์ํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ช ๊ฐ๋ ๋ ๊น์? (๋ง์ด_)
K8์ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์๋ ๊ฒฝ์ฐ Helm์ ๋ฌด์์ ๋๊น? ๋น์ ์ด ๋ณด๋ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
Kubernetes ๋งค๋ํ์คํธ๋ฅผ ํ ํ๋ฆฟํํ๊ณ ์ฝ๊ฒ ๋ฐฐํฌ ๋ฐ ์ค์นํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋๊ตฌ์ ๋๋ค. ์ฌ๊ธฐ์ ํต์ฌ์ Helm์ด ๋ค๋ฃจ๋ ๋ชจ๋ ๊ฒ์ ๋๋ค. Kubernetes ๋งค๋ํ์คํธ์ ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ ์์ ์ผ๋ก ๋์๊ฐ๋๋ค. ํด๋น ๋งค๋ํ์คํธ๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ด๋ค ์ด์ ๋ก๋ ํด๋น ๋งค๋ํ์คํธ์ ๋ํ ํ ํ๋ฆฟ์ด ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ Helm ์ฐจํธ๋ฅผ ์ค์ ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
๋ด๊ฐ ๋ณด๋ ์ฃผ์ ํฉ๋ณ์ฆ์ 2๊ฐ์ง ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
ํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ Helm ์๋น์๋ก์ ๊ฐ ์ ์์ฉ ํ๋ก๊ทธ๋จ ๋ฒ์ ๊ณผ ํจ๊ป Helm ์ฐจํธ๊ฐ ๋ฆด๋ฆฌ์ค๋๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค. ์ฌ๊ธฐ์ ํ ๊ฐ์ง ์ฃผ์ ์ฐจ์ด์ ์ ๋ฆด๋ฆฌ์ค ๋น๋์ ๋๋ค. MySQL ๋๋ ๋ฌด์์ด๋ ๊ฐ์ ํ์ฌ Helm ์ฐจํธ๋ ํ๋ฃจ์ ์ฌ๋ฌ ๋ฒ ๋ณ๊ฒฝ๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ค์๋ก ์ ๋ฒ์ ์ ์ํํธ์จ์ด์ ํจ๊ป ์ด์ ๋ฒ์ ์ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค. ์ง์ ์์ฑํ์ง ์์ ์ํํธ์จ์ด์ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์ฌ ์ฝ๊ฒ ์ค์๋ฅผ ํ ์ ์์ต๋๋ค.
์์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ ํด๋์ค๋ฅผ ๋ฐฐํฌํ๋ ํ์ค ๋ฐฉ๋ฒ์ด ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Icelolly์์๋ ๊ฑฐ์ ๋์ผํ ๋ฐฉ์์ผ๋ก Go ์๋น์ค๋ฅผ ์์ฑํ๊ณ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ฅผ ์ํด ์ค์ ๋ก Kubernetes์ ๋ฐฐํฌ๋ ๋ชจ๋ Go ์๋น์ค์ ๋ํด ๋จ์ผ ์ฐจํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค(ํ์ฌ helm package
ํด๊ฒฐ ๋ฐฉ๋ฒ ์ฌ์ฉ). ์์ฒด ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋๋ฉด ์ฐจํธ๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค. SemVer๋ก ์ฐจํธ์ ๋ฒ์ ์ ์ง์ ํ๋ฏ๋ก ์
๋ฐ์ดํธ๋์ง ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์
๋ฐ์ดํธํ ๋๊น์ง ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
๊ทธ๋ฅ ์ด ๋ฉ๋ชจ์; go-service
์ฐจํธ๋ ์ฝ ํ ๋ฌ ์ ์ ๋ง์ง๋ง์ผ๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค. ๊ทธ ๊ธฐ๊ฐ ๋์ ์ฐ๋ฆฌ๋ ์ฐจํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์์ญ์์ ์๋ฐฑ ๊ฐ์ ๋ฐฐํฌ๋ฅผ ์ํํ์ ๊ฒ์
๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ๋จ์ํจ์ ์ํฉ๋๋ค. ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์ ์ด ๋ฐ ๊ด๋ฆฌ ์ฉ์ด์ฑ์ ์ํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ์ฑ ์ธํ๋ผ ๋งค๋ํ์คํธ์ ์ฑ ๋ฒ์ ์ ๊ฒฐํฉ์ด ๋์จํด์ง๋๋ค. ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ๋ณ๊ฒฝํด๋ ์ ์กฐํ ์ฅ์น ์ ๊ทธ๋ ์ด๋๊ฐ ํธ๋ฆฌ๊ฑฐ๋์ง ์๊ธฐ ๋๋ฌธ์(Flux ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ํํ๋ ๊ฒฝ์ฐ ์์ ํ์ญ์์ค). ์ด ๊ฒฝ์ฐ Helm์ ๊ตฌ์ฑ ํ ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ --app-version์ด ์ ํ ํ์ํ์ง ์์ต๋๋ค.
Flux๋ ์ค์ ๋ก ์ฐจํธ๋ฅผ ์
๊ทธ๋ ์ด๋ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ฐ์ ๋ณ๊ฒฝํ ๋ค์ ์ ์ด๋ฏธ์ง ๊ฐ์ผ๋ก ์
๊ทธ๋ ์ด๋๋ฅผ ์คํํฉ๋๋ค. ์ธํ๋ผ ๋งค๋ํ์คํธ์ ์ฑ ๋ฒ์ ์ ๊ฒฐํฉ์ ์๋ ๊ฒ์ ๋ํ ๊ทํ์ ์์ ์ ์ฌ์ ํ โโ์ ํจํฉ๋๋ค. ๋ด๊ฐ ์ฃผ์ฅํ๋ ์์ ์ ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์์๋ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค๋ ๊ฒ์
๋๋ค. ํ์ง๋ง ์ด ์ฌ์ฉ ์ฌ๋ก์์๋ --app-version
๊ฐ ํ์ํ์ง ์์ต๋๋ค. ํ์ฌ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด Flux๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์์ ๊ฒ์
๋๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ์ ์ค์ ๋ก ๋์์ด ๋ฉ๋๋ค.
helm list
๋ ์ ์ฉํ ๋ช
๋ น์
๋๋ค. ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ์ด ๋ฐฐํฌ๋์๋์ง ํ์ธํ ์ ์๋ค๋ ๊ฒ์ ์ฌ์ ํ โโ์ ์ฉํฉ๋๋ค. ํ์ฌ์ ํฌ๊ตฌ๋ฅผ ํตํด ์ค์น ์ฐ๋ฆฌ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ helm package
์ฐ๋ฆฌ๋ (๋ฅผ ํตํด ์์ฉ ํ๋ก๊ทธ๋จ ๋ฒ์ ์ค์ ๋ฐฉ๋ฒ --app-version
์ helm package
) ์ ๋์ ์ถ๋ ฅ ๊ฒ์ helm list
์๋ค ์ ์ฉํ. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ helm install|upgrade
์ค์ ํ ์ ์๋ค๋ฉด ๋ ๊ฐ๋จํ ๊ฒ์
๋๋ค. ๋ฒ์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฐจํธ๋ฅผ ๊ฐ์ ธ์ ๋ค์ ํจํค์งํ ํ์๊ฐ ์์ต๋๋ค.
์ฌ์ค, helm list
๋ฐ ๋กค๋ฐฑ ์ฒ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ์์ฌ ์ํํธ์จ์ด์ ๋ํด Helm์ ์ฌ์ฉํ๋ ์ ์ผํ ์ด์ ์ผ ๊ฒ์
๋๋ค.
์ฌ๊ธฐ์ ์๋ .deb ๋ฐ .msi ํจํค์ง์ ๋ํ ์ค๋ช ์๋ ํ๋์ ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ๋๋ฝ๋์ด ์์ต๋๋ค.
"์ค์น"๋ ๋์ ํ๋ซํผ์ ํ์ํ ๊ธฐ๋ฅ(ํด๋, ๊ตฌ์ฑ, ๋ฐ์ด๋๋ฆฌ, db ๊ฐ์ ธ์ค๊ธฐ, ๋ฐ์ดํฐ ์๋ก ๊ณ ์นจ/์ด์ )์ ์ค์ ํ๋ ๊ณผ์ ์ ๋๋ค.
deb๋ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํฉ๋๋ค. Helm ํจํค์ง๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. Helm ํจํค์ง๊ฐ "์ค์ ๋ก ์ค์น"๋์ง ์์๋ค๋ ๊ฒ์ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
.deb ํ์ผ์ ๋ด์ฉ์ ์ดํด๋ณด๋ฉด ๋น๋๋ ์ํํธ์จ์ด, ์ฆ ์ค์น๋ ์ํํธ์จ์ด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๊ฑฐ์ง. ๋๋ก๋ ์ํํธ์จ์ด ์์ฒด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋๋ก๋ ์ํํธ์จ์ด ์กฐ๊ฐ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋๋๋ก ๊ทธ๋ฌํ ์ํํธ์จ์ด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ์คํฌ๋ฆฝํธ ์ธํธ ์ธ์๋ ์๋ฌด๊ฒ๋ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์ ์์ ์ ์ค์ํ์ง ์์ต๋๋ค. Linux์ K8์ ํ๋์ ๋ฒ์ฉ ์์ฉ ํ๋ก๊ทธ๋จ ํ์์ ํ์ฉํ๋ ์ง์ ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ํธ์คํ ํ๋ ํ๋ซํผ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง ์ด๋ฆ, ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ ํจํค์ง์ ์ผ๋ถ์ ๋๋ค.
Brew๋ ์ค์น ๋ฐฉ๋ฒ๊ณผ ์์ค/ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํด์ผ ํ๋ ์์น์ ๋ํ ์ง์นจ์ผ ๋ฟ์ด๋ฏ๋ก ์ค์ ๋ก ํ์ฌ Helm๊ณผ ํจ์ฌ ์ ์ฌํฉ๋๋ค.
์ ํํ. Brew๊ฐ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์๋๋ผ๋ ๊ฒ์ ์ค๋ํ๋ ค๋ ๊ฑด๊ฐ์?
์ฌ๊ธฐ์์ ์ ๋์ ์ผ๋ก ๋ช ํํฉ๋๋ค. Helm ์ฐจํธ _๋ณธ์ง์ ์ผ๋ก ํน์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค ...
๊ฐ์ ํตํด ์ฌ์ฉ ์ค์ธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ ์ํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ช ๊ฐ๋ ๋ ๊น์? (๋ง์ด)
๋๊ฐ ํ์คํ ๋ง์. Helm์ k8s ํ ํ๋ฆฟ์ ์ํ ํธ๋ฆฌํ ํ ํ๋ฆฟ ์์ง์ ๋ถ๊ณผํฉ๋๋ค. ๋๋ ๊ทธ๋ฌํ ์ํํธ์จ์ด ์กด์ฌ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฝ๊ฐ์ ๋์์ด ๋์ง๋ง ํ๋์ ์ ๋ฌ ๋ฐฉ์์ ๋ฐ๊พธ์ง๋ ์์ ๊ฒ์ ๋๋ค.
๋ฌธ์ ๋ Helm์ด ํ ํ๋ฆฟ ์์ง ์ด์์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ฅ์ ๊ณผ ๋จ์ ์ด ์๋ ํจํค์ง ๊ด๋ฆฌ์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํจํค์ง ๋งค๋์ ๊ฐ ์กด์ฌํ๋ ์ํ๊ณ์์๋ ๋ค๋ฅธ ํจํค์ง ๋งค๋์ ๊ฐ ๊ด๋ฆฌํ๊ฒ ํ๋ ๊ฒ์ ๋์ ์ต๊ด์ ๋๋ค. ๋ ๋์ ๊ฒ์ ํจํค์ง ๊ด๋ฆฌ์ ์์ด ์๋ํฉ๋๋ค.
์ด ํจํค์ง์ ๋ํ ํจํค์ง ์ธ์๋ก ์ฑ ๋ฒ์ ์ ๋ง๋๋ ์ด์ ๋ฅผ ๋ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ฌ๋ฌ๋ถ๊ณผ ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ ํจํค์ง๋ฅผ ๋ง๋ค์ง ๋ง์์ผ ํ ์ด์ ๋ฅผ ๋ด ๋๋ค. ๋ฌธ์ ๋ ์ ๊ทผ ๋ฐฉ์์ด ๊ตฌ์์ด๊ณ ๋ณต์กํ๋ฉฐ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๋ฏธ์๋ ๊ฒ์ ๋น์ฉ์ ์ ์ง๋ง ์ป์ ์ ์๋ค๋ ์ ์ ๋๋ค.
๋ด๊ฐ ์ฃผ์ฅํ๋ ์์ ์ ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์์๋ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ค, ์ด๊ฒ์ด ํต์ฌ์ ๋๋ค. ์ด๋ค ์ ํ์๋ ๋ฐ๋์งํ๊ฐ?
๊ทํ์ ์ฃผ์ฅ์ ํฌ๊ตฌ ์ฐจํธ๋ ๊ฑฐ์ ๋ณ๊ฒฝ๋์ง ์๋๋ฐ ์ ๊ฐ ๋ฆด๋ฆฌ์ค๋ง๋ค ํจ๊ป ํฌ์ฅํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋์ํฉ๋๋ค. ๋ถํ์ํ ๋๋์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ค๋๋ ์์ค ํ์ผ, ์ค๋๋ ์ฌ์ด๋์นด(Helm์ด ์ฌ๋ฌ ์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ), ์ค๋๋ ๊ตฌ์ฑ, ์ค๋๋ Dockerfile์ ํจํค์งํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ๋ ์ ์ฒด ์ฐจํธ๋ฅผ ์ํฐํฉํธ๋ก ํจํค์งํ๋ฉด ๊ฐ ๋น๋์์ ์ด๋ค ์ด์ ์ด ์์ต๋๊น? Dockerfile์ ๊ฒฝ์ฐ ๋ถ๋ช ํฉ๋๋ค(๊ทธ๋ฌ๋ ์์ฅ์ ์ปจํ ์ด๋ํ๊ฐ ๋ฑ์ฅํ์ ๋ ๋ถ๋ช ํ์ง ์์์ต๋๋ค). ์์ค ํ์ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์์ ์๋ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋ช ํํ ์ ๋ฌ ๋ฉ์ปค๋์ฆ์ด ์์์ต๋๋ค. FTP๋ฅผ ํตํด ๋ณ๊ฒฝ๋ ํ์ผ๋ง ์ ๋ก๋ํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ๋ง์ ๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฌด์์ด ์ข์์ง, ์ ์ข์์ง, ๋๊ฐ ์ฌ์ฉํด์ผ ํ๋์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. Helm์ด ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๋์์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ง์กฑํ ์ง ํ์ ์ด ์์ง ์์ต๋๋ค. ๋๋ฌด ๋ณต์กํฉ๋๋ค.
ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ.
Helm ์ฐจํธ๋ง ์ฌ์ฉํ์ฌ ๋ชจ๋ PSQL/MySQL ๋ฒ์ ์ ์ค์นํ ์ ์๋ค๋ฉด ์ ๋ง ๊ธฐ์ ๊ฒ์ ๋๋ค. ๋ ๊ฑฐ์ ํ๋ก์ ํธ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ์ด๋ณด์์๊ฒ ์ธํ๋ผ๋ฅผ ์๊ฐํ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์ธ ๊ฒ์ ๋๋ค. ์ฐจํธ ์ ๋ฐ์ดํธ์ ๋ํ ์๋ฆผ์ ๋ฐ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค. ๋ฐ์ด๋๋ฆฌ์ ๋ํด ๊ฐ ๋ฆด๋ฆฌ์ค์ ๋ํด ๋ง์ tar.gz ํ์ผ์ด ์์ง๋ง Helm ํจํค์ง์ ๋ํด ๋์ผํ tar.gz ํ์ผ ์ธํธ๋ฅผ ๊ฐ์ง ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@iorlas ๋ฐฉ๊ธ ์ด ๊ธ๊ณผ ๊ฑฐ๋ถ๋ PR์ ์ฝ์์ผ๋ฉฐ ์์ฃผ ์ข์ ์ง์ ์ ํ์ จ์ต๋๋ค. ๋น์ ์ ๋ด๊ฐ ๋ด ๋น๋/๋ฆด๋ฆฌ์ค์ ๋ ๋ค๋ฅธ ์ํฐํฉํธ๋ก์ ๋ด ํฌ๊ตฌ ์ฐจํธ๋ฅผ ํจํค์งํ๊ธฐ ์์ํด์ผ ํ๋ค๊ณ ํ์ ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ helm์ ํจํค์ง ๋ช ๋ น์ด ์๋์ง์กฐ์ฐจ ๋ชฐ๋์ผ๋ฉฐ ํผ์๊ฐ ์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ์๋ง๋ ์์ค ๋๋ ํ ๋ฆฌ์์ ์ฐจํธ๋ฅผ ์ค์นํ๋ ๊ฒ์ด ๋๋ฌด ์ฝ๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์์์๋ ๊ฐ๋ ์ ์ค์ ๋ก ํ๋งคํ๊ฑฐ๋ ์์ธํ ์ค๋ช ํ์ง๋ ์์ต๋๋ค.
package ๋ช ๋ น์ ๋ถ๋ช ํ ๋ฌธ์ํ๋์ด ์์ง๋ง ๋น ๋ฅธ ์์ ๊ฐ์ด๋ ์๋ ํจํค์ง์ ๋ํ ๋ช ๊ฐ์ง ๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ธ๊ธ ๋ง ์์ต๋๋ค. ์ฌ์ค ํจํค์ง๋ผ๋ ๋จ์ด๋ ๋น ๋ฅธ ์์์ ๋ง์ด ํ์๋์ง๋ง ๋๋ถ๋ถ Helm ๋ฐ ๋ค๋ฅธ OS ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. . ํฌ์ฅ๋ ๋ชจ๋ฒ ์ฌ๋ก์์ ์ธ๊ธ๋์ง ์์์ผ๋ฉฐ ํฌ์ฅ์ด ๋ฌด์์ธ์ง, ์ ์ ์ฉํ์ง ์บก์ฒํ๋ ๊ฒ์ด ํฌํจ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๋ํ ์ฝ๊ฐ ๋ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์ฌ์ฉ์๊ฐ ์ฐจํธ๋ฅผ ํจํค์งํํ๋๋ก ์ ์ํ๋ ๋ฐ ์ฌ๋ฆผํ ๊ฒ์ผ๋ก ๋ณด์ด๋ v3 ๋ฌธ์ ๋ ํ์ธํ์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋๋ PR์ ์ ์ถํ๊ณ ์ถ์ต๋๋ค. ๋จ์ง ๋ญ๊ฐ์ ๋ํด ๋ถํํ๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ์ง ์์ง๋ง 3.0 ๋ฌธ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ด๋ป๊ฒ ์งํ๋๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@jonstelly ๋ฌธ์์๋ ํ์คํ ๊ณต๋ฐฑ์ด ์์ต๋๋ค. ๋๋ ์ฒ์์๋ --app-version ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํ์ง๋ง ๋์ค์๋ ์ด์ ์์ด ๋๋ฝ๋ ์ํ๋ก ๋ ์ ์์์ต๋๋ค.
๋ฌธ์์๋ ํ์คํ ๋ช ๊ฐ์ง ์ค๋ช ๊ณผ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์๊ฐ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Helm ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ํ์ 3์ฐจ ๋ฒ์ ์ผ๋ก ๋ฐ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ง๊ธ ๋๋ฌด ๋ฐ์ฉ๋๋ค :(
"์ค์น"๋ ๋์ ํ๋ซํผ์ ํ์ํ ๊ธฐ๋ฅ(ํด๋, ๊ตฌ์ฑ, ๋ฐ์ด๋๋ฆฌ, db ๊ฐ์ ธ์ค๊ธฐ, ๋ฐ์ดํฐ ์๋ก ๊ณ ์นจ/์ด์ )์ ์ค์ ํ๋ ๊ณผ์ ์ ๋๋ค.
deb๋ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํฉ๋๋ค. Helm ํจํค์ง๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. Helm ํจํค์ง๊ฐ "์ค์ ๋ก ์ค์น"๋์ง ์์๋ค๋ ๊ฒ์ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
Helm Chart ์์ฒด๊ฐ ์ค์น๋์ด ์์ง ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. Helm Chart์๋ ๋ฐฐํฌํ๋ ์ค์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ํฌํจ๋์ด ์์ง ์์ต๋๋ค. Docker ์ด๋ฏธ์ง๋ Helm ์ฐจํธ์ ํจํค์ง๋์ง ์์ต๋๋ค. Kubernetes๊ฐ ์ธ๋ถ ์์ค์์ ๊ฐ์ ธ์ต๋๋ค.
๊ฑฐ์ง. ๋๋ก๋ ์ํํธ์จ์ด ์์ฒด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋๋ก๋ ์ํํธ์จ์ด ์กฐ๊ฐ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋๋๋ก ๊ทธ๋ฌํ ์ํํธ์จ์ด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ์คํฌ๋ฆฝํธ ์ธํธ ์ธ์๋ ์๋ฌด๊ฒ๋ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์ ์์ ์ ์ค์ํ์ง ์์ต๋๋ค. Linux์ K8์ ํ๋์ ๋ฒ์ฉ ์์ฉ ํ๋ก๊ทธ๋จ ํ์์ ํ์ฉํ๋ ์ง์ ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ํธ์คํธํ๋ ํ๋ซํผ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง ์ด๋ฆ, ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ ํจํค์ง์ ์ผ๋ถ์ ๋๋ค.
๋ด๊ฐ ์๋ ํ, ์ค์ ๋ก ๋น์ ์ ์ฌ๊ธฐ์์ ํ๋ ธ์ต๋๋ค. .deb
ํ์ผ์ AR ์์นด์ด๋ธ์
๋๋ค. ์์ถ์ ํ๊ณ ๋ด์ฉ์ ๋ณผ ์ ์์ผ๋ฉฐ ๊ถ๊ทน์ ์ผ๋ก ์ผ๋ถ ๋ฉํ ๋ฐ์ดํฐ์ ์ผ๋ถ ํ์ผ์
๋๋ค. .deb
ํ์ผ์ ์ด๋ก ์ ์ผ๋ก ํจ์น๋ฅผ ํฌํจํ ์ ์์ง๋ง ์ข
์ข
๊ทธ๋ ์ง ์์ต๋๋ค. .deb
ํ์ผ์ ์ํํธ์จ์ด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ์ํํธ์จ์ด ์์ฒด๊ฐ ์๋๋ผ .deb
ํ์ผ์ ์ํด ์ค์น๋๋ ์คํฌ๋ฆฝํธ์์ ์๋ฏธํฉ๋๋ค. ์ค์น ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
.deb
๊ฐ .deb
ํ์ผ์ ์ค์นํ๋ ๊ณผ์ ์ ์ผ๋ถ๋ก ์ค์นํ ์ํํธ์จ์ด๋ฅผ ๋ค์ด๋ก๋ํ๋ .deb
ํจํค์ง๋ Linux ์ํํธ์จ์ด์ ์๊ฐ ์๋ ๊ฒฝ์ฐ , ๊ทธ๋ ๋ค๋ฉด ์ ๋ง ๋ณด๊ณ ์ถ์ต๋๋ค. Linux๋ฅผ ์ฌ์ฉํ ์๋
๋์ ๋ฌธ์ ๊ทธ๋๋ก ๋ณธ ์ ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์ ํํ. Brew๊ฐ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์๋๋ผ๋ ๊ฒ์ ์ค๋ํ๋ ค๋ ๊ฑด๊ฐ์?
์๋์. ๋ด๊ฐ ๋งํ๊ณ ์ ํ๋ ๊ฒ์ Helm๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Brew๋ฅผ ํตํด ์ํํธ์จ์ด๋ฅผ ์ค์นํ๊ธฐ ์ํด ์ ๊ณต๋๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ๋ก ์คํฌ๋ฆฝํธ๋ผ๋ ๊ฒ์
๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๋๋ก ๋น๋, ํจํค์ง ๋ฐ ๋ฐฐํฌ๋๋ฉฐ ํด๋น ์คํฌ๋ฆฝํธ์์ ๊ฐ์ ธ์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ฏ์ด Helm์ Kubernetes ํจํค์ง ๊ด๋ฆฌ์๋ก ๋ง๋ค์ง ์๋ ๊ฒ์ฒ๋ผ Brew๋ฅผ ํจํค์ง ๊ด๋ฆฌ์๋ก ๋ง๋ค์ง ์์ต๋๋ค. ์ด๊ฒ์ด ์ด ๋ฌธ์ ์ ์์ ์ด ์๋๋๋ค. ์ฐ๋ฆฌ๋ Helm์ด ํจํค์ง ๊ด๋ฆฌ์์ธ์ง ์๋์ง์ ๋ํด ํ ๋ก ํ๋ ๊ฒ์ด ์๋๋ผ --app-version
ํ๋๊ทธ๋ฅผ helm install|upgrade
์ถ๊ฐํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ค๊ณ ํฉ๋๋ค
์ด ํจํค์ง์ ๋ํ ํจํค์ง ์ธ์๋ก ์ฑ ๋ฒ์ ์ ๋ง๋๋ ์ด์ ๋ฅผ ๋ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ฌ๋ฌ๋ถ๊ณผ ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ ํจํค์ง๋ฅผ ๋ง๋ค์ง ๋ง์์ผ ํ ์ด์ ๋ฅผ ๋ด ๋๋ค. ๋ฌธ์ ๋ ์ ๊ทผ ๋ฐฉ์์ด ๊ตฌ์์ด๊ณ ๋ณต์กํ๋ฉฐ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๋ฏธ์๋ ๊ฒ์ ๋น์ฉ์ ์ ์ง๋ง ์ป์ ์ ์๋ค๋ ์ ์ ๋๋ค.
์ฃ์กํฉ๋๋ค. ๋ฌด์จ ๋ง์์ด์ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ตฌ์/๋ณต์ก/๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์ด ๊ฒ์ ๋ฌด์์ ๋๊น?
๋ฐ๋ผ์ ๋ฌธ์ ๋ ์ ์ฒด ์ฐจํธ๋ฅผ ์ํฐํฉํธ๋ก ํจํค์งํ๋ฉด ๊ฐ ๋น๋์์ ์ด๋ค ์ด์ ์ด ์์ต๋๊น? Dockerfile์ ๊ฒฝ์ฐ ๋ถ๋ช ํฉ๋๋ค(๊ทธ๋ฌ๋ ์์ฅ์ ์ปจํ ์ด๋ํ๊ฐ ๋ฑ์ฅํ์ ๋ ๋ถ๋ช ํ์ง ์์์ต๋๋ค). ์์ค ํ์ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๋ค์ ํ ๋ฒ ๋ง์๋๋ฆฌ์ง๋ง ์ฐจ์ด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทํ๊ฐ ์ธ๊ธํ ๋ชจ๋ ๊ฒ์ด ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฑ์ ์คํํ๋ ค๋ฉด ๋ณ๊ฒฝ๋ ๋ด์ฉ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์์ค ์ฝ๋๊ฐ ํ์ํฉ๋๋ค. Dockerfile์ ํจํค์งํ์ง ์์ผ๋ฏ๋ก ๊ทธ ์์ ์ด ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ธฐ ์ํด ๋ณ๊ฒฝํ์ง ์๊ณ ๋์ผํ Dockerfile์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์๊ฐ, ๊ทธ๋ ์ง?). ์ด๋ฌํ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ์ฌ ํ์ํ ๋ชจ๋ ๊ฒ์ ์บก์ํํ์ฌ ๊ฒฉ๋ฆฌ ๋ฐฐํฌํ ์ ์๋ ๊ฒ์ ๋ง๋ค๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋ ธ๋๋ฅผ ์คํ์ ํ๊ณ ๊ธฐ์กด ๋ ธ๋์ ๋ฐฐํฌํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํ๋ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ด๋ฏธ ์๊ณ ๊ณ์๊ฒ ์ง๋ง FTP๋ฅผ ํตํด ์ด์ ์ ๋ก๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค _๋ง์_ ํํ์ด ์์ต๋๋ค.
์ด์จ๋ ์ด๊ฒ์ ๋ชจ๋ by by์ ๋๋ค. ์ ์๊ฐ์๋ ๊ถ๊ทน์ ์ผ๋ก ์ด๋ฏธ ์ธ๊ธํ๋ฏ์ด ์ด ๋ชจ๋ ๊ฒ์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Helm ์ ์ง ๊ด๋ฆฌ์๋ ์ด ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ์ฑํํ๊ณ ์ถ์ต๋๊น? ์๋๋ฉด ์ฌ๋๋ค์ด ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ ์ด๋ ต๊ฒ ๋ง๋๋์? ๊ฒฐ๊ตญ ์ด๋ ์ชฝ์ด๋ _์ ๋ง๋ก_ ํฐ ์ฐจ์ด๋ ์๋๋๋ค. ์ ์๊ฒ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ค์ ํ๊ธฐ ์ํด ๊ฐ ๋น๋์์ ๊ฑฐ์ ๋ณ๊ฒฝ๋์ง ์๋ ๋ด๋ถ ์ฐจํธ๋ฅผ ํจํค์งํํ์ง ์์๋ ๋๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ด ์ฐจํธ๋ ๋ค์ ๋ชฉ๋ก์ ํ์ฌ ๋ฒ์ ์ ํ์ํ๋ ๋ฐ๋ง ์ฌ์ฉ๋ฉ๋๋ค. ํผ์คํธ ํํฐ ์ฑ์ ๊ฒฝ์ฐ ์์งํ ๋งํด์ Helm์ด ์ด์จ๋ ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ธ์ง ์๋ฌธ์ด ๋ค์์ต๋๋ค.
Docker ์ด๋ฏธ์ง๋ Helm ์ฐจํธ๋ก ํจํค์ง๋์ง ์์ต๋๋ค.
์ฌ์ค ๊ทธ๋ ๊ฒ ๋์ผ๋ฉด ์ข๊ฒ ์ด์. ํ์ง๋ง ์ง๊ธ์ ์๋๋๋ค. ๋ด ๋น์ ์ K8์ด ํจํค์ง๋ฅผ ์ค์นํ๊ธฐ ์ํ API๋ก Helm์ ํตํฉํ๋ ํ๋ซํผ์ด ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. deb ํ์ผ์ ๋จ์์ฑ์ผ๋ก ๋์๊ฐ์ง๋ง ์ ์ ํ ๊ฒฉ๋ฆฌ ๋ฐ k8 ๋ฆฌ์์ค๋ฅผ ์ผ๊ธ ์๋ฏผ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
.deb ํ์ผ์ AR ์์นด์ด๋ธ์ ๋๋ค.
์ถ์ถํ์ฌ ๋ด์ฉ์ ๋ณผ ์ ์์ต๋๋ค.
๊ถ๊ทน์ ์ผ๋ก ์ผ๋ถ ๋ฉํ๋ฐ์ดํฐ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ๋ถ ํ์ผ
๋ง์น.... ํฌ๊ตฌ ํจํค์ง!
๋ค์์ด ์๋ ๊ฒฝ์ฐ ... a .deb๊ฐ ์๋ ๊ฒฝ์ฐ .deb๊ฐ .deb ํ์ผ์ ์ค์นํ๋ ๊ณผ์ ์ ์ผ๋ถ๋ก ์ค์นํ ์ํํธ์จ์ด๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
์ค์น ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ...
์, ๋ด๋ถ์ ์ค์น ํ๋ก๊ทธ๋จ์ด ์๋ ์ค์น ํ๋ก๊ทธ๋จ๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๋ฏธ์์ง, ๊ทธ๋ ์ง? ์ฑ ์ธ์คํด์ค๋ฅผ ์ค์ ํ๋ ๋ฐ ์ถฉ๋ถ ํ๋ค๋ฉด ๊ฐ๋ฅํ ํ ํ๋์ ์ํฐํฉํธ๋ฅผ ์ฌ์ฉ ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ์ํํธ์จ์ด, ๋ค๋ฅธ ์ถ์ฒ์ ์ง์ค์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋๋ก๋ ์ฌ๋ฌ ์ถ์ฒ๋ฅผ ๊ฐ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
๋ฐ๋น์์ ๋ชจ๋ ๊ฒ์ ๋ด๋ถ์ ํจํค์งํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฅํ๋ฉด ํ๋ ๊ฒ์ด ์ณ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด ์์ ์ ์ฆ๋ช ํ๊ธฐ ์ํด ๋ฉํํจํค์ง ๊ฐ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๋ค์ด๋ณธ ์ ์ด ์์ต๋๊น? ๋ค๋ฅธ ํจํค์ง๋ฅผ ์ค์นํ๋ ํจํค์ง์ ๋๋ค. ํจํค์ง ์๋๊ฐ์?
ํ์ง๋ง ์์ ์ ๋์น์ง ๋ง์ธ์. ์ค์ํ์ง ์์ต๋๋ค ! ๋ด๋ถ์ ์ฐธ์กฐ๋ง ์๋ ๋น ํจํค์ง๋ ํจํค์ง์ ๋๋ค. ์ค์น๊ธฐ์ฌ๋, ๋ค๋ฅธ ์ฉ์ด๋ฅผ ๋ฐ์๋ค์ด์๊ฒ ์ต๋๊น?
Helm๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Brew๋ฅผ ํตํด ์ํํธ์จ์ด๋ฅผ ์ค์นํ๊ธฐ ์ํด ์ ๊ณต๋๋ ์คํฌ๋ฆฝํธ๋ ์คํฌ๋ฆฝํธ์ผ ๋ฟ์ ๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๋๋ก ๋น๋, ํจํค์งํ ๋ฐ ๋ฐฐํฌ๋๋ฉฐ ํด๋น ์คํฌ๋ฆฝํธ์์ ๊ฐ์ ธ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด ๋์ผํ ํ์ดํ๋ผ์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด helm install|upgrade์ --app-version ํ๋๊ทธ๋ฅผ ์ถ๊ฐํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ค๊ณ ํฉ๋๋ค.
๊ทธ๊ฒ ์ด์ ์ผ. ํ์ง๋ง ์ด๋ป๊ฒ ๊ฒฐ์ ํ ์ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ์ง๋ฌธ์ ํด์ผ ํฉ๋๋ค.
ppl์ด ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ์๋ค๋ฉด ๊ทธ๊ฒ์ด ์ข์ ์ผ์ด๋ผ๋ ์๋ฏธ์ ๋๊น? ์ง์ ์ ์ด๋ฃจ๊ธฐ ์ํด์๋ ๋ชจ๋ ๊ฒ์ ์๋ฌธ์ ์ ๊ธฐํด์ผ ํฉ๋๋ค.
์ฃ์กํฉ๋๋ค. ๋ฌด์จ ๋ง์์ด์ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ตฌ์/๋ณต์ก/๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์ด ๊ฒ์ ๋ฌด์์ ๋๊น?
Brew๋ Helm์ ์ ๋ง ๊ฐ๊น๊ณ ์ด๋ฏธ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๊ธฐ ๋๋ฌธ์ Brew์ ํ๋ก์ ํธ๋ฅผ ๋งก๊ธฐ์ญ์์ค. Gentroo Ebuilds ๋๋ deb์ ํฌ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆผ์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ์ง๊ธ์ ๊นจ๋ํ ๋กค๋ฐฑ, ์ฐ์ํ ์ ๊ทธ๋ ์ด๋์ ๊ฐ์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ค๋ช ํ๊ธฐ๊ฐ ๋ค์ ๊ฒ์ผ๋ฆ ๋๋ค. ์ด์จ๋ ์ด๊ฒ์ด ์ฃผ์ ๋ณด๋์ค์ ๋๋ค.
๋ค์ ํ ๋ฒ ๋ง์๋๋ฆฌ์ง๋ง ์ฐจ์ด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทํ๊ฐ ์ธ๊ธํ ๋ชจ๋ ๊ฒ์ด ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
ํญ์์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด ๋์ปค ์ด๋ฏธ์ง์๋ SSR BE์ CDN์ ๋ํ ์ฐธ์กฐ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
Dockerfile, ๊ทธ๋์ ๊ทธ ์์ ์ด ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ํ์ง๋ง ์ ๋ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ธฐ ์ํด ๋ณ๊ฒฝํ์ง ์๊ณ ๋์ผํ Dockerfile์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ทธ๊ฒ ์์ ์ ๋๋ค. Dockerfile์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค. ์์ค ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์ง ์์์ง๋ง Dockerfile์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค. ๊ฐ๋จํ ๋งํด์ Dockerfile๋ ํจํค์ง์ ๋๋ค. ํฌ๋ฆ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์?
์ด๋ฌํ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ์ฌ ํ์ํ ๋ชจ๋ ๊ฒ์ ์บก์ํํ์ฌ ๊ฒฉ๋ฆฌ ๋ฐฐํฌํ ์ ์๋ ๊ฒ์ ๋ง๋ค๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋ ธ๋๋ฅผ ์คํ์ ํ๊ณ ๊ธฐ์กด ๋ ธ๋์ ๋ฐฐํฌํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํ๋ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ์ง๋ง ๋์ปค ์ด๋ฏธ์ง๋ง์ผ๋ก๋ ์ฑ์ ์คํํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ตฌ์ฑ ์ธ์คํด์ค๊ฐ ํ์ํ๊ณ ์๋น์ค ์ ์๊ฐ ํ์ํฉ๋๋ค. ์ ๋ชจ๋ ๊ฒ์ ํฌ์ฅํ์ง ์์ต๋๊น?
๊ฒฐ๊ตญ ์ด๋ ์ชฝ์ด๋ ์ค์ ๋ก ํฐ ์ฐจ์ด๋ ์๋๋๋ค.
๋๋ ๋ฏฟ์ต๋๋ค. ์ฝ๋๋ฒ ์ด์ค์์๋ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ ์๋ ์์ง๋ง ์ปจํ ์ด๋ํ ๋ฐ์ ์ ์ ์ฒด์ํฌ ๊ฒ์ ๋๋ค.
Docker ์ด๋ฏธ์ง๋ Helm ์ฐจํธ๋ก ํจํค์ง๋์ง ์์ต๋๋ค.
์ด๋ฏธ์ง ์์ฒด๋ ํจํค์ง๋์ง ์์ง๋ง ์ฐธ์กฐ(ํ์ผ๋ก ์ฝ์)๋ ํจํค์ง๋ฉ๋๋ค. ๋ฌผ๋ก , ์ฐ๋ฆฌ๋ ํํ์ ์ด์ด์ ๋ค์ํ ํฌ๊ธฐ(MB์์ GB๊น์ง)์ ๋ฌธ์ ์ด๋ฏธ์ง๊ฐ helm package
์ ์ํฐํฉํธ์ ํฌํจ๋๋์ง ์ฌ๋ถ(์คํฌ์ผ๋ฌ: ๊ทธ๋ ์ง ์์)์ ๋ฐ๋ผ์กํ ์ ์์ง๋ง ๋ณธ์ง์ "ํน์ ๋ฒ์ ์ ์์ฉ ํ๋ก๊ทธ๋จ ์ฝ๋๊ฐ helm ํจํค์ง์ ํฌํจ๋์ด ์์ต๋๋ค"๋ผ๋ ๋ฌธ์ฅ์ ์ฌ์ ํ โโ๊ทผ๋ณธ์ ์ผ๋ก ์ ํํฉ๋๋ค. ๋ฐฉ๋ฒ์ ์ฝ๋งค์ด๊ธฐ๋ฅผ ์ํ๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค.
์์ ์ ๋๋ผ๋ก ๋์๊ฐ์ ๋ด๋ถ์ ์ผ๋ก 1.9.9
๋ก ๋ฒ์ ์ด ์ง์ ๋ ์ ํ๋ฆฌ์ผ์ด์
์ด 1.2.5
๋ฒ์ ์ ์ฐจํธ์์ ์คํ๋๊ณ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ํผ๋์ด ์๋๋ก ํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์
์ปจํ
์ด๋์ Docker ์ด๋ฏธ์ง ์ค๋ fakeshaA
์
๋๋ค.
ํ์ ์ ํ๋ฆฌ์ผ์ด์
์ 2.0.0
๋ฒ์ ์ HTTP๋ฅผ ํตํด ์ฐธ์กฐํด์ผ ํ๋ ํ์ผ์ ๋ก์ปฌ ํ์ผ ์์คํ
๋ฒ์ ์ด ์์ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ๊ทธ ์ด์ ๋ ์ค์ํ์ง ์์ง๋ง ๋น์ ์๊ฒ ๋ฏธ์น๋ ๊ฒฐ๊ณผ๋ ๋งค์ฐ ์ฌ๊ฐํฉ๋๋ค. ์ด์ ๋ฐฐํฌ๋ฅผ ์ํด pv
๋ฐ pvc
ํ์ํ๋ฏ๋ก ์
๊ทธ๋ ์ด๋ ์ฌ์ด์ ํ์ฌ ๋ก์ปฌ ํ์ผ์ด ์์ค๋์ง ์์ต๋๋ค. ํ์์ฑ์ ํ์ธํ๋ฉด pv
๋ฐ pvc
๋๋๋ก Helm ์ฐจํธ๋ฅผ ์
๋ฐ์ดํธํ์ฌ 2.0.0
๋ก์ ์ด๋์ด ํฐ ์ง์ฅ์ ์ฃผ์ง ์๋๋ก ํฉ๋๋ค.
์ฐจํธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ ์ Artifact A
์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ 1.9.9
์ ์ธํ๋ผ ๋ฒ์ 1.2.5
ํฉ๋๋ค. ์ด์ ์ฐจํธ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค... _๋น์ ์ ํฌ๊ตฌ ์ฐจํธ๋ ์ด์ v. 1.3.0
_์ด๊ณ 1.9.9
๋ฅผ ์ธํ๋ผ ๋ฒ์ 1.3.0
์ฐ๊ฒฐํ๋ ์ํฐํฉํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๊ฒ์ Artifact B
๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค.
2.0.0
๋ํ ์ฝ๋ ๋ฐฐํฌ๊ฐ Docker ์ด๋ฏธ์ง sha fakeShaB
์ ํจ๊ป ์คํ๋๋ฉด 2.0.0
๋ฅผ ์ธํ๋ผ ๋ฒ์ 1.3.0
์ฐ๊ฒฐํ๋ ๋ ๋ค๋ฅธ ์ํฐํฉํธ๋ฅผ ์์ฑํฉ๋๋ค. Artifact C
์ด์ 2.0.0 ๋ฆด๋ฆฌ์ค์์ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ์๊ณ ๋กค๋ฐฑํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. Artifact B
...๋ฅผ ์ฌ์ฉํ์ฌ ๋กค๋ฐฑํ์ง๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฏ๋ก Artifact A
๋ค์ ๋กค๋ฐฑํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๋ฐ์ํ๋ ์ ์ผํ ๋ฌธ์ ๋ ์ํฐํฉํธ๊ฐ ์ฐธ์กฐํ๋ Docker ๋ ์ง์คํธ๋ฆฌ์ ์ฌ์ ํ ํด๋น ์ํฐํฉํธ์์ ์ฐธ์กฐ๋๋ ์ด๋ฏธ์ง๊ฐ ์๋์ง ์ฌ๋ถ์ ๋๋ค.
์ด๋ค ์ผ์ด ์์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ๊ณผ ์ธํ๋ผ ๋ฒ์ ๊ฐ์๋ ์ฌ์ ํ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ด๊ฒ์ด Helm์ ๋ชฉ์ ์ ๋๋ค. ๊ทธ๋ ์ง ์๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
@iorlas :
.deb
๋น๊ต๋ ์ ์ณ๋์. ์ฐ๋ฆฌ๋ง ๊ณ๊ธธ๋ก ๋น ์ ธ๋๋ ๊ฒ ๊ฐ์์.
ํญ์์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด ๋์ปค ์ด๋ฏธ์ง์๋ SSR BE์ CDN์ ๋ํ ์ฐธ์กฐ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์ฌ์ค์ ๋๋ค. ๋์ค์ ๋ ์์ธํ ์ค๋ช ํฉ๋๋ค.
๊ทธ๊ฒ ์์ ์ ๋๋ค. Dockerfile์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค. ์์ค ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์ง ์์์ง๋ง Dockerfile์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค. ๊ฐ๋จํ ๋งํด์ Dockerfile๋ ํจํค์ง์ ๋๋ค. ํฌ๋ฆ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์?
๊ทธ๋ ๊ฒ ํ ์ ์์ง๋ง ์ด๋ ํด๋น ๋น๋ ํ๋ก์ธ์ค(์: Docker ์ด๋ฏธ์ง)์ ๋ ๋ถ๋ถ์ ์๋ ์ ํ์ด Dockerfile๊ณผ ์ฌ๊ธฐ์ ๋ฃ๋ ๊ฒ _๋ ๋ค_์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ ๊ฐ์ง ๊ตฌ์ฑ ์์ ์์ด๋ ์ด๋ฏธ์ง๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.
๋ฐ๋ฉด์ Helm ์ฐจํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น๋๋๊ธฐ ์ ์๋ ์กด์ฌํ ์ ์์ต๋๋ค. ๋ง ๊ทธ๋๋ก ํ ์ค์ ์ฝ๋๊ฐ ์์ฑ๋๊ธฐ ์ ์ ๋๋ค. ์ค์น์ ์คํจํ๋ ๊ฐ์์ ์ฐจํธ๋ฅผ ๋ง๋ค ์ ์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ Helm ์ฐจํธ๋ ๋ค๋ฅธ ๊ฒ์ด ์์ด ์์ ํ ์กด์ฌํ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ฏ์ด ์ด๊ฒ์ ์ธ๋ชจ๊ฐ ์์ง๋ง ๋๋ ๊ทธ๊ฒ๋ค์ด ์ ํ ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค๋ ์ ์ ์ค๋ช ํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ด ์์ ์ Helm ์ฐจํธ๊ฐ ์ฐจํธ์ ์ํด ๋ฐฐํฌ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ํญ์ ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋๋ดํ ์ฃผ์ฅ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ด๋ฏธ ์ฌ์ค์ ๋๋ค. ์ ๋ ์ง๊ธ ํ๋ก๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ด ์์ ์ ์ํํ๊ณ ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ์ ๋ํด ์ธ๊ธํ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋์ ์ ๊ฐ ์ ์ ๋งํ๋ฏ์ด, ์ด ๋ชจ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Helm ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ์ฑํํ๊ธฐ๋ฅผ ์ํ๋์ง ์ฌ๋ถ - ๋ค๋ฅธ ๊ฒ์ ์์ต๋๋ค.
ํ์ง๋ง ๋์ปค ์ด๋ฏธ์ง๋ง์ผ๋ก๋ ์ฑ์ ์คํํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ตฌ์ฑ ์ธ์คํด์ค๊ฐ ํ์ํ๊ณ ์๋น์ค ์ ์๊ฐ ํ์ํฉ๋๋ค. ์ ๋ชจ๋ ๊ฒ์ ํฌ์ฅํ์ง ์์ต๋๊น?
์ฌ์ค ๊ทธ๋ ๊ฒ ๋์ผ๋ฉด ์ข๊ฒ ์ด์. ํ์ง๋ง ์ง๊ธ์ ์๋๋๋ค.
์ด๊ฒ์ด ์ฌ์ค์ด๊ณ Helm Chart๊ฐ ์ค์ ๋ก ๋ฐฐํฌ๋ ๋ชจ๋ ๊ฒ์ ํจํค์งํ๋ค๋ฉด(์์ CDN์ ์ธ๊ธํ์ง๋ง Kubernetes์ ๋ฐฐํฌํ์ง ์์์ผ๋ฏ๋ก ์ฌ์ ํ ์ฐจํธ์ ํฌํจ๋์ง ์์ต๋๋ค), ์ ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํฉ๋๋ค. ์ด ๋ํ๋ ์ผ์ด๋์ง ์์ ๊ฒ์ ๋๋ค. ํฌ๊ตฌ ์ฐจํธ๋ Docker ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐํฌ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋ณธ์ง์ ์ผ๋ก _์ฐ๊ฒฐ๋ _ ๊ฒ์ ๋๋ค. ํด๋น ์๋๋ฆฌ์ค์์ ํฌ๊ตฌ ์ฐจํธ๋ฅผ ์์ฑํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณ๊ฒฝ๋ ๋ ๋ค์ ์์ฑ ํด์ผ ํ๋ฉฐ, ์ด ์์ ์์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ์ค๋๋ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก Helm์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ํจ์ฌ ๋ ๋ช ํํด์ง ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ํ์ค์ด ์๋๋๋ค. Helm์ด ์๋ํ๋ ๋ฐฉ์์ด ์๋๋ฉฐ ๊ฒฐ๊ตญ Helm์ด ์ค์ ๋ก ์๋ํ๋ ๋ฐฉ์์ด ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์ง๋ง ์ ๋ ์๋๋ค๊ณ ํ์ง๋ง, ๊ทธ๋ ์ง?
@jrkarnes :
์ด๋ฏธ์ง ์์ฒด๋ ํจํค์ง๋์ง ์์ง๋ง ์ฐธ์กฐ(ํ์ผ๋ก ์ฝ์)๋ ํจํค์ง๋ฉ๋๋ค.
๋ฌผ๋ก , ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ ๊ฐ์ ์ฌ์ฉํ์ฌ ์ด ๊ฐ์ ์ฌ์ ์ํ๋ ๊ฒ์ ๋๋ค. ํ์ฌ ๋ฐ ์์ฌ ์ฐจํธ์ ํจ๊ป ์ฌ์ฉํ์ต๋๋ค. ์ฌ๋๋ค์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ๋ฉด ์ ํ ์ฌํญ์ด ์๋๋๋ค.
๋ฌผ๋ก ์ฐ๋ฆฌ๋ ํํ์ ์ผ ์ ์๊ณ ๋ค์ํ ํฌ๊ธฐ(MB์์ GB๊น์ง)์ ๋ฆฌํฐ๋ด ์ด๋ฏธ์ง๊ฐ helm ํจํค์ง์ ์ํฐํฉํธ์ ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์ก์ ์ ์์ต๋๋ค(์คํฌ์ผ๋ฌ: ๊ทธ๋ ์ง ์์).
๋๋ ์ฐ๋ฆฌ๊ฐ ํํ์ ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ด๋ฏธ ์ง์ ํ๋ฏ์ด Docker ์ด๋ฏธ์ง๊ฐ "๋น๋๋" Helm ์ฐจํธ ์์ ํจํค์ง๋์ด ์๋ค๊ณ ๋งํ๋ ๊ฒ์ ์ฌ์ค ์๋ชป๋ ๊ฒ์ ๋๋ค.
"์์ฉ ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ฃผ์ด์ง ๋ฒ์ ์ด helm ํจํค์ง์ ํฌํจ๋์ด ์์ต๋๋ค"๋ ์ฌ์ ํ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ด ์ฒซ ๋ฒ์งธ ์์ ์ ๋ฐ๋ํ ๊ฒ์
๋๋ค. ๋ฐฐํฌ ์ค์ธ ํญ๋ชฉ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ง์ฅ, ๋น์ ์ ๋น์ ์ด ์ํ๋ ๊ฒฝ์ฐ hello-world
์ด๋ฏธ์ง๋ฅผ ์คํํ๋๋ก ๋๋ถ๋ถ์ ์ฐจํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ธ๋ชจ๊ฐ ์์ง๋ง ๋ด ์์ ์ ํ๋ฅญํ๊ฒ ์ฆ๋ช
ํฉ๋๋ค. Helm Chart๋ ๊ทํ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ์ด๋ฏธ์ง์ ํจ๊ป ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ _๊ธฐ๋_๊ฐ ์์ผ๋ฉฐ, ์๋ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ ๊ฒ ํ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ํ์คํ _ํ ํ์๋ ์์ต๋๋ค_ - ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํจํค์ง๋ Helm ์ฐจํธ์ ํฌํจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ _์๋ฌด๋_์
๋๋ค.
์ฌ๋ก์ ๋๋ผ๋ก ๋์๊ฐ๋ฉด [...] ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๋ถ๋ช ํ ํ์ฌ ์๋๋ ๋ฐฉ์์ผ๋ก Helm์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ด๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ๋๋ก ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ 2๊ฐ์ง ๋ฒ์ ์ ์ฐจํธ(์ฆ, 2๊ฐ์ง ์ธํ๋ผ ๋ฒ์ )์ 3๊ฐ์ง ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ง ๊ฐ์ง ์ ์์ต๋๋ค. ๋กค๋ฐฑํ๊ณ ์ถ๋ค๋ฉด ๋ฐฐํฌํ ์ฐจํธ์ ์ด๋ฏธ์ง๋ฅผ ์์ฃผ ์ฝ๊ฒ ์ ํํ๊ณ ์ ํํ ์ ์์ต๋๋ค. ์ฐจํธ๋ก Helm์ ์คํํ๊ณ ์ด๋ฏธ์ง์ ๋ฐ๋ผ ๊ฐ์ ์ค์ ํ๋ฉด ๋ชจ๋ ์ค์ ์ด ์๋ฃ๋ฉ๋๋ค.
๋ฌด์์ด๋ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ๊ณผ ์ธํ๋ผ ๋ฒ์ ๊ฐ์๋ ์ฌ์ ํ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ด๊ฒ์ด Helm์ ๋ชฉ์ ์ ๋๋ค. ๊ทธ๋ ์ง ์๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
๋๋ ์ํฉ์ด ์ด๋ป๊ฒ ๋ณํ ์ ์๋์ง ๋ ผ์(์ด์์ ์ผ๋ก ๋ ผ์)ํ๋ ๊ฒ์ด ์ข ์ข ๊ฐ์ ์ผ๋ก ์ด์ด์ง๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ Helm์ "๋ชฉ์ "์ด ์ฐจํธ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. Kubernetes ๋งค๋ํ์คํธ๋ฅผ DRY ๋ฐ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ์ ์งํ๋ฉด์ Kubernetes ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ณ ์์ ํ๊ฒ ๋ฐฐํฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐจํธ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์๊ฒฉํ๊ฒ ์ฐ๊ฒฐํด์ผ ํ๋ ๊ณณ์ ์ด๋์๋ ์์ต๋๋ค.
๋ค์, @iorlas ์๊ฒ
... ํด๋น ๋น๋ ํ๋ก์ธ์ค์ ๋ง์ง๋ง์ ์๋ ์ ํ(์: Docker ์ด๋ฏธ์ง)์ Dockerfile๊ณผ ์ฌ๊ธฐ์ ๋ฃ๋ ํญ๋ชฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ... ์ด ๋ ๊ฐ์ง ์์ ์์ด๋ ์ด๋ฏธ์ง๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.
๊ทธ๋์... Helm ํจํค์ง๋ ์ฐจํธ์ ์ฑ ๋ฒ์ (= Docker ์ด๋ฏธ์ง)์ด ํ์ํ๋ฉฐ ์ด๊ฒ์ด ์์ผ๋ฉด ์กด์ฌํ ์ ์์ต๋๋ค.
Helm ์ฐจํธ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋น๋๋๊ธฐ ์ ์๋ ์กด์ฌํ ์ ์์ต๋๋ค. ๋ง ๊ทธ๋๋ก ํ ์ค์ ์ฝ๋๊ฐ ์์ฑ๋๊ธฐ ์ ์ ๋๋ค. ... ํฌ๊ตฌ ์ฐจํธ๋ ๋ค๋ฅธ ๊ฒ์ด ์์ด ์์ ํ ์กด์ฌํ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ฏ์ด ์ด๊ฒ์ ์ธ๋ชจ๊ฐ ์์ ๊ฒ์ ๋๋ค.
์ฌ๋ฏธ์๋ ์ ์ ํ ํ๋ก์ ํธ์์ ์ฐ๋ฆฌ๊ฐ ํ๋กํ ํ์ ์ํคํ ์ฒ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์คํ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ง ๊ทธ๋๋ก ํ ์ค์ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๋ํ ํ์ ์ฐจํธ๋ก๋ง ๊ตฌ์ฑ๋ ์ฐจํธ๋ฅผ ๊ฐ๋ ๊ฒ์ ํญ์ ์คํ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ๋๋ค.
๋ฐ๋ผ์ ๋ด ๊ฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Helm ํจํค์ง๋ Docker ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. Docker ์ด๋ฏธ์ง๋ ์์ค ์ฝ๋๊ฐ ์์ผ๋ฉด ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. ์ฐจ์ด์ ์ ์ถ์ํ ์์ค์ ๋๋ค. ๋ ๊ฐ์ง ๋ชจ๋ ํจํค์ง๋ฅ ๊ฐ์ฒด ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ๋ค์ด ์ ํ ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค๋ ์ ์์ ์ ์ค๋ช ํ๋ ค๊ณ ํ ๋ฟ์ ๋๋ค.
๊ทธ๋, ๊ทธ๋! ppl์ด ๋ชจ๋ ๊ฒ์ ์ธ๋ถ์ ์ผ๋ก ๋ ผ์ํ ์ค๋น๊ฐ ๋์ด ์๋ค๋ ๊ฒ์ ์ ๋ง ์ข์ ์ผ์ ๋๋ค. ๋น์ ์ด ์์ผ๋ฉด, ์์ธก๊ณผ ์ฃผ์ฅ์ด ์์ผ๋ฉด ์ฐ๋ฆฌ๋ ๋ฏธ๋์ ๋งฅ์์ฆ์ ๋ง๋ค์ง ์์ ๊ฒ์ ๋๋ค ๐
๋๋ ๊ทธ๊ฒ์ด ๋๋ดํ ์ฃผ์ฅ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ด๋ฏธ ์ฌ์ค์ ๋๋ค. ... ์์ ๋งํ๋ฏ์ด ์ด ๋ชจ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Helm ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ์ฑํํ๊ธฐ๋ฅผ ์ํ๋์ง ์ฌ๋ถ - ๋ค๋ฅธ ๊ฒ์ ์์ต๋๋ค.
์ฌ์ค. ๊ทธ๋ฌํ ๋ณํ๋ฅผ ๋ฐ์๋ค์ด๊ณ ๋ฐ์๋ค์ด๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ํ๊ฐ๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค. ์ณ์ ์ผ ์ ๋๊น?
์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค. Martini๋ ํ๋ฅญํ๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์น ํ๋ ์์ํฌ์์ต๋๋ค. ๊ทธ ์ด์ ๋ ํฌ์ํ ์๊ฐ์ด ๋ถ์กฑํด์๊ฐ ์๋๋ผ ๋ผ์ด์ผ์ค์ ๊ดํ ์์์๊ฐ ์๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฏธ๋๋ฅผ ๋ ๋ฐ๊ฒ ๋ง๋๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ผ๋ถ ์ฌ๋๋ค์ ํ๋๊ฒ ํ๊ณ ์ผ๋ถ ํ๋ก์ ํธ๋ฅผ ๊ณ ์๋ก ๋จ๊ฒจ๋๊ณ ์ผ๋ถ ์ฌ๋๋ค์ด ์์ ์ด ํ๋ ์ผ์ ์ฌํ๊ฐํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ํ์ง ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์ด ์ ์๋์ง ๋ด
๋๋ค( helm run
๋ด ์ ์ ์ฐธ์กฐ). ๊ทธ๋ฌ๋ ๋๋ฌด ๋ฆ์ง ์์ ๋์ ๊ฐ์
ํ๊ณ ์ ์ฒด ์ฐ์
์ ์์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์๋ ๋์ ๊ฐ ์ฌ์ฉ์ ํ๊ฐํ๊ณ ๋จ์ ๊ณผ ๋ฌธ์ ์ ๋ํด ๋
ผ์ํ ๊ฒ์
๋๋ค.
ํด๋น ์๋๋ฆฌ์ค์์ Helm ์ฐจํธ๋ฅผ ์์ฑํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณ๊ฒฝ๋ ๋ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค.
์. ์ง๊ธ ๋น์ฅ์ด๋ผ๋ ๊ทธ๋ด ์ ์์ต๋๋ค. push
๋์ ๋์ปค ์ด๋ฏธ์ง์ save
/ load
๋ฅผ ์ํํ๋ ํ์ดํ๋ผ์ธ์ด ํ๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์์ฃผ ์ ์๋ํฉ๋๋ค. ์ง๊ธ์ ๊ทธ๋ ๊ฒ ๋๊ปด์ง์ง ์์ง๋ง ๊ทผ๋ณธ์ ์ผ๋ก ํจ์ฌ ๊นจ๋ํ ๋ฐฉ๋ฒ์
๋๋ค. ๋ฌธ์ ๋ K8์ด "์คํํฐ" - ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ ์กํ๊ธฐ ์ํด ๋ฒ์ค๋ก ์๊ฒฉ ๋์ปค ๋ ์ง์คํธ๋ฆฌ๊ฐ ์ฌ์ ํ ํ์ํ๋ค๋ ๊ฒ์
๋๋ค.
ํฌ๊ตฌ ์ฐจํธ๋ Docker ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐํฌ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ฌ๊ธฐ์์ ์ค์ํ ์ฐจ์ด์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ @seeruk ๋ ๊ทธ๊ฒ์ ๋ชป ๋ฐ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ง์คํ ์ ์์ต๋๋ค. ์ฌ์ค๋๋ก ๋ฐ๊พธ์ด ๋ณด๊ฒ ์ต๋๋ค.
์ฃผ์ ์ง๋ฌธ:
@seeruk :
๋ค์, @iorlas ์๊ฒ
๋น์ ์ ํ๋ฅญํ ์ค๋ช
๊ณผ ์์ ์ ๋ง์ด ๋ง๋ญ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก Helm์ด ์ ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. CI/CD๋ ์ํํธ์จ์ด ๊ตฌ์ถ ๋ฐฉ์์ ๋ฏธ๋์ด๋ฉฐ ์์งํ --atomic
์ ๊ฐ์ ์ทจ๊ธ์ผ๋ก helm์ ์ด๋ฏธ ์์ ์ ์ธ ๋ฐฐํฌ ๋๊ตฌ๋ก ๋์ฑ ์ ์ฐํด์ง๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด ๋ฌธ์ ๋ ๊ฝค ์ค๋๋ ๋ฌธ์ ์ด๋ฏ๋ก PR์ ๋ณํฉํ๋ ๊ฒ์ด ํ๋ก์ธ์ค์ "๋ค์ ๋จ๊ณ"๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ฒ ์ต๋๊น ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค๋ผ๊ณ helm-ci-cd
์ด ํน์ ์์ํ ์คํ ๊ฐ๋ฅํ --app-version
๊ธฐ๋ฅ (@jrkarnes๋ PR์ ๊ธฐ์ฌ ๋ฑ์ด ํ๋์ ์ด์ผ๊ธฐ ์๋ง๋ ์)? Tiller๋ฅผ ๋ด๋ณด๋ด๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ปค๋ฎค๋ํฐ์ ์๊ตฌ๋ ํด๋น ํ๋ฌ๊ทธ์ธ์ด ์ถ์๋ ํ์์ผ ์ค์ ๋ก ์ธ์ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. Helm์๋ ์ฝ๊ฒ ์ฐํํ ์ ์๋ ๋ค์ํ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. helm-ci-cd
๋ํ ๋ค๋ฅธ ์ข์ ํ๋ณด๊ฐ ๋ ์ ์๋ install/ upgrade
์ด์ค์ฑ์ ์ฐ๋ฆฌ CI/CD ppl์ด ์ด๋ฏธ ๋ํ์ ํตํด ํตํฉํ์ต๋๋ค.
--app-version
์ค์์น๊ฐ ํ
ํ๋ฆฟ ํ์ผ์ ๋ณผ ํ์ ์์ด k8s ์ฑ์ ์ค์นํ๋ ค๋ ์ต์ข
์ฌ์ฉ์๋ฅผ ์ํ ์ง์ ์ ์ธ ๋ถ๊ฐ ๊ฐ์น๊ฐ ์๋์ง๋ผ๋(btw, ๋ด ์์
k8s ์ธํ๋ผ๋ฅผ ์ค์ํ๊ธฐ ์ํด ๋คํธ์ํฌ ์ ์ฑ
์ ์ถ๊ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์) ์ต์ข
์ฌ์ฉ์๋ ์ฌ์ ํ ๋ ๋ง์ ๊ฐ์น๋ฅผ ์ป๊ณ ์์ต๋๋ค. ์๋ํ๋ฉด ํด๋น ์ฐจํธ๋ฅผ ๋ง๋ ์ฌ๋์ด ๋น๋๋ฅผ ์์ ์ ์ผ๋ก ๋ง๋๋ helm ci/cd ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ฐจํธ๋ฅผ ์์ฑํ๋ ๋ฐ ๋ ์์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ๋ขฐํ ์ ์๋ ์ํํธ์จ์ด๊ฐ ๋ ์ฌ์์ง๋๋ค.
groovy๋ก Chart.yaml์ ์ฝ์ ๋ค์ ์ฑ ๋ฒ์ ์ ์ค์ ํ๊ณ ๋ฐฐํฌ ์๊ฐ ๋์ ํ์ผ์ ๋ฎ์ด์๋๋ค. ๊ทธ๋ฐ ๋ค์ ํฌ๊ตฌ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ์ญ์์ค. ๊ทธ๊ฒ์ด ์กฐํ ์ฅ์น์ ์ผ๋ถ๋ผ๋ฉด ์ข๊ฒ ์ง๋ง ๋๋ ๊ทธ๊ฒ์ ์์กดํ์ง ์์ ๊ฒ์ ๋๋ค.
Google'ing์ ํตํด ์ฐพ์์ต๋๋ค. ์ฌ์ค ๊ฐ์ ๋ฐฐ.
verison:
๊ฐ ์ฐจํธ ๋ฒ์ ์ด๋ฉด ์ฐจํธ์ YAML์ด ๋ณ๊ฒฝ๋ ๋ ์ด ๋ฒ์ ์ด ๋ณ๊ฒฝ๋จ์ ์๋ฏธํฉ๋๋ค. ์ฐจํธ๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๊ฐ์ด ์๋ ํ
ํ๋ฆฟ์ด๋ฏ๋ก ์ฐจํธ์ YAML ํ์ผ์ ์์ ํ์ง ์๊ณ ๋ ์ฐจํธ 1.3์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฒ์ (1.2, 1.3, 1.6, 1.8 ๋ฑ)์ ์ฑ์ ๋ฐฐํฌํ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
์ด์ Chart.yaml ๋ด์ ํ๋ ์ฝ๋ฉ๋ appVersion:
์ ๊ณต๋ฉ๋๋ค. ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฒ์ ์ ์
๋ฐ์ดํธ(๋ฐ ๋ฐ์)ํ๊ธฐ ์ํด ์ฐจํธ ํ์ผ์ ํธ์งํด์ผ ํฉ๋๋ค.
๋์ผํ version: 1.3.0
์ฐจํธ๋ก ๋ค๋ฅธ ๋ฒ์ ์ ๋ฐฐํฌํ๊ธฐ ์ํด _application_ ๋ฒ์ ์ ์ฐธ์กฐํ๊ธฐ ์ํด ์ฐจํธ ํ
ํ๋ฆฟ ๋ด์์ ์ฌ์ฉํ ์ ์๋ --app-version
CLI ์ต์
์ด ํ์คํ ํ์ํฉ๋๋ค.
@seeruk
๋๋ Helm์ "๋ชฉ์ "์ด ์ฐจํธ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. Kubernetes ๋งค๋ํ์คํธ๋ฅผ DRY ๋ฐ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ์ ์งํ๋ฉด์ Kubernetes ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ณ ์์ ํ๊ฒ ๋ฐฐํฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ด ์ฐ๋ฆฌ์ ๋ ผ์ ์ด๋ฉฐ ๋๋ ์ฐ๋ฆฌ ์ค ์ด๋ ์ชฝ๋ ์๋๋ฐฉ์ ์ค๋ํ์ง ๋ชปํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋๋ก ์ ๋ฌธ์ ์ธ ํ๊ฒฝ์์๋ ์๊ฒฌ ๋ฌธ์ ์ ์์ด์ ํํดํ ์ ์๋ ์ฐจ์ด๋ฅผ ๊ฐ๋ ๊ฒ์ด _๊ด์ฐฎ์ต๋๋ค_. ๋๋ ํ์คํ Stallman์ด ๋งํ๋ ๋ชจ๋ ๊ฒ์ ๋์ํ์ง ์์ผ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๊ทธ์ ๋ด๊ฐ ๋์ํ์ง ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ์ฐธํธ์ ๋น ์ง๋ฉด ํฉ์์ ๋๋ฌํ๊ธฐ ์ ์ ์ฃฝ์ ๊ฒ์ ๋๋ค.
๋๋ ํ ๋ก ์์ ๊ทธ๊ฒ์ ๋ ๋งํ๊ณ ๊ทธ๊ฒ์ด ๋ฐ๋ณต๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
[...] ๋๋ ๊ทธ helm์ด ์ง์ ์ผ๋ก ํจํค์ง๋ฅผ ๋ฐฐํฌํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น์ ์ด ๋งํ ์ ์๋ ์ ์ผํ ์๋ฏธ๋ก ์ ์ฌ๋ฐ๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํจํค์ง๊ฐ ๋ฐฐํฌ๋๋ ๋ฐฉ์์ ๋ํ ๋ ผ์์ด ์ค์ ๋ก ์ด๋ฌํ ๋ ผ์์ ๊ทผ๋ณธ ์์ธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํนํ "์ฑ ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ฉด ์ ํจํค์ง๊ฐ ๊ตฌ์ฑ๋ฉ๋๊น?"
๊ตฌ์ฑ์ด ์๋ ์์ฌ helm ์ฐจํธ(MySQL์ ์ฌ์ฉํ๋ ๊ฒ์ ์ข์ํ๋ฏ๋ก ๊ณ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค) ๋ ์ฐจํธ ์์ฑ์๊ฐ ์ค๋ช ํ๊ณ ์๋ํ ๋๋ก ํด๋ฌ์คํฐ์ ๋ฆฌ์์ค๋ฅผ ์ค์นํด์ผ mysql์ ๋ํ ์ค์ ์ฐจํธ๋ฅผ ๋ณด๋ฉด ์ค์ mysql ์์ง๊ณผ ๊ด๋ จํ์ฌ ๊ตฌ์ฑํ ์ ์๋ ๋ ๊ฐ์ง ์์ฑ์ด ์์ต๋๋ค.
image
(๊ธฐ๋ณธ mysql
)imageTag
(๊ธฐ๋ณธ 5.7.14
)๊ทธ๋ฐ ๋ค์ Chart.yaml
ํ์ผ์์:
apiVersion: v1
name: mysql
version: 1.4.0
appVersion: 5.7.27
appVersion
์ ๊ธฐ๋ณธ imageTag
๋ ์ผ์นํ์ง ์์ต๋๋ค . helm list
์คํํ๋ฉด "์ฑ ๋ฒ์ "(์ฝ๊ธฐ, ์์ง ๋ฒ์ )์ด _ํด๋ฌ์คํฐ์ ์ค์น๋ ์ค์ ์ฑ ๋ฒ์ ์ ๋ฐ์ํ์ง ์๋ ์ํ๋ผ๋ ๋ณด๊ณ ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ฐจํธ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์๊ฒฉํ๊ฒ ์ฐ๊ฒฐํด์ผ ํ๋ ๊ณณ์ ์ด๋์๋ ์์ต๋๋ค.
์ด๊ฒ์ ์ ํํฉ๋๋ค. ์ ์๊ฐ์๋ ๋์์ธ ๊ฒฐํจ์ ๋๋ค.
๋ค์, @iorlas ์๊ฒ
์. ์ ์ ํ ๋ช ๊ฐ์ง ์ ์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
@IRobL
์ด ํน์ --app -version ๊ธฐ๋ฅ์ ๋ํด helm-ci-cd์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊น์?
๋ค์๊ณผ ๊ฐ์ด ์์ ์ ์ง๋ฌธ์ ๋ตํฉ๋๋ค.
--app-version ์ค์์น๊ฐ ํ ํ๋ฆฟ ํ์ผ์ ๋ณผ ํ์ ์์ด k8s ์ฑ์ ์ค์นํ๋ ค๋ ์ต์ข ์ฌ์ฉ์๋ฅผ ์ํ ์ง์ ์ ์ธ ๋ถ๊ฐ ๊ฐ์น๊ฐ ์๋๋๋ผ๋ ์ต์ข ์ฌ์ฉ์๋ ์ฌ์ ํ ๋ ๋ง์ ๊ฐ์น๋ฅผ ์ป๊ณ ์์ต๋๋ค. ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ํ๋ helm ci/cd ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ฐจํธ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด ๋ ์ฌ์ ์ต๋๋ค.
๊ธฐ๋ฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๊ธฐ ์ํด ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ ํด๋น ์ ๊ทผ ๋ฐฉ์์ ์ง์งํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ์ด ์๋ชป๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ @seeruk ์๊ฒ appVersion
๋ณ๊ฒฝํ ์ ์๋ Chart.yaml
ํ์ผ์ ๊ณ ์ ์์ฑ์ผ๋ก ๋๋ ๊ฒ์ ์ค๊ณ์์ ๊ฒฐํจ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. appVersion
์ ์์ฑ ์ธ image
์ฐจํธ๋ฅผ ํตํด ํด๋ฌ์คํฐ์ ์ค์น๋๊ณ , ๊ทธ๊ฒ์ ๊ทธ์ ํจ๊ป ์ฐธ์กฐ ์์์์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๋๋๋ค tag
.
helm-ci
ํ๋ฌ๊ทธ์ธ์ ๋ํด ์๊ฐํ ๋ ์ด๋ค ๋ค๋ฅธ ๊ธฐ๋ฅ์ด๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ์์ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น? ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ Chart.yaml
์์ฑ์์ appVersion
๋ฅผ ํ ๊ธํ๋ ๊ฒ๋ง์ผ๋ก๋ ํ๋ฌ๊ทธ์ธ์ด ๋ ๊ฐ์น๊ฐ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
@IRobL ๊ณผ @seeruk ํจ๊ป:
๋๋ ์ฐ๋ฆฌ์ ๋ค๋ฅธ ์๊ฒฌ์ด helm์ ๋ ์ผ๋ฐ์ ์ธ ์ต์ข
์ฌ์ฉ์๋ฅผ ๋๊ตฌ๋ผ๊ณ ๋ณด๋๊ฐ์์ ๋น๋กฏ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ต์ข
์ฌ์ฉ์๊ฐ ๋ง์ ๊ตฌ์ฑ์ ํ์ง ์๊ฑฐ๋ ํ
ํ๋ฆฟ์ ํ๊ณ ๋ค์ง ์๋ ์ฌ๋์ด์ด์ผ ํ๋ ๊ฒฝ์ฐ helm ls
๋ ํนํ ์ ์ฉํ์ง ์์ ์ ์์ผ๋ฉฐ ์์ ์ ๋ฌด์๋ฏธํฉ๋๋ค.
๊ทธ๋ฌ๋ ... ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ด๋ฆฌ ๋๊ตฌ ๋ฐ ๋์ฐ๋ฏธ๋ก helm์ ์ฌ์ฉํ๊ฑฐ๋ ๋ ๋ง์ CI/CD ์ปจํ
์คํธ์์ Helm์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ --appVersion
์ค์์น๊ฐ ํจ์ฌ ๋ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ ์ ์ฉ ํ๋ฏ๋ก ๊ด์ฌ ์ฌํญ(๋ฐ ๊ตฌ์ฑ),
์๋ฒฝํ ์ธ์์์ appVersion
๋ ํ์ ์์ฑ์ด์ด์ผ ํ๊ณ ๋์ปค ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ์์ ๊ฐ์ ธ์์ผ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ์ด๊ฒ์ ์กฐํ๊ฐ ํ ์ ์๋ ๊ฒ์ด ์๋๋๋ค. ์ฆ, ๊ฒฝํฉ์ ๋ถ์กฑ์
๋๋ค.
๋ด๊ฐ ๋งํ ๊ฒ์ ๋ํด
์. ์ ์ ํ์ ๋ช ๊ฐ์ง ์ ์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค...
...helm-ci
ํ๋ฌ๊ทธ์ธ์ ๋ํด ์๊ฐํ ๋ ์ด๋ค ๋ค๋ฅธ ๊ธฐ๋ฅ์ด๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ์์ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น?
์ข์ ์ถ๋ฐ์ ์ด ๋ ์ ์๋ ๊ฐ์ธ ๋ชฉ๋ก์ด ์์ต๋๋ค.
CICD
๋ชจ๋์์ helm
๋ฅผ ์คํํ๋ฉด ์ด์ ์ ๋ฆด๋ฆฌ์ค๋ ํจํค์ง์ ์ํ๋ฅผ ํ์ฌ ์ ์ฉ ์ค์ธ ํจํค์ง์ _๋ง_๋ง_ ๋น๊ตํ์ง ์์ต๋๋ค. . ๋์ ๋ฆด๋ฆฌ์ค์ ๋ชจ๋ ๋ฐฐํฌ๋ upgrade
๊ฐ ์คํ๋ ๋ ํ
ํ๋ฆฟํ๋ ๋ชจ๋ ๋งค๋ํ์คํธ๋ฅผ ์์ ํ ์ ์ฉํฉ๋๋ค.helm-cicd
๋ ๊ธฐ๋ณธ Kubernetes ๋ช
๋ น์ ๋ํํด์ผ ํฉ๋๋ค. helm describe
๋๋ helm logs
๋ฅผ ์คํํ๋ ค๊ณ ์๋ํ ํ์๋ฅผ ์
์ ์์ต๋๋ค.helm-cicd
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์คํํ ๋ ๋ช
๋ น์ ๊ฒฐ๊ณผ๊ฐ ๋ฌด์์ธ์ง ๋ณผ ์ ์์ต๋๋ค. RBAC๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์๋ํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์๊ณ ์ถ์ต๋๋ค.helm-cicd
๋ ๋์ค์ ํธ์งํ ์ ์๋๋ก ๋ค์์คํ์ด์ค๋ฅผ ๋งค๋ํ์คํธ ์ปฌ๋ ์
์ผ๋ก ๋ถํดํ ์ ์์ด์ผ ํฉ๋๋ค.helm-cicd
๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ค์์คํ์ด์ค๋ก _์ด์_ํ ์ ์์ด์ผ ํฉ๋๋ค.๊ทธ๊ฒ๋ค์ ํฐ ๊ฒ์
๋๋ค... ๊ทธ๋ฌ๋ ๋ณธ๊ฒฉ์ ์ธ helm-ci
ํ๋ฌ๊ทธ์ธ์ ๋ํด ๋
ผ์ํ๋ ๊ฒ์ (ํ์ฌ) ์ด PR/์ด์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค.
๋๋ ๋น์ ์ด ์ ๋ ฅํ๋ ๋ชจ๋ ๊ฒ์ ์ฝ๊ณ ๋๋ ๊ทธ ์ฐ์ค์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋น์ ์ ์๋ต์ ๊ธฐ๋ํฉ๋๋ค.
์ง๊ธ์ ์ ์๊ฐ์ ๊ฝค ๋ฐ์์ง๋ง ๋ช ๊ฐ์ง ์ฌํญ์ ์์ ํ๊ณ ์ถ์ต๋๋ค. @jrkarnes
appVersion์ ๋ณ๊ฒฝํ ์ ์๋ Chart.yaml ํ์ผ์ ๊ณ ์ ์์ฑ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ๋์์ธ ๊ฒฐํจ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ ์ง ์๋ค. ๋ฌด์ธ๊ฐ๊ฐ ์ด๋ ๊ฒ ๋ง๋ค์ด์ง๊ณ ๋ค๋ฅธ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ์๋ ํญ์ ์ด์ ๊ฐ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ด๊ฐ ์ฃผ์ฅํ๋ ์ด๋ ์ ํ๋์ ํจํค์ง = ํ๋์ ๋น๋, ์ฐจํธ = ๋น๋์ฉ ํ ํ๋ฆฟ, ํจํค์ง = ์ฑ + ์ธํ๋ผ์ ๋๋ค.
Helm์ K8์ OS๋ก ์ทจ๊ธํ๊ณ ํจํค์ง๋ฅผ ์ฑ์ ์ค์น ํ๋ก๊ทธ๋จ/์ ๋ฐ์ดํฐ๋ก ์ทจ๊ธํ๊ธฐ ์ํด ์ด ์ด๋ฐ์ฌ๋ก๊ธฐ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๊ณ ๋๋ก๋ ๋๋ฌด ๋ง์ ๊ฒ์ฒ๋ผ ๋๊ปด์ง์ง๋ง ํ์คํ ๋ฏธ๋์ ๋๋ค.
_์ ๊ทธ๋ ๊ฒ ๋์์ธ ๋ ๊ฒ ๊ฐ์์? ๋์ผํ helm list
๊ฐ ์ค์น๋ ํ์ฌ ํจํค์ง ๋ฒ์ ์ ํ์ํ๋๋ก ์ค์ ๋ฉ๋๋ค._
์ข์ต๋๋ค. ์ ๋ฆด๋ฆฌ์ค๊ฐ ๋ํ๋ ๋๋ง๋ค ํจํค์ง๋ฅผ ์์ฑํ๋๋ก ๋น๋๋์ง ์์ ๋ง์ ์ฐจํธ(mysql๊ณผ ๊ฐ์ ๊ณต๊ฐ ๋ฐ ๋ก์ปฌ)๊ฐ ์์ต๋๋ค. ๋์ ์์ค์ ์๋ฃจ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ค๋ฉด ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ๋์ด ํ๊ฐํฉ๋๋ค. ๋ํ ๋๊ตฐ๊ฐ๋ ํจํค์ง๋ฅผ ๋น๋ํด์ผ ํ๋ฉฐ mysql ์ ์ง ๊ด๋ฆฌ์๊ฐ ๊ฐ ๋น๋์ ๋ํด Helm ํจํค์ง๋ฅผ ์์ฑํ๋๋ก ์ค๋ํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
MySQL ์ฐจํธ์๋ ์ถ๊ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ง์ต๋๋ค. helm list
์ค์น๋ MySQL ๋ฒ์ ์ ๋ณด๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ์ง ํ๊ทธ๋ ์๊ธฐ ๋๋ฌธ์ ๋ฒ์ ์ ์ผ๋ถ์ผ ๋ฟ์
๋๋ค. ์ด ํ๊ทธ๋ ์๋ง๋ ์ฌ๊ธฐ์ ์๋ ๋ฒ์ ์ ์ผ๋ถ์ผ ๊ฒ์
๋๋ค.
๋ค์, @iorlas ์๊ฒ
์. ์ ์ ํ ๋ช ๊ฐ์ง ์ ์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ด๋ฒ์๋ helm run
๋ฅผ ์ถ๊ฐํ์๋ ์ ์์ด ์์์ต๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ ์ฐพ๊ณ ์๋ ๊ฒ์
๋๋ค. Is๋ Chart๋ฅผ ์ฆ์ ํจํค์ง๋ก ์ฌ์ฉํ์ฌ ์ฑ ๋ฒ์ ๋ฐ ๋ชจ๋ ๊ฒ์ ์ ๊ณตํ ์ ์๋๋ก ํ๊ธฐ ์ํ ๊ฒ์
๋๋ค.
์๋ฒฝํ ์ธ์์์ ๋๋ appVersion์ด ํ์ ์์ฑ์ด์ด์ผ ํ๊ณ ๋์ปค ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ์์ ๊ฐ์ ธ์์ผ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ์ด๊ฒ์ ์กฐํ๊ฐ ํ ์ ์๋ ๊ฒ์ด ์๋๋๋ค. ์ฆ, ๊ฒฝํฉ์ ๋ถ์กฑ์ ๋๋ค.
๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ต์ข ์ ํ์ผ๋ก, ๋ง์ง๋ง ํจํค์ง๋ก ๋ณด๊ณ ์์ผ๋ฉฐ, ์ด๋ ๋ง์ง๋ง ์์ค์ ๋๋ค. ๊ทธ๋ ์ง ์๋ค. Docker ์ด๋ฏธ์ง ์ธ์๋ ์๋ฌด ๊ฒ๋ ์์ผ๋ฉด ์ํํธ์จ์ด๋ผ๊ณ ๋ฏฟ๋๋ก ์์ผ ์ ์์ต๋๋ค. ์ฝ๋์ ๋ชจ๋์ ์์ฑํ ๋ ์ด ๋ชจ๋์ด ์ํํธ์จ์ด๋ผ๊ณ ๋ฏฟ๊ฒ ๋ฉ๋๋ค.
๋ฌธ์ ๋ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋จ์ง ์ผ๋ถ, ์ธ๊ณต๋ฌผ์ ๋๋ค. ์์ ์ ํ์์ ํฐ ์ ํ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ง์ ์ธ๊ณต๋ฌผ์ด ํจ๊ป ๋ฌถ์ฌ ์์ต๋๋ค. ๋๋ก๋ ๋น๋ ํ๋ก์ธ์ค ๋ด์์ ๋์ปค ํ์ผ์ ๋ฒ์ ์ ์ ๋ฌํ๊ณ ๋๋ก๋ ์ฌ๋ฌ ์ํฐํฉํธ๋ฅผ ํจ๊ป ๋ฌถ๋ ConfigMap์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ง ํ๋์ ๋์ปค ํ์ผ์ ๊ฐ์ง ์์ ๊ฒ์ ๋๋ค.
์ข์ ์ถ๋ฐ์ ์ด ๋ ์ ์๋ ๊ฐ์ธ ๋ชฉ๋ก์ด ์์ต๋๋ค.
๋๋ ๋น์ ์ด ๋ง์ ์ ์์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ์คํ๋ ค ์ผ์ ํ๋ฌ๊ทธ์ธ๋ณด๋ค๋ Helm ํฌํฌ ๊ฐ ๋ ์์ํ๊ฒ ๋๊ปด์ง๋๋ค. CD์ CI์๋ ์ ํ ๊ด๋ จ์ด ์๋ค๊ณ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๋๋ ๊ทธ๋ฌํ ํฌํฌ/ํ๋ฌ๊ทธ์ธ์ ๊ตฌ์ถํ์ง ๋ง๋ผ๊ณ ์ฃผ์ฅํ๊ณ , ์ ์ ํ ์๋ฃจ์ ์ ๋ ผ์ํ๊ณ ์ ์ํฉ๋๋ค. ํ์ฌ ์ปค๋ฎค๋ํฐ๊ฐ ๊ทธ๋ค์ง ํฌ์ง ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์๋ฌด๋ 3๊ฐ์ Helm ํฌํฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ข์์, ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๊ธฐ์ ๋ง์ ์๊ฐ์ ํฉ๋๋ค. ๊ฐ์ฅ ์ข์ ์๋๋ฆฌ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
helm ls
์์ ์ ์ ํ ์ฑ ๋ฒ์ ์ ๋ณผ ์ ์๋ ๊ธฐ๋ฅ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ์ ๊ณต๋ฉ๋๋ค.
helm install
๋ ํจํค์ง๋ฅผ ์ค์นํ๊ธฐ ์ํด ์์ฑ๋ฉ๋๋ค. Chart ์ค์น๋ ์ง์ํ์ง๋ง ์ ํ์ ์
๋๋ค. helm install
๋จ์ํํ๊ณ ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ๋๋๋ก ํฉ์๋ค. ๋ ๋ฒ์งธ๋ก helm run
์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ์๋๋ ๊ฐ์ํ๋ ํ๋ฆ์ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. Combine helm package
๋ฐ helm run
, ๋ ๋ช
๋ น ์ธ์๋ฅผ ๋ชจ๋ ์ ๊ณตํ์ง๋ง ์ด๋ฌํ ๊ฒฝ์ฐ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ ๊ฑธ๋ฌ๋
๋๋ค. .app-version
๋ฅผ helm install
cmd์ ์ถ๊ฐํฉ๋๋ค. ์ด API๋ฅผ ๋ถํ๋ ค ํจํค์ง ์ฌ์ฉ์ ๋ํ ์์ด๋์ด๋ฅผ ์จ๊ธธ ๊ฒ์
๋๋ค. ํจํค์ง๋ฅผ ์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก ์ฌ์ฉํ๋ ์ด๋ฐ์ฌ๋ก๊ธฐ๋ฅผ ์จ๊ธธ ๊ฒ์
๋๋ค(์ง๊ธ์ฒ๋ผ).์ด ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ์ง๊ธ ์ฐ๋ฆฌ๊ฐ ๊ฒช๊ณ ์๋ ๋ชจ๋ ์ด๋ ค์์ ํด๊ฒฐํ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํ ์ ์์ต๋๊น?
ํ๋ฌ๊ทธ์ธ์ ํต์ฌ ๊ฐ๋ฐ์๊ฐ ์ง์ํ๊ธฐ๋ฅผ ์ํ์ง ์๊ฑฐ๋ ์ง์ํ ์๊ฐ์ด ์๋ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ฏ๋ก ํ๋ฌ๊ทธ์ธ์ธ์ง ์๊ดํ์ง ์์ต๋๋ค.
Helm์ K8์ OS๋ก ์ทจ๊ธํ๊ณ ํจํค์ง๋ฅผ ์ฑ์ ์ค์น ํ๋ก๊ทธ๋จ/์ ๋ฐ์ดํฐ๋ก ์ทจ๊ธํ๊ธฐ ์ํด ์ด ์ด๋ฐ์ฌ๋ก๊ธฐ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
์ค์ค. ์๊ฒ ์ด. helm ์ฐจํธ[ํจํค์ง]๋ Kubernetes์ [๋ง ๊ทธ๋๋ก] "rpm"์ ์๋ฏธํฉ๋๋ค. ๋ด๊ฐ ๋ฐ์ ์ธ์์ด ์ ํ ์๋๋๋ค. helm์ ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋ฐฐํฌํฉ๋๋ค. ์ฐจํธ/ํจํค์ง๋ "k8s์ฉ์ผ๋ก ํฌ๋งท๋" ์ฑ์ ๋๋ค.
๋๋ ๊ด์ฐฎ์ต๋๋ค. ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด์ ์ ์ปจํ ์ด๋๋ฅผ ๋น๋ํ ๋ appVersion์ ์ฌ๋ฆฌ๊ธฐ ์ํด ๋น๋ ์๋ฒ๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
helm package --app-version
๋ช
๋ น๋ ์ด๋ฏธ ์์ต๋๋ค.helm package --app-version v1.2
=> ํจํค์ง[chart]-v1.2.tgz(์: "ํจํค์ง[chart]-v1.2.rpm")์, ๋ด๊ฐ ์ด๊ฒ์ ๋ํด ์๋ชป ์ดํดํ๊ณ ์์ต๋๊น? package-v1.2๊ฐ v1.2 appVersion์ด ์๋ ๊ฒฝ์ฐ ๊ทธ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ฐ ์๋๊ฐ ์๋์์๊น? ์๋ฅผ ๋ค์ด rpm์ ํจํค์ง(์ฐจํธ)๊ฐ ์๋๋ผ ์ฑ์ ๋ฒ์ ์ ๋๋ค.
ํธ์งํ๋ค:
package-v1.2๊ฐ v1.2 appVersion์ด ์๋ ๊ฒฝ์ฐ ๊ทธ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ฐ ์๋๊ฐ ์๋์์๊น?
์ด์ ์ฌ๋๋ค์ด Chart.version๊ณผ Chart.appVersion์ด ์กฐํ๋ฅผ ์ด๋ฃจ๋ ๊ฒ์ ๋ํด ๋ ผํํ๋ ์ด์ ๋ฅผ ์์์ต๋๋ค. ์ธ์๋ ์ฌ๊ธฐ์์ ์๋ฐฉํฅ์ผ๋ก ๊ฐ ์ ์์ต๋๋ค... ์์ ์ ์ธ "์ฐจํธ" ๋น๋๊ฐ ์๋ ์ฑ์ ๊ฒฝ์ฐ package-v1.2๊ฐ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ yaml ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋ package-v1.2๊ฐ ์ฐจํธ ๋ฒ์ ๋ฒํธ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์ฃผ์ฅํ ์๋ ์์ต๋๋ค.
์ฆ๊ฐํ๋ ์ฑ ๋ฒ์ (1.6)๊ณผ ์ฐจ๋ณํ๋ ์์ ์ ์ธ ์ฐจํธ ๋ฒ์ (1.2)์ ์ด๋ป๊ฒ ๊ด๋ฆฌํฉ๋๊น? package-[version]
๊ฐ 1.2๊ฐ ๋ ๊น์? ๋๋ 1.6? Chart ๋ฒ์ 1.2๋ฅผ ๋ฐฐํฌํ์ง๋ง ํจํค์ง ์ appVersion์ด ๋ณ๊ฒฝ๋์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. helm package --app-version 1.6
?
โ chart git:(master) โ helm package --app-version 1.5 nginx
Successfully packaged chart and saved it to: /Users/Documents/source/docker/nginx/chart/nginx-0.1.0.tgz
:(
.... ๋๋ฌด ํผ๋์ค๋ฝ์ต๋๋ค.
helm ์ฐจํธ[ํจํค์ง]๋ Kubernetes์ [๋ง ๊ทธ๋๋ก] "rpm"์ ์๋ฏธํฉ๋๋ค.
์ ํํ! ํ์ง๋ง ๋๋ก ๋๋ฌด ์๊ฒฉํ๊ฑฐ๋ ๋๋ฌด ๋ฒ๊ฑฐ๋กญ๊ฒ ๋๊ปด์ง ๋๊ฐ ์๋๋ฐ ๋ฐ๋ก ์ด ์ง์ ์ด ๋ฐ๋ก ์ง๋ฆ๊ธธ์ ๋๋ค.
์, ๋ด๊ฐ ์ด๊ฒ์ ๋ํด ์๋ชป ์ดํดํ๊ณ ์์ต๋๊น? package-v1.2๊ฐ v1.2 appVersion์ด ์๋ ๊ฒฝ์ฐ ๊ทธ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ฐ ์๋๊ฐ ์๋์์๊น? ์๋ฅผ ๋ค์ด rpm์ ํจํค์ง(์ฐจํธ)๊ฐ ์๋๋ผ ์ฑ์ ๋ฒ์ ์ ๋๋ค.
์ด๊ฒ์ ๋ค๋ฅธ ๋
ผ์์ ๋ฌธ์ ์ด์ง๋ง ํ์ฌ ํจํค์ง์ ์ด๋ฆ์ ์ฑ ๋ฒ์ ์ด ์๋ ์ฐจํธ ๋ฒ์ ์ผ๋ก ์ง์ ๋ฉ๋๋ค. ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ๊ณ , ๋ฐ๋๊ฐ ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์๊ฐ์๋ ์ญ์ฌ์ ์ธ ๋ฌธ์ ์ด์ง๋ง ์ ์๊ฐ์๋ ๊ทํ์ ๋ง์ฐฌ๊ฐ์ง๋ก package-{app-version}.tgz
์ด์ด์ผ ํฉ๋๋ค.
์ด์ ๋ฉ์์ง์ ๋ฐ๋ฅด๋ฉด ๋ฒ์ ์๋ 4๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฒ์ ํํ๋ ๊ฒ์ ๊ณจ์น ์ํ ์ผ์ด์ง๋ง ํ์ฌ ์๋ํ๋ ๋ฐฉ์์ ๋๋ค. ํ ๊ฐ์ง ์์ธ: ํจํค์ง๋ ์ฐจํธ ๋ฒ์ ์ดํ์ ๋ฒ์ ์ด ์ง์ ๋ฉ๋๋ค.
์ฑ ํจํค์ง์ ์ด๋ฐ์ฌ๋ก๊ธฐ๋ฅผ ์ ํํ๋ค๋ฉด ๋์ผํ ํ๋ก์ธ์ค๊ฐ ์ฑ, ์ด๋ฏธ์ง ๋ฐ ํจํค์ง๋ฅผ ๋ชจ๋ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ฑ ๋ฒ์ ์ด ์์ ํ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋ฌ ๋จ๊ณ์ ๋ค์ด๊ฐ ๋ ํ์ผ์ด ์ด๋ป๊ฒ ํธ์ถ๋๋์ง, ์ด๋ค ํ์ผ์ ์ค์นํ ์ง ๋ช ํํ ๊ฒ์ ๋๋ค. ์ง๊ธ ์ฐ๋ฆฌ๋ ํ์ดํ๋ผ์ธ์์ ํจํค์ง ์ด๋ฆ์ ํ๋์ฝ๋ฉํด์ผ ํฉ๋๋ค >_<
@iorlas
๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ต์ข ์ ํ์ผ๋ก, ๋ง์ง๋ง ํจํค์ง๋ก ๋ณด๊ณ ์์ผ๋ฉฐ, ์ด๋ ๋ง์ง๋ง ์์ค์ ๋๋ค. ๊ทธ๋ ์ง ์๋ค. Docker ์ด๋ฏธ์ง ์ธ์๋ ์๋ฌด ๊ฒ๋ ์์ผ๋ฉด ์ํํธ์จ์ด๋ผ๊ณ ๋ฏฟ๋๋ก ์์ผ ์ ์์ต๋๋ค. ์ฝ๋์ ๋ชจ๋์ ์์ฑํ ๋ ์ด ๋ชจ๋์ด ์ํํธ์จ์ด๋ผ๊ณ ๋ฏฟ๊ฒ ๋ฉ๋๋ค.
๋๋ ์ด ์ง์ ์ ๋ํด ์๊ฐํ๋ ๋ฐ ๋ช ์ฃผ๊ฐ ๊ฑธ๋ ธ๊ณ ๋๋ ๋น์ ๊ณผ 100% ๋์ํฉ๋๋ค. ๋ํ, ๋๋ ์ด์ ์ฐ๋ฆฌ์ ์๊ฒฌ ์ฐจ์ด๊ฐ ์ด๋์์ ๋น๋กฏ๋๋์ง ์ดํดํฉ๋๋ค ...
์ ๋ ์ผ๋ จ์ ์์ ์ ๋งค์ฐ ์ ์ํํ๋ ์์ ๊ตฌ์ฑ ์์๋ก ์์คํ ์ ๊ตฌ์ถํด์ผ ํ๋ค๋ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์ฒ ํ์ ๋ฐ๋ฆ ๋๋ค(UNIX ์๊ฐ). ๊ทธ๋ฌ๋ ํ๋ ์์คํ ์ "์์ฉ ํ๋ก๊ทธ๋จ"์ ์ด๋ฌํ ์์ ๋๊ตฌ์ ๊ทธ๋ฃน์ผ๋ก ์ทจ๊ธํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ปค ์ํฐํฉํธ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ์ ๊ตฌ์ฑ์์(๋์ปค ์ํฐํฉํธ์ผ ์๋ ์์)์ ์ข ์๋๋ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ "๋ฒ์ "์ ์ด๋ป๊ฒ ํ์ํด์ผ ํฉ๋๊น? ์ด๋ฌํ ์ ํ์ ์ปคํ๋ง์ ๋์ง๊ธฐ ์์ํ๋ฉด ๊ทธ๋ ๊ฒ ๊ฐ๋จํ ๋๋ต์ด ์๋๋๋ค.
์ด ์ง๋ฌธ์ ๋ตํ๋ ๊ฒ์ ์ด ๋ฌธ์ /์์ฒญ์ ๋ฒ์๋ฅผ ํจ์ฌ ๋ฒ์ด๋ฉ๋๋ค . ๋ฌธ์ ์ ๊ทผ๋ณธ์ผ๋ก ๋์๊ฐ๋ ค๋ฉด install
์ run
๊ตฌ๋ณํ๊ณ ์ถ์ต๋๋ค. ์๋ฏธ๋ก ์ ๋ฐ๋ผ install
๋ ํจํค์ง์์๋ง ์๋ํด์ผ ํ๊ณ run
๋ ํ
ํ๋ฆฟ์ ์์ฑํ๊ณ _์ํ๋ฅผ ์ ์งํ์ง ์๊ณ ์ ์ฉํ๋ ํ๋ก์ธ์ค๋ฅผ "์คํ"ํด์ผ ํฉ๋๋ค.
๋ง์ ์๊ฐ์ helm template
๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ๋ ์ฐจํธ๊ฐ ์ด๋ป๊ฒ ์ ๊ฐ๋ ์ง ํ์ธํด์ผ ํ์ง๋ง, vi-ca-vi run
๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๊ด์ฐฐํ๋ ๋ฐ๋ ๋ง์ ์ฌ์ฉ์ด ์์ต๋๋ค. ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์์ ์คํ๊ฐ ๋๋ ์ด์ค ๋ชฉ์ (์๋๊ฐ ๋งค์ฐ ๋์ผ๋ฉด ๊ฐ์น๊ฐ ์๊ธฐ ๋๋ฌธ์ ํจํค์ง๋ฅผ ์ ์งํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ).
MySQL ์ฐจํธ์๋ ์ถ๊ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ง์ต๋๋ค. helm ๋ชฉ๋ก์ ์ค์น๋ MySQL ๋ฒ์ ์ ๋ณด๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ์ง ํ๊ทธ๋ ์๊ธฐ ๋๋ฌธ์ ๋ฒ์ ์ ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค. ์ด ํ๊ทธ๋ ์๋ง๋ ์ฌ๊ธฐ์ ์๋ ๋ฒ์ ์ ์ผ๋ถ์ผ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ์๋ฒฝํ ์ฐ์ฃผ์์๋ ์ค์น๋ ๊ฐ์ฒด์ ๋ฒ์ ์ด ๋ด์ฑ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋์๊ฒ ์์ด๋์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฐจํธ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ๋ํด ์ด๊ธฐ์ ๋งํ ๊ฒ์ ์ผ๋์ ๋๋ค๋ฉด helm describe
ํ๋๊ทธ๋ก ๋ชจ๋ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ํผ์น ์ ์๋ค๋ฉด ์ด๋จ๊น์? ์ฆ, ์ฑ ๋ฒ์ ์ ์ง์ ํ ํ์๊ฐ ํด๊ฒฐ๋์ง ์์ง๋ง, ๋ (ํ๋๊ทธ์ ์ฑ ๋ฒ์ ์ ์กฐ์ ํ๊ณ ์ํ๋ ์๋๋ ฅ์ ์ผ๋ถ์
๋๋ค) ์ค์น ์ ํํ ๋ช
ํํ๊ฒ ์์ต๋๋ค.
๋๋ ๋ชจ๋ ์๊ฒฌ์ ์ฝ์์ผ๋ฉฐ ๋ฌธ์ ์ ๋ํ ์์ ํ ์๊ฒฌ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ ํ์ฌ๊ฐ ๊ฐ์ธ Helm ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ์ฐจํธ์ 90%๊ฐ ์ฃผ๋ก ํ๋์ ์ปจํ
์ด๋ ์ฌ์์ด ์๋ ํ๋์ ๋ฐฐํฌ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ appVersion
๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ๋์ดํ ์ ์๋ค๋ฉด ๋ณ์ ์ค๋ณต์ ํผํ ์ ์๊ณ helm version
์คํํ๋ ์ด ๋ฒ์ ์ ๋ณผ ์ ์์ต๋๋ค.
์ด ์ค๋ ๋๋ฅผ ์ฝ๊ณ ๋๋ฉด ์ด๊ฒ์ด ํธ๋ฆฌํ ๊ฒ ๊ฐ์ง๋ง ๋ณํฉ๋๋ฉด ์ฌ์ฉํ ์ ์๋ ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์์ฒญ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ณผ ์ ์๋๋ก ์ด์ ์ค๋ ๋์ ๋ง์ง๋ง ๋ต๋ณ์ ํฌํจํ๊ฒ ์ต๋๋ค.
ํ . ์ฌ๊ธฐ์ appVersion
๋ฅผ Docker ํ๊ทธ(๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ)์ ๋ฌถ๊ธฐ ์์ํ ๋ ์ํฉ์ด ์๋ก ๋ชจ์๋๊ธฐ ์์ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฆ, ์์์ ์ธ๊ธํ ๊ฐ๋ฐ ์๋๋ฆฌ์ค์
๋๋ค. version
๋ SemVer์ฌ์ผ ํ๋ฏ๋ก Docker ํ๊ทธ๋ฅผ Chart version
๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
appVersion
๊ฐ ์ฐจํธ์ ๋ช
ํํ์ง ์์ ๊ฒฝ์ฐ ๊ฐ๋ฐ์์๊ฒ ์๊ฐ์ ๋ฒ์ ์ฐจ์ด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
k8s๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ํจ๊ป ์๋ํ๋ ๋ฐฉ์ ๋๋ฌธ์: dev ์ธ๊ณ์์๋ ๋ณด๋ ์ ์ฒด์ ํ๊ทธ ๋ฒ์ ์ ํ์ฉํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
SemVer๊ฐ ~ ๋๋ ^ ์ฐ์ฐ์ ์ธก๋ฉด์์ ํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋ฒ์ ์ด ์๋ฏธ ์ฒด๊ณ ์์ด ์์ ํ ์ ๋ ฌ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ์ ๋ผ? ์ฐ๋ฆฌ๋ ํญ์ ์ด๊ฒ์ php composer
ํฉ๋๋ค. SemVer๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ฒ์ ์คํค๋ง์์ ๋จ์ํ ๊ตฌ๋ฌธ ๋ถ์๋๊ฑฐ๋ ๋ฌด์๋๋ ๋ฌธ์์ด ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด version
๊ฐ SemVer ๋ฒํธ๊ฐ ์๋๋ฉด ~
๋ฐ ^
ํฌํจํ์ง ๋ง์ญ์์ค.
#7299 ์ ๋ํ ๋ด ์๊ฒฌ์ ์ธ์ฉ
.deb ๋ฐ .rpm ํจํค์ง์ ๊ฒฝ์ฐ ๋ฒ์ ๋ฌธ์์ด์ด ํน์ ๋ฐฉ์(ํ์ดํ์ผ๋ก)์ผ๋ก ๋ถํ ๋์ง๋ง "์ด๊ฒ์ API์ ํธํ๋ฉ๋๋ค"์ ๊ฐ์ ์๋ฏธ๋ก ์ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก "Give ์ต์ API ํธํ ๋ฒ์ " ๋๋ "๋ณ๊ฒฝ๋์ง ์์ API๊ฐ ํฌํจ๋ ์ต์ ๋ฒ์ ์ ๊ณต"๊ณผ ๊ฐ์ด SemVer์์ ํ ์ ์์ต๋๋ค.
Debian๊ณผ RedHat ๋ชจ๋ ์ผ๋ฐ์ ์ผ๋ก soversion ๋ฒํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฌํ ์ฌ์ฉ ์ฌ๋ก(๋ฐ ABI ํธํ์ฑ)๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ํจํค์ง ๋ณ์นญ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ์ด๊ฒ์ ํจํค์ง ์ด๋ฆ๊ณผ ์ฃผ๋ฌธ ์ ์ฉ ๋น๊ต๋ง์ ์ฌ์ฉํ์ฌ ํฉ๋ฆฌ์ ์ผ๋ก ์ผ๊ด๋ ๋์์ ํ์ฉํ์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ฃผ์ ์์ ์ฐ๋ฆฌ ์ ํ์ Helm ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํ ์๋น์ค๋ฅผ ํจํค์งํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ Docker ์ด๋ฏธ์ง๋ ๋จ์ํ ์ํฐํฉํธ์ด๋ฉฐ ํด๋น ์ด๋ฆ์ API๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ SemVer๋ฅผ ์ฑํํ ์๋น์ค ๋ฒ์ ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
์ฐ๋ฆฌ์ CI ํ์ดํ๋ผ์ธ์ ์ฝ๋ ๋ฐ ๊ด๋ จ ์คํฌ๋ฆฝํธ์ git repos๋ฅผ ๋ณํํ๊ณ ์ค์นํ ์ ์๊ณ Docker ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ ์ ์๋ Helm ์ฐจํธ๋ฅผ ์์ฑํฉ๋๋ค. Docker ์ด๋ฏธ์ง์ ํ๊ทธ๋ ์ฌ์ฉ์์๊ฒ ํฅ๋ฏธ๋กญ์ง ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ณธ git SHA๋ก ํ๊ทธ๋ฅผ ์ง์ ํ ๋ค์ ๋ฆด๋ฆฌ์ค์ ์ฌ์ฉ๋ ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ๋ค์ ์ง์ ํฉ๋๋ค. ํ๊ทธ ๋ค์ ์ง์ ์ ์ฃผ์ ์ด์ ์ ํ๊ทธ๋ฅผ ํด์ ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์งง์ ๊ธฐ๊ฐ ํ์ git-SHA ๋ฒ์ ์ ํ๊ทธ๋ฅผ ํด์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
version
์๋ ์ฐ๋ฆฌ ์ํํธ์จ์ด์ ์ ํํ ๋ฒ์ ์ด ํฌํจ๋์ด ์๊ณ appVersion
์๋ ๋์ผํ ๋ด์ฉ์ด ์์ง๋ง ๋ฌธ์์ด๋ก ํฌํจ๋์ด ์๊ณ ์๋ฌด๋ ๋ณด์ง ์๊ธฐ ๋๋ฌธ์ Helm์ด ์๋ํ๋ ๋ฐฉ์์ ๋งค์ฐ ๋ง์กฑํฉ๋๋ค. Docker ๋ฆฌํฌ์งํ ๋ฆฌ์์
https://github.com/helm/charts/ ์์ ์ฐจํธ์ ๋ฒ์ ์ด ์ง์ ๋๋ ๋ฐฉ์์ ์ฝ๊ฐ ๋ง์กฑํ์ง ์์ต๋๋ค. ์ํํธ์จ์ด๊ฐ ์๋ ์ฐจํธ์ ๋ฒ์ ์ด ์ง์ ๋์ด ๊ฐ๋ ๋ง์ด๋(์์ ์ ์ธ) ์ฐจํธ version
๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์
๋๋ค. version
๋ฅผ ์ฐจํธ์ ํฌํจ๋ ํญ๋ชฉ์ ๋ฒ์ ๊ณผ ๋ถ๋ฆฌํ ๋ ์ด๊ฒ์ด ๊ฐ๋ฅํ๊ณ ํผํ๊ธฐ ์ด๋ ค์ด ๊ฒฐ๊ณผ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ด๋ถ "์ธ๋ถ์์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ํฐํฉํธ" ํ์ด์ง์ ์์ ์ ์ธ/ํ๋ก๋ฉํ ์ฐ์ค ์ด์์ ์ฐจํธ์ ์ ์ฌํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์ํ ์ํํธ์จ์ด ์กฐ๊ฐ์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก "ํ์ฌ ์ฌ์ฉ ์ค์ธ ๋ฒ์ ์ ๋ฌด์์ ๋๊น?" ํนํ "์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด ์์ ํ๊ฐ์?" ์ฐ๋ฆฌ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฒ์ ์ ์ ๊ณตํ๋ Agones๋ณด๋ค ๋ต๋ณํ๊ธฐ๊ฐ ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค.
@jrkarnes
์ฐจํธ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ๋ํด ์ด๊ธฐ์ ๋งํ ๋ด์ฉ์ ์ผ๋์ ๋๋ค๋ฉด ์กฐํ ์ฅ์น์ ํ๋๊ทธ๊ฐ ์ค๋ช ๋์ด ์๋ ๋ชจ๋ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ํผ์น ์ ์๋ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด ์ด๋จ๊น์? ์ฑ ๋ฒ์ ์ ์ง์ ํด์ผ ํ ํ์์ฑ์ด ํด๊ฒฐ๋์ง๋ ์์ง๋ง ์ค์น๋ ํญ๋ชฉ์ด ๋ ๋ช ํํด์ง๋๋ค(ํ๋๊ทธ๋ก ์ฑ ๋ฒ์ ์ ์กฐ์ ํ๋ ค๋ ์๋๋ ฅ์ ์ผ๋ถ์).
์ ๋ง ๋ณด๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด #6932์ ๊ด๋ จ ๊ธฐ๋ฅ ์์ฒญ์ด ์์ต๋๋ค.
ํ ๋ก ์ ๋ค๋ก ๋๊ธฐ๋ฉด appVersion
๊ฐ Docker ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ์ ๊ด๋ จ์ด ์๋ค๋ ์๊ฐ์ ์ ์ด๋ ์ผ๋ถ ์ฐจํธ(์ฌ์ฉ์๊ฐ ์ฃผ๋ก ๋ค๋ฃจ๋ ์ฐจํธ)๊ฐ ํ๋ ๊ฒ์ฒ๋ผ ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ์ง ์์ต๋๋ค. Docker ์ด๋ฏธ์ง๋ฅผ ํฌํจํ์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ ๊ณต์ ๋ฆฌ์์ค(์: JWT ๊ณต๊ฐ ํค, values.yaml
)์ ๋ค๋ฅธ ์ฐจํธ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ requirements.yaml
์ฉ ํธ์คํธ์
๋๋ค.
appVersion์ด Docker ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ์ ๊ด๋ จ๋์ด ์๋ค๋ ์๊ฐ์ ์ ์ด๋ ์ผ๋ถ ์ฐจํธ์ ๊ฐ์ด ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์ ํ์คํ ๋ง์ง ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด _์๋๋ ์ฉ๋๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ๋จ์ง ๊ทธ๊ฒ์ด ๋
ผ๋ฆฌ์ ์ฐ๊ด์ฑ์ด๋ผ๊ณ ๋งํ๋ค. ์ฌ์ ํ appVersion
๋ฅผ ๋ด๋ถ yaml์ "๋
ผ๋ฆฌ์ ์ปจํ
์ด๋"๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
SemVer์ version
๋ฅผ ์ ๊ทธ๋ ๊ฒ์ด ์ด๋ค ์ด์ ์ด ์๋์ง ์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. helm์ด version
(๋ฐ appVersion
)๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ๊ฑฐ๊ธฐ์์ ์งํํ ์ ์์ต๋๊น?
๋ด ์์ ์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ์ง ์์์ด์๋ค๊ณ ์๊ฐํ๋ค appVersion
๊ฐ ์ฐ๋ฆฌ์ Chart.yaml์ ์ผ๋ฐ์ ์ผ๋ก ์กด์ฌํ์ง์ ๋ชจ๋ ์์ํ๊ณ ์์ ๋, ๊ทธ๊ฒ์ ๋์ผ์ version
.
version
๋ฅผ SemVer์ ๊ณ ์ ํ๋ฉด ๋ค์ํ SemVer ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ์์ ์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ์ฌ ์ค์น๋ฅผ ํตํด ์ ๋ ฌ ๋ฐ ์ผ์น๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
RPM ๋ฐ DEB ํจํค์ง ์์คํ ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ค๋ ์ ์ ์ ์ธํ๋ฉด ๋์ผํ ๊ฒ์ด์ง๋ง ์๋ฏธ๋ก ์ ๊ตฌ๋ฌธ ๋ถ์์ ์ํด ์ฌ์ ํ ์ ํ๋ ๊ตฌ๋ฌธ์ ๋๋ค. ๊ทธ๋ค์ ๋ํ ๊ทธ๋ค์ด ๊ด์ฌ์ ๊ฐ๋ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
helm/charts ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์คํ๋ ๋ฐฉ์์ ๊ฐ์ํ ๋ DEB ๋๋ RPM ์คํ์ผ ๋ฒ์ ์ด ์๋ ๋จ์ผ version
ํ๋๊ฐ SemVer์ appVersion
๋ฌธ์์ด์ ๋ํ ๊ฒ๋ณด๋ค ๋ ๋์ ์ ํ์ด์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์์ ํ ๋ค๋ฅธ ์ด๋ฏธ ํญํดํ ๋ฐฐ์
๋๋ค. ์ด๋ฆฐ ์์ ์ ์
์คํธ๋ฆผ ๊ณต๊ธ์
์ฒด์ด์ ๋ฐ๋น์ ํจํค์ง ์ ์์์๊ธฐ ๋๋ฌธ์ "์ฌ๊ธฐ์ ์ด๋ค ๋ฒ์ ๋ฒํธ๋ฅผ ์์ ํด์ผ ํ๋์?" ์ฐ๋ฆฌ์ " version
is one truth" ํจํค์ง์์.
"๋๋๋ก SemVer์
๋๋ค"์ ๋ฌธ์ ๋ SemVer๊ฐ ํ์๊ฐ ์์ผ๋ก ์์ฑํ๊ฑฐ๋ ๋ค๋ฅธ ๊ณณ์์ ์ ํ ์ ์๋ ๊ฒ๊ณผ ๋งค์ฐ ํก์ฌ ํ๋ค๋ ๊ฒ์
๋๋ค. .
์๋ . ์ด ๊ธฐ๋ฅ์ ๋ํ ๋ด์ค๊ฐ ์์ต๋๋ค.
๋ชจ๋ ๋๊ธ์ ์ฝ์ ํ, ๋๋ ๊ทธ๊ฒ์ด ์ ๋ง ๋์์ด ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ ํ์ฌ์๋ ๋์ผํ ๊ธฐ์ ์ ์ฌ์ฉํ๊ณ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌ๋ ์ฌ๋ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ผ๋ฏ๋ก ์ค๋ณต์ ํผํ๊ธฐ ์ํด ์๋ก ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ํ๋์ ์ฐจํธ๊ฐ ์์ต๋๋ค.
์ธํ๋ผ, ๊ตฌ์กฐ์ ๋ณํ๊ฐ ์์ ๋๋ง ์๋ก์ด ์ฐจํธ๋ฅผ ํจํค์งํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํน์ ๊ฐ์ ํ๊ทธ, ํ๊ฒฝ ๋ณ์๋ก ์ ์ฉํ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์
๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์ค์นํ ๋๋ง ...
์ฐ๋ฆฌ๋ ํจํค์ง๋ helm ์ฐจํธ๊ฐ ํ ์ข ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํด ์์๋๋ kubernetes ๋ฆฌ์์ค ๋ฐ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ์ถ์ํ ๊ณ์ธต์ด๋ผ๊ณ ์๊ฐํ๋ฉฐ ๋ฐฐํฌ ์ค์๋ง "์ด๋ฐ ์ข ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ฌํ ํน์ ๊ฐ์ ์ฌ์ฉํ์ฌ ํด๋น ํ๊ฒฝ์ ๋ฐฐํฌ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค"๋ผ๊ณ ๋งํฉ๋๋ค.
helm ๋ชฉ๋ก์๋ ๋ฆด๋ฆฌ์ค ์ ๋ณด๊ฐ ํ์๋์ด์ผ ํ๋ฏ๋ก ์ด ๋ฆด๋ฆฌ์ค์ ๋ฐฐํฌ๋ ์ฑ ๋ฒ์ ์ ๋ณผ ์ ์์ด์ผ ํฉ๋๋ค.
๋น์ทํ ๋ฌธ์ https://github.com/helm/helm/issues/7517์ ๋๊ธ์ ๋จ๊ฒผ์ต๋๋ค.
values.yaml ์์ ์ด๊ฒ์ ์ฌ์ ์ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๊น?
๊ทธ๋ฐ ๋ค์ ๋ฌด๋ฃ --set
๋ช
๋ น์ค ์ต์
์ ์ป์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด๋ค ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด helm์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์ด๊ฒ์ ์ ๋์ ์ผ๋ก ์ง์ฆ๋ฉ๋๋ค. ์๋ฌด๋ ํ๋ก๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋๋ ๋์ํ๋ค. ํ์ฌ ๋ณ๊ฒฝํ ์ ์๋ _application_ ๊ธฐ๋ฐ ์ฐจํธ์ ๋ํด ์ฐจํธ ๋ฐ๋ฌผ๊ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฐจ๋จ๋์์ต๋๋ค. ์ฐจํธ ๋ฒ์ != ์ฑ ๋ฒ์ ์ด๋ฏ๋ก ์ฐจํธ ๋ฎค์ง์์ ํตํด ์ถ์ํ ์ ์์ต๋๋ค.
๋๋ ์์ ๋ ผ์(์ ๋ถ๊ฐ ์๋)๋ฅผ ๋ค ์ฝ์์ผ๋ฏ๋ก ์ผ๋ถ ์์ /๊ด์ ์ ๋ฐ๋ณตํ๊ณ ์๋ค๋ฉด ์ฃ์กํฉ๋๋ค. ๋ณด๋ค ์ ์คํ ๋ต๋ณ์ ๋๋ฆฌ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
๋๋ helm ls
ํ ๋ appVersion์ ๋ณด๋ ๊ฒ์ ์ข์ํ๊ณ ๊ฐ๋
์ ์ผ๋ก .Values.image.tag
์์ ์ด๋ํ๋ ๊ฒ์ ์ข์ ์ผ์ด์ง๋ง ๋ฐฐํฌ ์๊ฐ์ ์ค์ ํ ์ ์๋ค๋ ๊ฒ์ ์ง์ ํ ์ผ ์คํ ํผ์ด๋ฉฐ ๋ด๊ฐ ๊ฐ์ง ๊ฒ์
๋๋ค. ๋๋๋ฆฌ๊ธฐ ์ํด.
(์ฐจํธ) version
๋ ์ฐจํธ ๋ฒ์ ์ด๊ณ appVersion
๋ ๋์ปค ํ๊ทธ์
๋๋ค. CI ํ๋ก์ธ์ค์์ docker ํ๊ทธ๋ git ํ๊ทธ์ด๊ธฐ๋ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ์ฌ๋ฌ ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ๊ฐ๋ฅํ ํ DRYํ ์ํ๋ก ์ ์งํ๊ณ ์ ํฉ๋๋ค. ๋๋ถ๋ถ์ java-springboot ์ฑ์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ผ๋ฐ ์ฐจํธ๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ tomcat ์ฑ์ ๋์ผํฉ๋๋ค(๊ทธ๋ฌ๋ springboot ์ฑ๊ณผ ๋ค๋ฆ
๋๋ค). ๋ค๋ฅธ ๊ธฐ์ ์ ๋ํด ํน๊ตฌ๊ณ ๋ฐ๋ณตํฉ๋๋ค. ๋ค์ํ ํ๊ฒฝ์ ํตํด ๋ฐฐํฌ๊ฐ ์งํ๋จ์ ๋ฐ๋ผ ํ๊ฒฝ์ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ๊ฐ ๋ง์ดํฌ๋ก ์๋น์ค๋ CI/CD๋ฅผ ํตํด ์ผ๋ฐ ์ฐจํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์: helm upgrade release-name private-repo/generic-chart --values <environment>.yaml --set image.tag=<docker tag from build step> --namespace <environment> --install
.Values.image.tag
๋ณด๋ค .Chart.AppVersion
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํธํ์ง๋ง ์กฐ์ง์ ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํ ์ ์์ด์ผ ํฉ๋๋ค.
helm ls
๋ฅผ ํ๋ฉด CHART
์ APP VERSION
์์ผ๋ฏ๋ก ์ ์ฒด ์ฐจํธ ๋ฒ์ ์ด ์ฑ ๋ฒ์ ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ทธ ๊ธธ์ ๊ณ์ ๊ฐ๋ฉด ์ฌ๋๋ค์ด ์์ธ๋ ๋ฟ ์๋๋ผ ์ฌ๊ณ ๋ฐฉ์์ด ๋๋ฌด ์๊ฒฉํ๊ณ ๋ง์ ์ฌ๋๋ค์ด ์ถ๊ตฌํ๋ ๋ฐ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ด๋ ์์ ์์ ํ๋ก์ ํธ๊ฐ ๋ถ๊ธฐ๋ ๊ฒ์
๋๋ค. ๋ํ " image.*
, nameOverride
& fullnameOverride
. image.*๋ deployment.yaml ๋ฑ์์ ํ๋ ์ฝ๋ฉ๋ ์ ์์ต๋๋ค." ๋งค์ฐ ๋น์ทํ ์ด์ ๋ก.
๋ง์ง๋ง ์์ ์ ๋ง์ ๊ณต๊ฐ ์ฐจํธ๊ฐ ์ฌ์ฉํ๋ ๋์ปค ์ปจํ
์ด๋ ๋ฒ์ ๊ณผ ์ ํํ ์ผ์นํ์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ฃผ ๋ฒ์ ๊ณผ ๋ถ ๋ฒ์ ์ด ๋กค๋ง๋์ง ์๋ ํจ์น ๋ฒ์ ๋ง ์๋ ๋กค๋ง ํ๊ทธ์ธ ์ํ์ธ ๋๋ nginx์ ๊ฐ์ด ๊ฐ์ฅ ์ ์๋ ค์ง ๋์ปค ์ปจํ
์ด๋๋ฅผ ์ดํด๋ณด์ญ์์ค. ๋ชจ๋ ํจ์น ๋ฒ์ ์ ๋ํด 1:1 ๋งคํ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ด ๊ฑฐ์ ๋๋ ์ ํ ์์ด ์๋นํ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ๋ก๋์
ํ๊ฒฝ์์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ต์ ๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ๋ ๋๋ฌธ ์ผ์ด ์๋๋๋ค. ํ๋ก๋์
์์ ๋กค๋ง ๋ฒ์ ์ ๋ํด ๋๋ถ๋ถ์ ์ฅ์์ ๋งํ์ง ๋ง์ญ์์ค.
์์ ๋ชจ๋ ๊ฒฐ๊ณผ๋ "์ helm์ด ์ฐจํธ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?"๋ผ๋ ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค.
์ค์น/์
๊ทธ๋ ์ด๋ ์ appVersion
๋ฅผ ๋ฎ์ด์ธ ์ ์๋ค๋ ๊ฒ์ ์ด๋ฏธ ์ฐจํธ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์์ถ์ ํ๊ฑฐ๋ ์ค์น/์
๊ทธ๋ ์ด๋๋น appVersion
ํธ์งํด์ผ ํ๊ฑฐ๋ ํ์ํ ๋์ปค ์ปจํ
์ด๋๋ฅผ ๋ํ.
์์ ํ ํ์ค ์ค์น๊ฐ ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ๋ ์์ธ์ด๋ฉฐ ์๋ ์์ฑ ์ํธ ๋ฑ์ ๋๋ฌ์ธ๊ณ ์ด๋ฏธ ๋ง์ ๋
ผ์์ด ์์ต๋๋ค.
๋๋ ๋ง์ง๋ง ๋จ๋ฝ์ด ๋ด๊ฐ ํ ๋ผ๊ตด๋ก ๋ด๋ ค๊ฐ ๊ตฌ์์ ๋ชฐ๋ํ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์์ง๋ง "appVersion์ด ๋์ปค ํ๊ทธ์ด๊ณ ๋ช
๋ น์ค์ด๋ ๊ฐ์ ํตํด appVersion์ ์ค์ ํ ์ ์๋ค"๋ ๊ฒ์ด ์ฐ๋ฆฌ๋ฅผ ๋ฐ๋ ค๊ฐ๋๋ค.
@timothyclarke : ์ฌ๊ธฐ์ ์ค๋ช
๋ helm upgrade
์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ helm package
๋จผ์ --version
๋ฐ --app-version
์ ์ค์ ํ ์ ์์ต๋๋ค helm install
ํ ์ ์์ผ๋ฉฐ --set
๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ค์น ์ฌํ์ฑ์ ๋์ด๋ CI ์ํฐํฉํธ๋ก ์ฃผ๋ณ์ ๋ณด๊ดํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋ํ ๊ฒ์
๋๋ค. "์ผ๋ฐ ์ฐจํธ" ์ธก๋ฉด์ ์์ง๋ง ์ฐจํธ๊ฐ ์ผ๋ฐ์ ์ด์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
+g<shortCommitSHA>
์ ๊ฐ์ด Version
์ ๋น๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ข์ ๊ธฐํ์ด๊ธฐ๋ ํฉ๋๋ค.
#7517์ ๋ฐ๋ผ CI ํ
์คํธ ํด๋ฌ์คํฐ์ ์ค์นํ๊ธฐ ์ ์ image.tag๋ฅผ ๋ค์ ์์ฑํ๊ณ ๋์ค์ ํจํค์งํ ๋ ๋ค์ ์์ฑํ๋ ๋ง์ sed
ํธ์ถ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ค์ ๋ก ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์์ ์ ์ฐจํธ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ, ํนํ ์ฒดํฌ์์์ ์ฐจํธ ์์ค์์ ์ค์นํ๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์์ ๊ฒช์ ์ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ฐ์ ธ์จ ์ฐจํธ์ ์ด ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์ค์ ๋ก ๋์์ด ๋์ง ์์ง๋ง, ์ฌ๊ธฐ ์๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์น๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋์๊ฒ ์ค์น ์ ์ฑ ๋ฒ์ (๋๋ ๋ฒ์ )์ ์ฌ์ ์ํ๋ ์ํ์ ์ฐจํธ๋ฅผ ๋ค์ ๋ง๋ค๋ ค๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ช
ํํ๊ฒ ๋ณด์ด์ง ์์ ์๋ฃ๋์๋ค๋ ๊ฒ์
๋๋ค. ๊ฐ ์ง์์ ์ด๋ป๊ฒ๋ ํดํน๋์ง ์๋ ํ helm get values -o yaml
์ฌ์ฉํ์ฌ ์ฐจํธ์ ํ์ฌ ๊ตฌ์ฑ์ ์ถ์ถํ ๋ ๊ฑฐ๊ธฐ์ ์์ ๊ฒ์ด๋ฏ๋ก ๋ผ์ด๋ธ ์ฐจํธ ๋ฐฐํฌ๋ฅผ ์ฌ์ฉ์๊ฐ ์ป๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ ๋ง๋๋ _ํ๋ ๋_๊ฐ ๋ฉ๋๋ค. helm install <some way to specify a particular package> --values <values from helm get values>
, ์๋ฅผ ๋ค์ด ํ
์คํธ ์ค์ ์์ ํ๋ก๋์
์์ ๋ณธ ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ค๊ณ ํ ๋.
๋์๊ฒ ์ค์น ์ ์ฑ ๋ฒ์ (๋๋ ๋ฒ์ )์ ์ฌ์ ์ํ๋ ์ํ์ ์ฐจํธ๋ฅผ ๋ค์ ๋ง๋ค๋ ค๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ช ํํ๊ฒ ๋ณด์ด์ง ์์ ์๋ฃ๋์๋ค๋ ๊ฒ์ ๋๋ค. ๊ฐ ์ง์์ ์ด๋ป๊ฒ๋ ํดํน๋์ง ์๋ ํ
helm get values -o yaml
์ฌ์ฉํ์ฌ ์ฐจํธ์ ํ์ฌ ๊ตฌ์ฑ์ ์ถ์ถํ ๋ ์กด์ฌํ์ง ์์ต๋๋ค.
๋จธ๋ฆฌ์ ๋ชป์ ๋ฐ์์ต๋๋ค. ์ด๊ฒ์ ์ฒซ๋ ๋ถํฐ values.yml
์ ์์ด์ผ ํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๋ํ ์ฒ ํ์ ์ฃผ์ฅ์ ์ดํดํ์ง๋ง ํ์ฅ ์ค์ต์ ํตํด ์ฐ๋ฆฌ๋ฅผ ํฌํจํ ์ฌ๋๋ค์๊ฒ ๋ง์ ๋์์ด ๋ ๊ฒ์์ ๋ณด์ฌ์ค๋๋ค.
values.yml
ํตํด ์ฑ ๋ฒ์ ์ ์ค์ ํ ์ ์๋ ๋ง์ ์ฐจํธ๊ฐ ์์ต๋๋ค. ํนํ ์ฌ๊ธฐ์ ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ทธ๊ฒ์ด ๋
ผ์๋์๋์ง ํ์คํ์ง ์์ง๋ง(๋น ๋ฅธ CTRL+F๋ฅผ ์ํํ์ง๋ง ํ์ ์ ์ฐพ์ ์ ์์), ๋์ฒด ์๋ฃจ์
์ผ๋ก appVersion
๋ชจ๋ ํจ๊ป ์ ๊ฑฐํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์ ์๊ฐ์๋ ์ ์ฒด ํผ๋์ ํผํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ฌ appVersion
๋ ์ผ์ข
์ "ํน์" ๊ฐ์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Prometheus์ ์ฐจํธ ๋ฒ์ 123.5.6์ ๊ฐ์ง ์ ์์ง๋ง appVersion: 2.17.1์ด ์์ ๊ฒ์ด๋ฏ๋ก ๊ฐ์์ฑ์ ์ ๊ณตํ๊ธฐ ์ํด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. helm ls
์ฌ์ฉํ์ฌ ์ฐพ์ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ณต๋ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ถ์ ๋ ์ด๋ธ์ ํตํด? ์๋๋ฉด jsonPath
์ฟผ๋ฆฌ ์์๋ ๊ฒ๊ณผ ์ ์ฌํ ๋ชจ๋ ์๋ฃ, ์ด์ kubectl
์ :
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
๊ทธ๋ฐ ๋ค์ helm
์์ฒด์ ์ํด ์ํ๋๋ ๋์ ๋ชจ๋ฒ ์ฌ๋ก๋ก ์ง์์ด ์ ํ๋ฉ๋๋ค. ๊ทธ๊ฒ์ ๋ํ ๋ณดํ ์ผ ์ ์์ต๋๋ค.
๋ฐ๋ฉด์ ๋ง์ ์ฌ๋๋ค์ด appVersion
์ ๊ธฐ์กด ๊ตฌํ์ ์์กดํ๊ณ ์๋ค๋ ์ ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
ํ ๊ฑธ์ ๋ฌผ๋ฌ์์ ์ ํํ appVersion
๊ฐ ์ถ๊ฐ๋ ์ด์ ๋ฅผ ์ดํดํ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ๊น์?
@bokysan ๊ทธ๊ฒ์ ์ด์ ์ ์์๋ค values.yaml
๊ทธ๊ฒ์ ์ด๋ํ๋ค Chart.yaml
I ์ ์ฒด์ ๋ํ ์ถ์ธกํ๊ณ ์์ด helm ls
์คํ๋ ค ๋ช
๋ น ๋ฑ์ ์คํํ๋ ๊ฒ๋ณด๋ค ์ฐจํธ์ ๊ณ ์ ํ์๊ธฐ ํ๊ทธ๋ฅผ ๋ชจ๋ ๋ณด์ฌ์ฃผ๋ ~์ฒ๋ผ
kubectl get deployment <release name> -o jsonpath='{.spec.template.spec.containers[0].image}'
@TBBle ๊ทํ์ ๊ฐ ์์ ์ ๋ํด
initContainers ๋ฐ ์ฌ์ด๋์นด ์ฌ์ฉ์ ์์ํด์ผ ํ๋ ์ฆ์ appVersion์ ์ ์ ๊ฐ ์์ ํ ๋ฌด๋์ง๋๋ค. ์ค์ ์ฌ๋ก๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ํ์ฌ ๊ด๋ฆฌํด์ผ ํ๋ ํ๋ก์ ํธ ์ค ํ๋์ PHP ์ฌ์ด๋์นด๊ฐ ์๋ nginx๊ฐ ์์ต๋๋ค. nginx ๋ฐ php ํ๊ทธ๋ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. PHP ์ปจํ
์ด๋/๋ฒ์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฐ๋ฐ์์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ฐ์ฅ ์์ฃผ ๋ณ๊ฒฝ๋๋ ์ปจํ
์ด๋๋ ์ฝํ
์ธ ๋ฅผ ์ ๊ณตํ๋ initContainer
์
๋๋ค.
appVersion
๋ฅผ initContainer
, php
์ปจํ
์ด๋๋ก ์ค์ ํฉ๋๊น ์๋๋ฉด nginx
๋ก ์ค์ ํ๊ณ ์ด ์ค ํ๋๋ง ์ ํํ์ฌ ์์ค๋ ์ ๋ณด๋ ๋ฌด์์
๋๊น?
์ฌ์ฉ์์๊ฒ ์ค์ํ๋ค๋ฉด PHP ๋ฒ์ ์ด์ด์ผ ํ์ง ์์๊น์? ๊ทธ๊ฒ์ด ๋น์ ์ด ๊ด๊ณ ํ๋ ๊ฒ์ ๋๋ค. appVersion์ ์ธ ๊ฐ์ง๋ฅผ ๋ชจ๋ ๋ฃ์ ์๋ ์์ต๋๋ค. ๊ฒฐ๊ตญ ์์ ํ ์คํธ ํ๋์ ๋๋ค.
appVersion
== ์ปจํ
์ด๋ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ๊ฐ์ ์ ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์ค์ํ์ง ์์ ์ฐจํธ(์: ๋ ์ด์์ ์ปจํ
์ด๋๊ฐ ์๊ฑฐ๋ ์ปจํ
์ด๋๊ฐ ์๋ ์ฐจํธ)์์ ์ด๊ฒ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ด ์์ ์ ์๋์ง๋ง imageVersion
๊ฐ ๋ ๊ฒ์
๋๋ค. ๋จ์ผ ์
์คํธ๋ฆผ ์ฑ์ ํจํค์งํ๋ ๊ฒฝ์ฐ ํด๋น ๋ฒ์ ์ ์ฌ์ฉํ์ญ์์ค. ์ฌ๋ฌ ์
์คํธ๋ฆผ ์ฑ์ ํจํค์ง๋ฅผ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ prometheus-operator's ์ฐจํธ์ ๊ฐ์ ํ๋๋ฅผ ์ ํํ๊ฑฐ๋ ์ ํ์ ํ๋์ด๋ฏ๋ก appVersion์ ๋ฌด์ํ์ญ์์ค.
์ฐจํธ ์์ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ _์ผ๋ถ_์ธ ๊ฒฝ์ฐ(์: Agones) appVersion
๋น์๋๊ฑฐ๋ ์์กดํ๋ ๋๊ตฌ๊ฐ ์๋ ๊ฒฝ์ฐ version
์์ ๋ณต์ฌํ์ญ์์ค.
์ด ์ค ์ด๋ค ๊ฒ๋ helm install
-์๊ฐ ๊ฒฐ์ ์ผ ํ์๋ ์์ต๋๋ค. ์์ ์ธ๊ธํ๋ฏ์ด helm package
๋ "์ค์น ์ ํ์ฌ ์ฐจํธ์ ๋ํด ๋ค๋ฅธ ์
์คํธ๋ฆผ ๋ฒ์ ์ผ๋ก ์ ํ"์ ์ ์ธํ๊ณ ๋ชจ๋ ์ํฌํ๋ก์ ๋ํด ์ถฉ๋ถํ ๋ฆ๊ณ --values
๋๋ --set
์์ด์ผ ํฉ๋๋ค --set
์
๋๋ค.
์์งํ ๋งํด์, ์ค์ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์๋ง๋ " appVersion
through tpl
"์ผ ๊ฒ์ด๋ฏ๋ก .Values.image.tag
๋๋ ๊ทํ์๊ฒ ์ ํฉํ ๋ฌด์์ด๋ ์ฝ์ ์ ์์ต๋๋ค.
appVersion
== ์ปจํ ์ด๋ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ๊ฐ์ ์คํํ๋ ค๋ ๊ฒฝ์ฐ
๊ทธ๋ฐ ๋ค์ ์ฐ๋ฆฌ๋ ์๋ง๋ https://github.com/helm/helm/issues/7517์ ์์ ๊ฒ์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ์ด๋์์ ๋น๋กฏ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
๋๋ ์ด ๋ ผ์๊ฐ ์ ํ ์ดํด๊ฐ ๋์ง ์๋๋ค. ์ฌ๋๋ค์๊ฒ ๊ฐ์ฅ ์ ํฉํ๋ค๊ณ ์๊ฐํ๋ ๋ฐฉ์์ผ๋ก ์ฑ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๋ ์ต์ ์ ์ ๊ณตํ์ง ์๋ ๊ฒ์ด ํฐ ๋ฌธ์ ์ธ ์ด์ ๋ ๋ฌด์์ ๋๊น?
ํ์ฌ ํํ์์๋ ์ด APP VERSION
๊ฐ ์ ํ ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ์ฌ๋๋ค์๊ฒ ํผ๋์ ๊ฐ์ ธ์ฌ ๋ฟ์
๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ์ ํฌ๊ตฌ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋> (80) ์๋น์ค๋ฅผํ๊ณ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ๋ณ๊ฒฝํ๋ ค๋ฉด์ด APP VERSION
์์ helm upgrade -i ...
๋๋ ์ฐ๋ฆฌ์ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ํ ํจ๊ป์์ ๊ฒ์ ๋ณผ 1.0
์ฌ๊ธฐ
๋๋ ๋ํ ๋ชจ๋ ์ฌ๋์๊ฒ helm list
๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ๋งํด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด
๋๋ ์ด ๋ํ๋ฅผ ์ฝ์ ๋ ์ฒ์์๋ ๋๊ด์ ์ด์์ง๋ง ๋ง์ง๋ง์ ๊ฐ์ ๋น์ ์ด ์ด๊ฒ์ ์ด๋ป๊ฒ ํ ๋ก ํ๊ณ ์ฌ์ฉ์๊ฐ ๋น์ ์ ์๊ฐ์ ๊ฐ๋๋ก ๊ฐ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด๊ณ ์ง๊ธ ํฌ๋ง์ ์์์ต๋๋ค :(.
helm list
, helm history
๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์ถ๋ ฅ "CHART(version)" ๋ฐ "APP VERSION"์ด ์์ผ๋ฉด ๋งค์ฐ ์ ์ฉํ๋ฉฐ ๋ค์์ ์ป๊ธฐ ์ํด ๋ช
๋ น์ค ์ต์
๊ณผ ์ถ๋ ฅ ๊ตฌ๋ฌธ ๋ถ์์ ๋ ๊น์ด ํ๊ณ ๋ค ํ์๊ฐ ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ์ฌ์ค.
"CHART(version)"๊ณผ "APP VERSION"์ด ๋น๋ ์ ์ฐ๊ฒฐ๋๋ฉด("helm package") ๋ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ ๊ฐ๋ ์ ์ฒด ์ด์ ์ด ๋ค์ ์์ค๋ฉ๋๋ค. ์ฐจํธ๋ฅผ ์์ฑํ๊ณ ์ฐจํธ ๋ฒ์ ์ ์ฆ๊ฐ/์ ๋ฐ์ดํธํ์ง ์๊ณ ์ฑ ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ฉด ๋์ผํ ์ฐจํธ ๋ฒ์ ์ด ๋งค์ฐ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ฏ๋ก ํฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. :-<
๋ฐ๋ผ์ ํ์ฌ๋ก์๋ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์ ํจ๊ป ํจํค์ง๋ฅผ ๋น๋ํ๊ณ "์ฐจํธ(๋ฒ์ )" ๋ฐ "์ฑ ๋ฒ์ "์ ๋๊ธฐํํ์ฌ ๋ฏธ์น/๋ถ๋ถ๋ช ํ ์ํฉ์ ๋น ์ง์ง ์๋๋ก ํด์ผ ํฉ๋๋ค.
๋ฐฉ๊ธ ๋ฐฐ์ด ๊ฒ์ฒ๋ผ "APP VERSION"์ ์ ํ ์ฌํญ์ด๋ฏ๋ก ์ผ๋ถ ์ฌ์ฉ์ ์ง์ ๊ฐ์ ์ฌ์ฉํ๊ณ ์ด๋ฏธ์ง์ ๋ํด {{ Chart.appVersion }} ๋์ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง helm list
๋ ๋ ์ ์ตํฉ๋๋ค. :-<
์ฌ์ฉ์(๊ฐ๋ฐ์) ๊ด์ ์์:
์ฐ๋ฆฌ๊ฐ ๊ทธ ์ผ์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๊น?
"CHART(version)"๊ณผ "APP VERSION"์ด ๋น๋ ์ ์ฐ๊ฒฐ๋๋ฉด("helm package") ๋ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ ๊ฐ๋ ์ ์ฒด ์ด์ ์ด ๋ค์ ์์ค๋ฉ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ๋ถํํ์์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ๋ ์ฑ ๋ฒ์ ์ ์ด์ ์ ํ์ฌ ์ค์ ์์ ์๋ํ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฐจํธ ๋ฒ์ ์ ์ ์ฒด ์ฐจํธ์ ๋ฒ์ ์ด ์๋๋ผ ์ ์ฒด ์ฐจํธ์ ๋ฒ์ ์ด๊ธฐ ๋๋ฌธ์ _ํด๋น ์ฐจํธ ๋ฒ์ ์ ๋ํ ๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ์ ์ ์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฐจํธ์ ํ ํ๋ฆฟ ๋ฒ์ ์ ๋๋ค. "์ฐ๋ฆฌ๋ Helm ์ฐจํธ์ ๋ฒ์ ~XY๊ฐ ํ์ํฉ๋๋ค"์ ๊ฐ์ ๋ชจ๋ ๋ฌธ์ฅ์ "์, AppVersion์ ์๋ง์ผ๋ก ๋ง๋ค์ง ๋ง์ญ์์ค"๋ฅผ ๋์ ์ถ๊ฐํ๋ ๊ฒ์ ์ซ์ดํฉ๋๋ค.
์ด ์ด์ ์ ์ฑ ๋ฒ์ (๋ฐ ์ฑ์ ์ค์ ๋ฒ์ )์ด ์ค์น ์ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ์์ค๋ฉ๋๋ค. ์ด์ ์ฐจํธ ๋ฒ์ ์ด ์ฌ์ฉ ์ค์ธ ์ฑ์ ์๋ ค์ฃผ์ง ์๊ณ SemVer๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ํ์ธํ๋ ๊ธฐ๋ฅ์ ์์คํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ต์ ๋ฒ์ ์ด์ง๋ง API์ ํธํ๋๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค.
์ ์ค ์ผ์ด์ค @pniederlag๋ฅผ ๋ค์ด์ด ํ ์์๋, ๋ฌ์ฌํ๊ณ appVersion
ํ ์ Values ํญ๋ชฉ์์ ํฌ์ธํธ๋ฅผ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ํ
ํ๋ฆฟ์ helm list
์ํ๋ ๋ฌด์, ํ ์ฐจํธ ์ง์์ด ํ์ ์๋ ํ ๊ทธ ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ (์๋ง๋ ์ปจํ
์ด๋ ํ๊ทธ)์ ๋ค๋ฅธ ๋ชจ๋ "์ค์น ์ ๋ณ๊ฒฝ๋จ" ๊ตฌ์ฑ ์ต์
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก --set
๋๋ --values
๋ฅผ ํตํด ์ค์น ์ ๋ณ๊ฒฝ๋์์ต๋๋ค.
์ฌ๊ธฐ์ AppVersion
์์ต๋๋ค.
๋ฆด๋ฆฌ์ค ๋ฒ์ ๊ณผ AppVersions๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ง๊ธ์ ์ค์ ํ๋ ค๋ฉด - ๋ด๊ฐ ์ ํ๋ฅผํด์ผํ๋ helm package
๋ช
์ ์ ์ผ๋ก ์ฌ์ ์ helm upgrade --install
๋ ๋ฒ์ ์ธ ์ธํธ์ ๋ก์ปฌ ํ๋ฅด ์์นด์ด๋ธ๋ฅผ ๋ง๋ญ๋๋ค.
์ด์ helm-secrets
์ง์์ ์ถ๊ฐํ๊ณ ...
๊ทธ๋ฆฌ๊ณ ๋ํผ๊ฐ helm package
์ ํจ๊ป ์๋ํ ์ ์์ต๋๋ค!
๊ทธ๋์ - ์ง๊ธ์?
๋ชจ๋ ๋ฒ์ ์ ์ง์ ๋ฐ ํ๋ฆ์ ์ค๋จํ์๊ฒ ์ต๋๊น?
๋น๋ฐ์ ์ฌ์ฉํ์ฌ ์ญ์ ํ์๊ฒ ์ต๋๊น?
์ด๋ค ์์ด๋์ด?
์ค์ ๋ก๋ helm-secrets
๋ํ ๋ฌธ์ ๊ฐ ๋ ๋ง์ง๋ง ์ฌ๊ธฐ์์ ๋
ผ์๋ --set app-version
๋ฅ๋ ฅ๊ณผ๋ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ํ๋ฉด ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์๋ค๋ฉด - helm package
๋ฅผ ํธ์ถํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
UPD ์, ์ ๊น๋ง... ์์ง helm secrets upgrade chart.tgz -f secrets.yaml
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค ...
๊ด์ฐฎ์.
๊ทธ๋ฌ๋ ์ฌ์ ํ --set app-version
๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด +1 ํ์ญ์์ค.
๊ทธ๋์ - ์ง๊ธ์?
๋ชจ๋ ๋ฒ์ ์ ์ง์ ๋ฐ ํ๋ฆ์ ์ค๋จํ์๊ฒ ์ต๋๊น?
๋น๋ฐ์ ์ฌ์ฉํ์ฌ ์ญ์ ํ์๊ฒ ์ต๋๊น?
์ด๋ค ์์ด๋์ด?
๋ ๊ฐ์ ํจํค์ง๋ฅผ ๋น๋ํฉ๋๋ค. ํ๋๋ ์ฐจํธ๋ง ์๋ helm ํจํค์ง์ด๊ณ env ๊ฐ๊ณผ secret ํ์ผ์ ์ ์ธ๋ฉ๋๋ค. ์ฐจํธ ๋ฒ์ ์ ์ฐ๋ฆฌ์๊ฒ ์๋ฌด ์๋ฏธ๊ฐ ์๊ณ ์ฐจํธ ๋ฒ์ ๋ ์ฑ ๋ฒ์ ๊ตฌ๋ฌธ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด ํจํค์ง์ ์ด๋ฆ์ chart-{app-version}.tgz
ํฉ๋๋ค. ์ฑ ์
๋ฐ์ดํธ์๋ ์ ์ฌ์ ์ธ ์ฐจํธ ์
๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค(git ํ๊ทธ ์ง์ ์ ์ฌ์ฉํ๋ ๋์ผํ ๋ฆฌํฌ์งํ ๋ฆฌ).
๊ทธ๋ฐ ๋ค์ ์ฐจํธ tgz, ๊ฐ yaml ๋ฐ ์ํธํ๋ ๋น๋ฐ ํ์ผ์ ํฌํจํ๋ ํ๊ฒฝ๋ณ ๋ ๋ฒ์งธ tgz, chart-{app-version}-{env}.tgz
๊ฐ ์์ต๋๋ค. ์ด ํ์ผ์๋ helm-secrets
์ฌ์ฉํ์ฌ ๋ฐฐํฌํ ์๋ํ๋ ์คํฌ๋ฆฝํธ์ ๋ํ ํ๊ทธ, ์ฑ ๋ฐ ํ๊ฒฝ ์ด๋ฆ๊ณผ ๊ฐ์ ๊ฐ์ด ํฌํจ๋ "package.yaml"๋ ํฌํจ๋์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์๋งจํฑ ๋ฒ์ ๋ฒํธ๋ก ์ ํ๋ฆฌ์ผ์ด์
๋ฒ์ ๋๋ ๋๋ถ๋ถ์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ APP ๋ฒ์ ์์ ์ด ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋กค๋ฐฑ ๋๋ ๊ธฐํ ์์
์ ์ํด helm history
๋ชฉ๋ก์์ ์ฝ๊ฒ ์๋ณํ ์ ์์ต๋๋ค.
์์คํ
์ ๋ฐฐํฌ ์ ์๋์ผ๋ก ์ฃผ์
ํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ผ๋ฏ๋ก ๋ฐฐํฌ ๋ช
๋ น ์ ์ CI/CD ํ์ดํ๋ผ์ธ์์ ์ด ๊ฐ๋จํ ๋ช
๋ น์ ์๋์ผ๋ก ์คํํฉ๋๋ค.
sed -i -E "s/^appVersion: (.*)/appVersion: ${deploy.project.version}/" ${chartPath}/Chart.yaml
๊น๋ค๋กญ์ง๋ง ์์๋๋ก ์๋ํฉ๋๋ค.
@bvis
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๋ CI/CD ํ์ดํ๋ผ์ธ์์ ์ฐจํธ๋ฅผ ํธ์งํด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค.
์ค์ ์ง์ค์ ์ฐจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ helm pull repo/chart --untar
Chart.yaml/appVersion์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฃผ์ ํ๋ ๋ฐ ๋ ๋ง์ ์ง์ ์ด ์์ต๋๊น? ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๊ทธ๊ฒ์ CI/CD Helm์ ์์ฒญ๋ ๋ถ์คํธ๋ฅผ ์ค ๊ฒ์ ๋๋ค.
@jakovistuk ๋ด๊ฐ ๋งํ ์ ์๋ ํ, ์ปจํ ์ด๋ ๋ฒ์ ์ ํ์ํ๊ธฐ ์ํด appVersion ์ ์ฌ์ฉํ๋ nginx-ingress/Chart.yaml ์์ ๋ณผ ์ ์๋ฏ์ด Chart.yaml์ ํตํด ์ง์ ์ด ์์ ์ ์ํํฉ๋๋ค...
๊ฝค ์ค๋ซ๋์ ์ด ๋ฌธ์ ์ ๋ํด ๊น์ด ์๊ฐํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ ๋ง ์ด๋ฆฌ์์ ์ง๋ฌธ์ผ ์ ์์ง๋ง Helm CLI๋ฅผ ์ฌ์ฉํ์ฌ appVersion์ ์ฌ์ ์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ฌ๊ธฐ ๋ง์ ์ฌ๋๋ค์ด 'appVersion' ํ๋๋ฅผ ์ฌ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌป๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ฌธ์ ์ ์๋ ์๋/์์ฒญ์ โversion์ ๋ํ ๋์ฒดํ์ผ๋ก โapp-version์ ํ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ 'helm fetch โapp-version=v0.15.0'์ ์คํํ ์ ์๋๋ก ํ๊ณ Helm์ด ์ต์ ์ฐจํธ ๋ฒ์ ์ด ๋ฌด์์ธ์ง ์์๋ผ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. v0.15.0์ appVersion์ผ๋ก ์ง์ ํ๊ณ ๊ฐ์ ธ์ต๋๋ค.
์ฐ๋ฆฌ ํ๋ก์ ํธ/์ฐจํธ(cert-manager)์์ ์ฐ๋ฆฌ๋ ์ต์ข ์ฌ์ฉ์๊ฐ ์ด๋ค ๋ฒ์ ์ ์ค์นํ๋์ง ๊ฐ๋ฅํ ํ ๋ช ํํ๊ฒ ํ๊ธฐ๋ฅผ ์ํ๋ฏ๋ก ์ฐจํธ ๋ฒ์ ๋์ ์ฑ ๋ฒ์ ์ผ๋ก ์ค์นํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์์ฐ์ค๋ฌ์ด ์ค์น ๊ฒฝํ์ด ๋ ๊ฒ์ ๋๋ค.
์ฆ, ์ด ๋ฌธ์ ๋ 2๋ ์ ์ ๊ณต๊ฐ๋์์ผ๋ฉฐ ๊ทธ ์ดํ๋ก ์ด ๋ ๋ฒ์ ๋ฒํธ๋ฅผ ๋๊ธฐํ/์ ๊ธ ๋จ๊ณ๋ก ์ ์งํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ช ๋ ํ ์ด ์์ ์ ์ํํ ํ ๋๋ผ์ธ ์ ๋๋ก ์ฝ๊ณ ๊ณ ํต์ด ์์์ต๋๋ค. ๋ฐฐํฌ ๋งค๋ํ์คํธ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์๋ก์ด ๊ณต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด ๋ช ์ฃผ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋์ด, ๊ธธ์ด, ์ฝ๊ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ ๊ฒ์ดํธ์ ๊ฑฐ๋ํ ๋ค์์ฑ, ์ดํ Helm ํ๋ก์ ํธ์ ๋ณ๊ฒฝ ์ฌํญ(Helm 3, OCI ์ฐจํธ ๋ฑ)์ ๊ฐ์ํ ๋ ์ด ๋ฌธ์ ๋ ์ข์ ์ํ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ฌ ํ์์ ๊ธฐ๋ฅ ์์ฒญ์ผ๋ก ์์ผ๋ก ์ถ์ง๋ฉ๋๋ค. ๋๋ ์ด ํธ๋ฅผ ๋ซ์ ๊ฒ์ด์ง๋ง ๋น์ทํ ๊ธฐ๋ฅ ์์ฒญ์ด ์๋ ๋ค๋ฅธ ์ฌ๋์ ์ฆ๊ฑฐ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ ํธ ๋ฅผ ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. Helm ํ์ ๋ถ๋ฅ ํ๋ก์ธ์ค์ ๋ ์ ์๋ํ์ฌ ์์ฒญ์ ํ์ํ ๊ฐ์์ฑ์ ์ป์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋๋ ๋ํ ์ด๋ฌํ ์ข
๋ฅ์ ๊ธฐ๋ฅ์ด ์ธ๋ถ ๋๊ตฌ๋ ๋ํผ๋ก ๊ตฌํ๋ ์ ์๊ณ ์๋ง๋ ๊ฐ์ฅ ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Helm, ํนํ OCI ๋ณ๊ฒฝ ์ฌํญ์ ๊ณ ๋ คํ ๋ ๊ตฌํํ๊ธฐ๊ฐ ๋ ๊น๋ค๋กญ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ด ํด๊ฒฐ๋ ๋๊น์ง(๋๋ ๊ทธ๋ ์ง ์์ ๋๊น์ง) ๋ด CI/CD(GitLab)์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฑ ๋ฒ์ ์ผ๋ก ์ฐจํธ๋ฅผ ํจํค์งํ ๋ค์ ๋ฐฐํฌํฉ๋๋ค.
Chart ๋ฒ์ ์ด appVersion๊ณผ ๋์ผํ์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๊ด์ฐฎ์ต๋๋ค.
deploy:
image: alpine/helm:3.2.4
stage: deploy
environment:
name: ${ENV}
script:
- helm package --app-version=${CI_COMMIT_TAG} --version=${CI_COMMIT_TAG} ${NAMESPACE}
- |
helm upgrade -i --wait ${CI_PROJECT_NAME} ./${NAMESPACE}-${CI_COMMIT_TAG}.tgz \
--set image.repository="${CI_REGISTRY_IMAGE}" \
--set image.tag="${CI_COMMIT_TAG}" \
--set-string ingress.enabled="${INGRESS}" \
--set service.port="${CONTAINER_PORT}" \
--set service.targetPort="${CONTAINER_PORT}" \
--set dc="${CI_ENVIRONMENT_NAME}" \
--set project="${CI_PROJECT_NAME}" \
--namespace ${NAMESPACE}
- helm history ${CI_PROJECT_NAME} -n ${NAMESPACE}
tags:
- kubernetes
only:
- tags
image.tag
๋ฅผ {{ .Chart.AppVersion }}
๋ก ๊ธฐ๋ณธ ์ค์ ํ๋ฉด ์ค์น ์ค์ --set
ํ ํ์๊ฐ ์์ผ๋ฉฐ ์ด๋ฏธ ์ ํํ ๊ฒ์
๋๋ค. ์ด๋ Docker ์ด๋ฏธ์ง์ SHA1 ํ๊ทธ๊ฐ ์ง์ ๋์ด AppVersion์ด Docker ์ด๋ฏธ์ง ํ๊ทธ์ ์ผ์นํ๊ณ ๋ฒ์ ์ด ์๋ ๋น๋ SemVer์ธ ๊ฒฝ์ฐ ์๋ ๋น๋์์๋ ์ ์๋ํฉ๋๋ค.
AppVersion์ด SemVer์ธ ๊ฒฝ์ฐ ๋ฒ์ ์ด AppVersion๊ณผ ๋์ผํด๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ ํ์์ ์์ฐํ ํจํค์ง์ ๊ฒฝ์ฐ AppVersion์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก Version์ผ๋ก ์ค์ ๋๋ image.tag์ ๊ฐ์ด AppVersion์ ์ฐพ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๊ณ ์์ต๋๋ค. ํฐ ์ฐจ์ด๋ ์๋๋๋ค. ํ๊ทธ๊ฐ ์๋ ๋ฆด๋ฆฌ์ค์ ๊ฒฝ์ฐ helm package
๋ํ ์ธ์๊ฐ ํ๋ ์ค์ด๋ค ๋ฟ์ด์ง๋ง ์ฐจํธ๊ฐ ํจํค์งํ๋ ๊ฒ๊ณผ ๋์ผํ SCM์์ ๋น๋๋ ๊ฒฝ์ฐ์๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ค์ ํ๊ธฐ ์ํด ํ์ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ํ์ง ์๋ @TBBle
image.tag๊ฐ ํ์ ์ฐจํธ์ ์์ง๋ง ์์ ์ฐจํธ์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋งค์ฐ ์ด์ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฝ์ง ์์ ๊ฒ์ ๋๋ค. ๋ฐฉ๊ธ https://github.com/googleforgames/open-match/ ์ Helm ์ฐจํธ์์ ์ด ๋ ์ด์์์ ์ ํํ ํ์ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฌธ์ ์ ํ์ ์ฐจํธ๋ฅผ ๋ค์ ๊ธฐ๋ณธ ์ฐจํธ๋ก ๋กค๋งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐจํธ๋ ์์ ์ฐจํธ ๋์์ ์์กดํ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฒฉ๋ฆฌ/์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์์ฌ์ผ ํฉ๋๋ค. ํ์ ์ฐจํธ์๋ ์์ฒด ๋ฒ์ ์ด ์์ต๋๋ค. ์ด๋ฏธ์ง๊ฐ ์ฌ์ฉํด์ผ ํ๋ ๋ฒ์ ์ ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ํ์ ์ฐจํธ์ธ ์ด์ ๋ ๋ฌด์์ ๋๊น?
Open Match์ ๊ฒฝ์ฐ ํ์ ์ฐจํธ๊ฐ ์ฌ์ฉ๋์ด XXX.enable
๋ฅผ values.yaml์ ๋ฐ๋ก ๊ฐ๊ธฐ๋ก ์ฌ์ฉํ์ฌ ํ ๋ฒ์ ๋ง์ ํญ๋ชฉ์ ๋นํ์ฑํํ ์ ์๋ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ ๋ฌธ์ ๊ฐ ๋ง์ด ๋ฐ์ํฉ๋๋ค. . Open Match์ ํ์ ์ฐจํธ๋ ๋ชจ๋ ํ
ํ๋ฆฟ์ด๋ผ๋ ์์ ์ฐจํธ๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ณ 0.0.0-dev
์ ๋ก์ปฌ ๋ฒ์ ๋ ์์ผ๋ฏ๋ก ๋ญ๊ฐ ์ ๊ตฌ์ฑ๋์ง ์์ ๋ ๊ฐ์ง ์ฝ๋ ๋์๊ฐ ์์ต๋๋ค.
์๋๋ฉด ๋ด๊ฐ ๋น์ ์ดํ๊ณ ์๋ ๊ด์ฐฐ์ ์คํดํ์ ์๋ ์์ต๋๋ค.
@haimari ๋ถํํ๋ ์๋ํ์ง ์์ต๋๋ค(https://github.com/helm/helm/issues/6921 ๊ด๋ จ ?):
> helm package $DIR/deployment/chart --app-version="1111e8" --version="3454e5" --namespace stage
Error: Invalid Semantic Version
๊ทธ๋ฌ๋ ์ด๊ฒ์ ์๋ํฉ๋๋ค.
> helm package $DIR/deployment/chart --app-version="0.0.0-1111e8" --version="0.0.0-3454e5" --namespace stage
Successfully packaged chart and saved it to: /Users/aws/service-0.0.0-3454e5.tgz
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์กฐ์ฐจ๋ (๊ทธ๋ฌ๋ ๋๋ฌ์ ๋ณด์ ๋๋ค):
> helm package $DIR/deployment/chart --app-version="0-1111e8" --version="0-3454e5" --namespace stage
Successfully packaged chart and saved it to: /Users/aws/service-0-3454e5.tgz
helm ๋ฒ์ version.BuildInfo{๋ฒ์ :"v3.4.0", GitCommit:"7090a89efc8a18f3d8178bf47d2462450349a004", GitTreeState:"dirty", GoVersion:"go1.15.3"}
@haimari ์ ์๋ฃจ์ ์ ์๋ ๊ทธ๋๋ก CI ํ์ดํ๋ผ์ธ์์ semver ํธํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@a0s : ์ผ๋ฐ์ ์ผ๋ก ๋ค์์ ์ ์ํฉ๋๋ค.
helm package $DIR/deployment/chart --app-version="<container image tag>" --version="<semver version>"
๊ทธ๋ฐ ๋ค์ ์ปจํ
์ด๋ ์ด๋ฏธ์ง ํ๊ทธ ๊ฐ์ {{ Values.image.tag | default .Chart.AppVersion | default .Chart.Version
์ ๊ฐ๊ฒ ํ์ฌ
๊ทํ์ ์์๋ ๋ ๊ฐ์ง ๋ค๋ฅธ git ๋ฒ์ ์ผ๋ก ๋ณด์ด๋ ๊ฒ์ด ์์ต๋๋ค. ๋ง์ต๋๊น? ํ๋๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ฉ์ด๊ณ ํ๋๋ ์ฐจํธ์ฉ์ ๋๊น?
SemVer๋ฅผ ์ฌ์ฉํ๋ฉด semver๋ ์์ ์ง์ ์ ์๋ฏธํ๊ณ git commit SHA๋ ์ ๋ ฌํ ์ ์๊ธฐ ๋๋ฌธ์ git commit SHA๋ฅผ semver์ ์๋ฏธ ์๋ ๋ถ๋ถ์ ๋ฃ์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ 0.0.1-alpha.<build-id>+g<gitcommitsha>
์ ๊ฐ์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ <build-id>
๋ CI ์์คํ
์ ํ์ดํ๋ผ์ธ ๋๋ ์์
ID์ ๋น์ทํ๋ฏ๋ก ํญ์ ํ๋ก์ ํธ์ ์ปค๋ฐํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์์ฒญํ ๋ ํญ์ ์ต์ ๋น๋๋ฅผ ์ป์ ์ ์์ต๋๋ค.
SemVer์์ -
ํ๋ ๊ฒ์ ํด๋น ๋ฒ์ ์ ์ํํ์์ ์๋ฏธํ๋ฏ๋ก 0.0.1-<anything>
๋ 0.0.0๊ณผ 0.0.1 ๋ฆด๋ฆฌ์ค ์ฌ์ด์ ์์ต๋๋ค. +
๋ค์ ๋ถ๋ถ์ ๋น๋ ์ ๋ณด์ด๋ฉฐ ์ ๋ ฌ์ ์ํด ๋ฌด์๋๋ฏ๋ก git SHA ๋๋ ๋ถ๊ธฐ ์ด๋ฆ ๋๋ ๊ธฐํ ์ ๋ ฌ ๋ถ๊ฐ๋ฅํ ์ถ์ ์ ๋ณด๋ฅผ ๋ฃ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฐ๋ผ์ ์ฌ๊ธฐ์์ ์ฌ์ฉํ ๊ฒ๊ณผ ํจ๊ป 0-3454e5
๋ SHA๊ฐ 2
๋ก ์์ํ๋ ๊ฒฝ์ฐ ๋ค์ ์ปค๋ฐ๋ณด๋ค ์ต์ ๊ฒ์ผ๋ก ๋ํ๋ฉ๋๋ค(์: 0-2764e1
.
๊ทํ์ ์์๋ ๋ ๊ฐ์ง ๋ค๋ฅธ git ๋ฒ์ ์ผ๋ก ๋ณด์ด๋ ๊ฒ์ด ์์ต๋๋ค. ๋ง์ต๋๊น? ํ๋๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ฉ์ด๊ณ ํ๋๋ ์ฐจํธ์ฉ์ ๋๊น?
์, ์ฑ๊ณผ ์ฐจํธ - ๋ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์ํํธ์จ์ด๊ฐ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด ์์ฒญํ ๋ ํญ์ ์ต์ ๋น๋๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋ด๊ฐ ์ํ์ง ์๋(๊ทธ๋ฆฌ๊ณ ์์ํ ์๋ ์๋) ์ต์ ์ ๋ณด๋ฅผ ์์ฒญํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น?
0.0.1-alpha.<build-id>+g<gitcommitsha>
์ด ๋ฌธ์์ด(๋ณด๊ฐ ํ)์ ํ์ค helm list
์ถ๋ ฅ์ ํ ์ด์ ๋ง์ถ๊ธฐ์๋ ๋๋ฌด ๊ธด ๊ฒ ๊ฐ์ต๋๋ค. :)
๋๋ ํญ์ ์ค์นํ๋ ค๋ ์ฑ์ ๋ฒ์ (sha ํด์)์ ์๊ณ ์์ต๋๋ค( --set
์ธ์๋ก ์ ๋ฌ). ๊ทธ๋ฆฌ๊ณ ๋๋ ํญ์ ๋ด๊ฐ ์ฌ์ฉํ๋ ์ฐจํธ์ ๋ฒ์ ์ ์๊ณ ์์ต๋๋ค( @haimari๊ฐ ์ค๋ช
git checkout chart && helm pack && helm upgrade .tar.gz
ci/cd์์ ๋ก์ปฌ๋ก ์ฌ์ฉํ ๊ฒ์
๋๋ค)
๋ฌด์์ด ์๋ชป๋ ์ ์์ต๋๊น?
1) ์ผ๋ฐ helm upgrade
์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๊ฒ ์ต๋๋ค. ์ค๋ฅ๋ฅผ ์์ ํ๊ณ ๋ค์ ์๋ํ๊ฒ ์ต๋๋ค(์ฑ์ ๋ค๋ฅธ sha ์ปค๋ฐ ์ฌ์ฉ - 99%)(๋๋ ๋์ --atomic
์ฌ์ฉ)
2) ์๋ ๋กค๋ฐฑ: helm rollback <RELEASE_NAME>
๋๋ CI/CD๋ฅผ ํตํ ๋ฐฐํฌ ์ด์ ์ค ์ปค๋ฐ.
๋ด๊ฐ ๋์น ๊ฒ์ ๋ฌด์์ ๋๊น?
PS ์์งํ ๋งํด์, ๋๋ ์ ๋ณด ๋ชฉ์ ์ผ๋ก๋ง ๋ฒ์ ๊ณผ ์ฑ ๋ฒ์ ์์ ์งง์ ์ค ๋ถ๋ถ์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค( helm list
๋์)
๋จ์ง ์ ๋ณด ์ ๊ณต์ ์ํ ๊ฒ์ด๋ผ๋ฉด SemVer์์ -
์๋๋ผ +
๋ค์ ์ต๋๋ค. ๋ฆด๋ฆฌ์ค ์์๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ Helm ์ฐจํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ _์ ๋_ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์ฐจํธ ๋๋ ์ฑ์ด ์์ง SemVer'd๋์ง ์์ ๊ฒฝ์ฐ 0+g<commitsha>
๋ ์ ํจํ SemVer์
๋๋ค(0.0.0์ ํด๋น).
์๋ฅผ ๋ค์ด Open Match์ Helm ์๋ ๋น๋ ์ฐจํธ๊ฐ ์ํํ๋ ์์
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ํ์ฌ ๋ชจ๋ 0.0.0-dev
์ด๊ณ , ์ฐ๋ฆฌ๋ ๋น์ ์ด ์ค์นํ ๊ฒ์ ๋ณด๊ณ ์๋ค๋ฉด ์ ์ด๋ ๋น์ ์ด ๊ฐ์ง๊ณ ์๋ _what_ ๋ง์คํฐ ๋น๋๋ฅผ ์ ์ ์๋๋ก ๊ทธ 0.0.0-dev+g<commitsha>
๋ฅผ ๋ง๋ค๊ธฐ ์์ํ์ต๋๋ค .
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ์ด ๋ ผ์๊ฐ ์ ํ ์ดํด๊ฐ ๋์ง ์๋๋ค. ์ฌ๋๋ค์๊ฒ ๊ฐ์ฅ ์ ํฉํ๋ค๊ณ ์๊ฐํ๋ ๋ฐฉ์์ผ๋ก ์ฑ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๋ ์ต์ ์ ์ ๊ณตํ์ง ์๋ ๊ฒ์ด ํฐ ๋ฌธ์ ์ธ ์ด์ ๋ ๋ฌด์์ ๋๊น?
ํ์ฌ ํํ์์๋ ์ด
APP VERSION
๊ฐ ์ ํ ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ์ฌ๋๋ค์๊ฒ ํผ๋์ ๊ฐ์ ธ์ฌ ๋ฟ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ์ ํฌ๊ตฌ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋> (80) ์๋น์ค๋ฅผํ๊ณ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ๋ณ๊ฒฝํ๋ ค๋ฉด์ดAPP VERSION
์์helm upgrade -i ...
๋๋ ์ฐ๋ฆฌ์ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ํ ํจ๊ป์์ ๊ฒ์ ๋ณผ1.0
์ฌ๊ธฐ๋๋ ๋ํ ๋ชจ๋ ์ฌ๋์๊ฒ
helm list
๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ๋งํด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด๋๋ ์ด ๋ํ๋ฅผ ์ฝ์ ๋ ์ฒ์์๋ ๋๊ด์ ์ด์์ง๋ง ๋ง์ง๋ง์ ๊ฐ์ ๋น์ ์ด ์ด๊ฒ์ ์ด๋ป๊ฒ ํ ๋ก ํ๊ณ ์ฌ์ฉ์๊ฐ ๋น์ ์ ์๊ฐ์ ๊ฐ๋๋ก ๊ฐ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด๊ณ ์ง๊ธ ํฌ๋ง์ ์์์ต๋๋ค :(.