์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ด ์ฃผ์ ์ ๊ด๋ จ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๋ํด ๋ ผํํ๊ณ @technosophos ์ slack์ ๋ํด ์ด์ผ๊ธฐํ ํ, Helm์ด ๋ฆด๋ฆฌ์ค ์ด๋ฆ๊ณผ Kubernetes ๋ค์์คํ์ด์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ ผ์ํ๊ธฐ ์ํด ๋ ๊ด๋ฒ์ํ๊ณ ์ง์์ ์ธ ๋งค์ฒด๋ฅผ ๊ฐ๋ ๋ฌธ์ ๋ฅผ ์ด๊ณ ์ถ์์ต๋๋ค.
Kubernetes ์ฌ์ ์ ์์ํ ๋ ๋๋ ๋ค์์คํ์ด์ค์ ๋ํด ์ฝ์๊ณ ์ฌ๋ฌ ํ๊ฒฝ์ ๋ฆฌ์์ค ๋ช
๋ช
๋ฒ์๊ฐ ์ง์ ๋ ๋ค์์คํ์ด์ค๋ก ์์ฑํ์ฌ ํ๊ฒฝ์ ์ต๋ํ ๋์ผํ๊ฒ ์ ์งํ ์ ์๋ค๋ ์์ด๋์ด๋ฅผ ์ข์ํ์ต๋๋ค. ์์ฒด ๊ฐ๋ฐํ kubectl ๋ํผ๋ฅผ ์ฌ์ฉํ CI/CD์ ์ฒซ ๋ฒ์งธ ์๋์์๋ ์ด๊ฒ์ด ์ ์๋ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ Helm์ผ๋ก ์ฎ๊ฒผ์ต๋๋ค. ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ด ๋ค์์คํ์ด์ค ์ ์ฒด์์ ๊ณ ์ ํ ๊ฐ์ด์ด์ผ ํ๋ ๋ฌธ์ ์ ๊ณง ๋ถ๋ช์ณค๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํด์ผ ํ์ต๋๋ค(์ฐธ์กฐ https://github.com/kubernetes/helm/issues/1219). name: {{ .Chart.Name }}
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ ๊ทผ ๋ฐฉ์์ ๊ณ ์ํ๋ ค๊ณ ํ์ง๋ง ์ด ์์ฒด๋ก ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ด๊ฐ ๊ทธ๊ฒ์ ๋ํด ๋ ๋ง์ด ์๊ฐํ๊ณ https://github.com/kubernetes/helm/issues/1768 ๋ฐ https://github.com/kubernetes/helm/issues/980 ๊ณผ ๊ฐ์ ๋ฌธ์ ์ ๋ํ @technosophos ๋ค๋ฅธ ์๊ฒฌ์ ์ฝ์
์์ฝํ์๋ฉด Helm Release๋ ๋ค์์คํ์ด์ค์ ๋ฐ์ธ๋ฉ๋์ง ์์ง๋ง ๋ฆฌ์์ค๋ฅผ ์์ฑํ ๋ค์์คํ์ด์ค๋ฅผ ์ ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. .Release.Namespace
์ฌ์ ์ํ์ฌ ์ด๋ก ์ ์ผ๋ก ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ์ค์นํ ์ ์์ง๋ง Helm์ด ์ฌ๋ฌ ๋ค์์คํ์ด์ค์์ ์์ ์ ์ผ๋ก ์๋ํ ์ ์์ผ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ํ Helm์ ์ค์น๋ ๊ฒ๊ณผ ๋ค๋ฅธ ๋ค์์คํ์ด์ค๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์
๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์ค์น ํ ๋ ์ด์ ๋ค์์คํ์ด์ค๋ฅผ ์ ๋ฌํ์ง ์๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ํน์ดํ ์์
์ ์ํํ๋ ๋ฐ ๋ํด ๋งค์ฐ ์๊ฒฉํ์ง ์์ต๋๋ค(kubectl์์ ํ์ฉํ์ง ์๋ ์์
).
๋ฐ๋ฉด Kubernetes๋ ๊ฑฐ์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๋ค์์คํ์ด์ค๋ก ๋ฒ์๋ฅผ ์ง์ ํ์ฌ Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces.
๋ฌธ์์์ ์ธ์ฉํฉ๋๋ค. ๋ํ Kubectl์ ๋ฆฌ์์ค๋ฅผ ์ฃผ์ ์ง์ ํ๊ธฐ ์ํด ๋ค์์คํ์ด์ค๋ฅผ ํญ์ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ๋์ ๋งค์ฐ ์๊ฒฉํฉ๋๋ค.
์ด ๋ ๊ฐ์ง๋ฅผ ๊ฒฐํฉํ๋ฉด Helm์ ํ์ฌ ์ ๊ทผ ๋ฐฉ์์ด ๋ชจ๋ ์ฌ์ฉ์๊ฐ Kubernetes์ ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค ๋ฒ์ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ์ฐจ๋จํ๋ ๋์์ ๊ต์ฐจ ๋ค์์คํ์ด์ค ์ฐจํธ/๋ฆด๋ฆฌ์ค๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค. ํนํ Helm์ด ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ ์ฐจ๋จํ๋ค๋ ์ฌ์ค์ด ์ ์๊ฒ ์กฐ๊ธ ์๋ชป ๋๊ปด์ง๋์?
์ด ๊ฒฐ์ ์ด ํฅํ ํฌ๋ก์ค ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๋ฅผ ์ง์ํ ์ ์๊ฒ ๋์๋ค๋ ์ธ๊ธ๊ณผ ๊ด๋ จํ์ฌ ๋ค์์คํ์ด์ค ๋ฒ์ ์ง์ ์ด ์ด๋ฅผ ์ด๋ป๊ฒ ์ฐจ๋จํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด๋ฆ ์ง์ (์ค๋๋ ์กฐ์ฌํด์ผ ํ๋ ๊ฒ๊ณผ ์ ์ฌ) ๋ฐ ๋ค์์คํ์ด์ค ์ ๋ฌ์ ์ฃผ์ํด์ผ ํ์ง๋ง ์ค์น ์ ๋จ์ผ ๋ค์์คํ์ด์ค๋ฅผ ์ ๋ฌํ๋ ํ์ฌ ์ ๊ทผ ๋ฐฉ์๋ ์๋ํ์ง ์์ต๋๋ค.
๋ด๊ฐ ๋น์ ์ ์ดํดํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ด ํ๋๋ง ์๋ ์ํ์์ ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ๊ณ ์ถ์ต๋๊น?
@21stio ๋ง์ต๋๋ค. Kubernetes ๋ฌธ์์์:
Kubernetes๋ ๋์ผํ ๋ฌผ๋ฆฌ์ ํด๋ฌ์คํฐ์์ ์ง์ํ๋ ์ฌ๋ฌ ๊ฐ์ ํด๋ฌ์คํฐ๋ฅผ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ๊ฐ์ ํด๋ฌ์คํฐ๋ฅผ ๋ค์์คํ์ด์ค๋ผ๊ณ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ
๋ค์์คํ์ด์ค๋ ์ด๋ฆ์ ๋ฒ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฆฌ์์ค ์ด๋ฆ์ ๋ค์์คํ์ด์ค ๋ด์์ ๊ณ ์ ํด์ผ ํ์ง๋ง ๋ค์์คํ์ด์ค ๊ฐ์๋ ๊ณ ์ ํด์ผ ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ helm์ด ์ด ๋ค์์คํ์ด์ค ๊ฐ๋ ์ ์กด์คํ์ง ์๋ ์ด์ ๋ฅผ ์๊ฐํ ์ ์์ต๋๋ค.
๋๋ ๋์ํ๋ค. ๋ด ๋ชจ๋ ๋ค์์คํ์ด์ค๋ ${site}-${environment}
์ด์ง๋ง ๋ด ๋ฆด๋ฆฌ์ค๋ ${site}-${environment}-${description}
์
๋๋ค. site
๋ internal
๋๋ www
์ด๊ณ environment
๋ dev
, staging
๋๋ team-a
, team-b
๋ฐ description
๋ nginx
, migrations
, cache
๋ฑ๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ${site}-${environment}
๋ ๋งค์ฐ ์ค๋ณต๋ฉ๋๋ค.
NAMESPACE NAME
www-dev www-dev-redis-1234567890-cj241
www-dev www-dev-proxy-1234567890-kfd44
www-staging www-staging-redis-1234567890-cj241
www-staging www-staging-proxy-9876543210-kfd44
internal-team-b internal-team-b-redis-1234567890-cj241
internal-team-b internal-team-b-nginx-1234567890-cj241
๋ด๊ฐ ๋๋ด๋ ๊ฒ์ด์ง๋ง ํฌ๋๊ฐ redis-1234567890..
๋๋ proxy-9876543210..
๊ฒ์ ์ ํธํฉ๋๋ค.
๋ด ์ฐจํธ ํ ํ๋ฆฟ์์ ๋ด ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ์ฌ์ฉํ๋ฏ๋ก ๋ชจ๋ ์๋น์ค ๋ฐ ํฌ๋ ์ด๋ฆ์ ์ด ์ถ๊ฐ ํญ๋ชฉ์ด ๋ชจ๋ ํฌํจ๋ฉ๋๋ค. ์ด๋ฏธ ํ ํ๋ฆฟ์ ๋ค์์คํ์ด์ค๋ฅผ ์ ๋ฌํ์ผ๋ฏ๋ก ์ํ๋ ๊ฒฝ์ฐ ์ด๋ฆ์ ์ด๋ฅผ ์ฝ๊ฒ ํฌํจํ ์ ์์ง๋ง ์ง๊ธ์ ๊ธฐ๋ณธ helm ์ค์บํด๋ฉ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ฆฌ์์ค ์ด๋ฆ์ ์ผ๋ถ์ ๋๋ค.
K8์ ๋ค์์คํ์ด์ค๋ ์ด๋ฏธ ์ฐ๋ฆฌ๋ฅผ ์ํ ๋ค์์คํ์ด์ค์ ๋๋ค. ๋ค์์คํ์ด์ค๊ฐ ์ถฉ๋์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ค๊ณ๋์์ ๋ ๋ด ๋ชจ๋ ๊ฒ์ ๋ค์์คํ์ด์ค๋ฅผ ์ ๋์ฌ๋ก ๋ถ์ฌ์ผ ํ๋ ๊ฒ์ ์ ๋ง ์ซ์ดํฉ๋๋ค.
๋ช ์ ์ ์ผ๋ก ๋ค์ ์คํ์ด์ค์ ๊ด๋ จ๋ helm ์ฐจํธ๊ฐ์๋ ์๋น์ค ๋ฐ ๊ธฐํ k8s ๊ธฐ๋ณธ ์ ํ๊ณผ ๋์ผํ ์์ ์ ์ํ ํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์์ ์ํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
helm install --namespace abc --name redis stable/redis
helm install --namespace def --name redis stable/redis
@Janpot @bcorijn ์์์ ๋ง๋ ๊ฐ์ ์ Helm ์ฐจํธ๊ฐ ๋ค์์คํ์ด์ค ๋ด๋ถ์ ์บก์ํ๋ ๊ฐ์ฒด์์๋ง ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. Helm์ ์ด๋ฌํ ๋ฆฌ์์ค ์ข ๋ฅ๋ก๋ง ์ ํํ๊ณ ์ถ์ง๋ ์์ต๋๋ค.
๋ค์์คํ์ด์ค๊ฐ ์ง์ ๋์ง ์์ ํ์ฌ ๋ฆฌ์์ค๋ ์ด๋ป์ต๋๊น? ๋๋ "๋ค์์คํ์ด์ค"๊ฐ ์์น๊ฐ ์๋๋ผ ์ ์ฑ ์์ฑ์ธ RBAC(https://kubernetes.io/docs/admin/authorization/)?
๋ค๋ฅธ ๊ณณ์์ ์ฌ๋ฌ ๋ฒ ๋งํ์ง๋ง ์ฐ๋ฆฌ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ๋์ผํ ์ฐจํธ์์ ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. (์ฌ์ฉ ์ฌ๋ก: ์ฑ์ ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ๋ฐ์ดํฐ ํ๋ ์ธ์ด ์์ผ๋ฉฐ ๋ณด์ ๊ฒฝ๊ณ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๊ฐ๊ฐ ๋ณ๋์ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ๋ ค๋ ๊ฒฝ์ฐ)
๋ฆด๋ฆฌ์ค๋ฅผ ๋ค์์คํ์ด์ค์ ๋ฐ์ธ๋ฉํ๋ฉด ๋ค์ ๊ธฐ๋ฅ์ ์๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ด๋ฆ ์ง์ ๋ฌธ์ ๊ฐ ์กฐ๊ธ ๋ ์ด๋ ค์์ง์ง๋ง Helm์ด ํจ์ฌ ๋ ๊ด๋ฒ์ํ Kubernetes ๋ฆฌ์์ค์์ ์๋ํ ์ ์๋ค๋ ์ ์ ์ดํดํฉ๋๋ค.
๋ค์์คํ์ด์ค ๋ฐ ๋น ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๋ฅผ ๋ชจ๋ ์ง์ํ ์ ์์ต๋๊น?
@technosophos ์์ฝํ์๋ฉด ๋ ๊ฐ์ง ์ฃผ์ ๋์ธ์ด ์์ต๋๋ค.
1) ๋ค์์คํ์ด์ค๊ฐ ์ง์ ๋์ง ์์ ๋ฆฌ์์ค ๊ด๋ฆฌ
2) ๋ค์์คํ์ด์ค์ ๊ฑธ์ณ ์ฐจํธ๋ฅผ ์ค์นํ ์ ์๋๋ก ํ๋ ํฅํ ๊ณํ
๊ทํ์ ์์ ์ ์์ง๋ง ํ์ฌ ๊ตฌํ์ ๊ณ ์ํด์ผ ํ๋ ์ด์ ์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ๊ฐ ๊ฐ์ ํด์ผ ํ๋ค๋ ์ธ์์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค์ค ๋ค์์คํ์ด์ค ์ฐจํธ๊ฐ ์ ๋๋ก ์๋ํ๋ ค๋ฉด ๋ค์์คํ์ด์ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฃ๋ ํ์ฌ ๊ฐ๋ ์ด ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ค์์คํ์ด์ค ์์คํ ์ ๋ํ ์๋นํ ์ ๊ฒ์ด ํ์ํ ๊ฒ์ ๋๋ค. _EDIT: ๋ฆด๋ฆฌ์ค๊ฐ ์ค์ ๋ก ๋ค์์คํ์ด์ค๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ ๋ค์ค ๋ค์์คํ์ด์ค ์ฐจํธ๋ ๋ค์์คํ์ด์ค๊ฐ ๋ค๋ฅธ ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํฌํจํ๋ ์ฐ์ฐ ์ฐจํธ์ผ ์ ์๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์์ต๋๋ค._
๋ค์์คํ์ด์ค๊ฐ ์๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ฐ์ธ์ ๊ฒฝํ์ด ์์ด์ ํ๋จํ๊ธฐ๊ฐ ์กฐ๊ธ ์ด๋ ต์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ด Helm์ด ์ง๊ธ ๋น์ฅ์ ์๋ฒฝํ์ง ์์ ์์
๋ฐฉ์์ ๊ฐ์ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ๊ทธ๋ฅ ๋ฌด์?
๊ฒฝํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ฝ๋ ๊ฒ์ผ ์ ์์ง๋ง ์ด๋ฆ์ ๋ฒ์๋ฅผ ์ง์ ํ์ง ์๊ณ ๋ค์์คํ์ด์ค๋ฅผ ๋ฌด์ํ๋ฉด ์ต์ข
๊ฒฐ๊ณผ๊ฐ ๋์ผํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ์ด๋ฆ๊ณผ ์ ํ๊ธฐ๊ฐ ๋ค์๊ณผ ๊ฐ์์ง ํ์ธํ๋ ์ฌ์ฉ์์๊ฒ ๋ ๋ง์ ์ฑ
์์ด ์์ต๋๋ค ์ด๋ฌํ ์์์ ๋ค๋ฃฐ ๋ ์ ํํ๊ณ ๊ณ ์ ํฉ๋๋ค. (๋์ํ๋ ๊ฒ์ ์๋นํ ์ฑ
์์
๋๋ค)
๋ฐ๋ผ์ ๋ฆด๋ฆฌ์ค์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋์ง๋ง Helm์์ ์ฒ๋ฆฌ๋๊ณ ์์ผ๋ก ์ฒ๋ฆฌ๋ ๋ฐฉ์์ ๋ค์ ํ ๋ฒ ์ดํด๋ณด๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์์ต๋๊น? @Janpot์ด ์ธ๊ธํ ๋๋ก ๋ ๊ฐ์ง ์ต์
์ ๋ชจ๋ ์ฌ์ฉํ๋ฉด "์ ์ญ" ๋ฆด๋ฆฌ์ค์ ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๊ฐ ๋ชจ๋ ์๋ํ ์ ์์ต๋๊น?
๋ด _๋งค์ฐ ๊ฐ์ธ์ ์ธ_ ์๊ฒฌ์ @kylebyerly-hp, @chancez ๋ฐ ๋ด๊ฐ ์์์ ์ค๋ช
ํ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ด ์ด๋ฌํ ์๋ ๋ฐฉ์์ ๋ฐฉํดํ๋ ๋ ๊ฐ์ง ์ฌ์ฉ ์ฌ๋ก๋ณด๋ค ํจ์ฌ ๋ ์ผ๋ฐ์ ์ด๋ผ๋ ๊ฒ์
๋๋ค.
๋จผ์ ์์ ์ ๋ค์ ๋ฐ๋ณตํ๊ฒ ์ต๋๋ค. Helm ์ฐจํธ๋ ๋ค์์คํ์ด์ค ์์ค์ด ์๋๋ผ ์ ์ญ ์์ค์์ ์๋ํฉ๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ค์ ์ด๋ฆ์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํฉ๋๋ค.
๋ค์ค ๋ค์์คํ์ด์ค ์ฐจํธ์ ๊ฒฝ์ฐ ์์ ํด์ผ ํ๋ ๊ฒ์ Tiller์ ๋ค์์คํ์ด์ค ์ฟผ๋ฆฌ ๊ธฐ๋ฅ์ ๋๋ค. (์ง๊ธ ์ค์ ๋ก ๋ค์ค ๋ค์์คํ์ด์ค ์ฐจํธ๋ฅผ _install_ํ ์ ์์ต๋๋ค. Tiller๊ฐ ์์ ์ ์ผ๋ก ์ฟผ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค.)
๋ค์์คํ์ด์ค๊ฐ ์๋ ํญ๋ชฉ์ ๊ฒฝ์ฐ ์ํฉ์ด ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์ํฅ์ ์ค ์ ์๋ ๋ค์์คํ์ด์ค๊ฐ ์๋ ํญ๋ชฉ์ ๊ด๋ฆฌํ๋ ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๊ฐ ์์ ๊ฒ์ ๋๋ค. RBAC์ TPR์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด์ญ์์ค. ์ด๊ฒ์ Helm์ด ๋จ์ํ ์ง์ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ์ ์๋ ๊ฒ์ด ์๋๋ฉฐ ๋ค์์คํ์ด์ค๋ฅผ "์์กฐ"ํ๋ฉด ํนํ RBAC์์ ๊ฐ์น๋ณด๋ค ๋ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์์ง ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ๋ค์์คํ์ด์ค๋ก ์ง์ ํด์ผ ํ๋ ํ๋นํ ์ด์ ๋ฅผ ๋ณด์ง ๋ชปํ์ต๋๋ค. ๊ทํ์ ์ด๊ธฐ ๋ถ๋ง์ Kubernetes์ ๋ชจ๋ (์ค์ํ) ํญ๋ชฉ์ด ๋ค์์คํ์ด์ค๋ก ๋ฒ์๊ฐ ์ง์ ๋๋ค๋ ์คํด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ TPR ๋ฐ RBAC์ ๊ฐ์ ์ค์ํ ๊ฒ์ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๋ถ๋ง์ ๋๋ถ๋ถ์ ๊ทธ๋ค์ด ์ฌ์ฉํ๋ _ad hoc_ ๋ช ๋ช ์ฒด๊ณ๊ฐ Helm์์ "์์์ง ์๋ค"๋ ์ฌ์ค์ ๋ํ ๊ฒ์ ๋๋ค. ๋ฆด๋ฆฌ์ค๋ฅผ "์ด๋ฆ ๊ณต๊ฐ์์"๋ก ์๋ชป ํํํ๋ ๊ฑฐ๋ํ ํธํ์ฑ ํ๊ดด ๋ณ๊ฒฝ์ ๋ง๋ค์ด ์ด๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋ชป๋ ์ ๊ทผ ๋ฐฉ์์ฒ๋ผ ๋ณด์ ๋๋ค.
@technosophos
์ด์ ์ค์ ๋ก ๋ค์ค ๋ค์์คํ์ด์ค ์ฐจํธ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
์ด๋ป๊ฒ? ๊ตฌ์ฑ์์ ๋ค์์คํ์ด์ค์ ๋ํ ๊ฐ๋ ์ ์ด๋์ ๋ฃ์ด์ผ ํฉ๋๊น?
๋ค์ค ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๋ฅผ ๊ณต์์ ์ผ๋ก ์ง์ํ ๊ณํ์ ๋๊น?
Helm 3.0๊น์ง๋ ๋ค์ค ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ ์ง์ํ ๊ณํ์ด ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ๊นจ์ง๊ณ Helm/Tiller์ Kubernetes ์ฝ๋ ๋๋ถ๋ถ์ ๋ํ ์ฃผ์ ๋ฆฌํฉํฐ๋ง์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ถํํ๋ helm์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ค์์คํ์ด์ค๋ฅผ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋ฌธ์ ์ ๋๋ค.
์ฐ๋ฆฌ์ ๊ณํ์ ๋ชจ๋ ์ฑ(์: ๋ ์์ ์ฐจํธ)์ ์ข
์์ฑ์ผ๋ก ํฌํจํ๋ ์ฐ์ฐํ ์ฐจํธ๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์ฐ๋ฆฌ์ ๋ชจ๋ ์ฑ์ ์์ฒด ๋ค์์คํ์ด์ค์ ์์ต๋๋ค. ์ด๊ฒ์ ์๋์ ์ผ๋ก ์ค๊ณ๋ ๊ฒ์
๋๋ค(๋ฏธ๋์๋ ๋ค์์คํ์ด์ค๋น RBAC๋ฅผ ๊ฐ๊ธฐ๋ฅผ ์ํฉ๋๋ค). ์ฐ์ฐํ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ ํ๋์ values.yml
๋ง ์ฃผ์ด์ง๋ฉด ์๋ก ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค์ ์ ์ฒด ํด๋ฌ์คํฐ๋ฅผ ํ ๋ฒ์ ์ค์น ๋ฐ ์
๊ทธ๋ ์ด๋ํ ์ ์์ผ๋ฏ๋ก ์ ๋ง ํธ๋ฆฌํฉ๋๋ค.
@technosophos , ๊ฐ์ฌํฉ๋๋ค. ์์ ์ง์์ ์ ์ด๋ Helm 3.0๊น์ง๋ ๊ณง ๋์ฐฉํ์ง ์์ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ์ฃผ๋ชฉํ์ต๋๋ค.
์ฌ๋ฌ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ํ๊ธฐ ์ํด Helm/Tiller์์ ์ ํํ ๋ฌด์์ ๋ฆฌํฉํ ๋งํด์ผ ํ๋์ง์ ๋ํ ์ผ๋ฐ์ ์ธ ์์ด๋์ด๊ฐ ์์ต๋๊น? ์๋๋ฉด 3.0์ด ๋๋ฌด ๋จผ๊ฐ์?
--name-template
ํ๊ณ ๋จ์ํ์ง๋ง ์์์ ์ด๋ฆ์ ์์ฑํ๋๋ก ํ์ฌ name
๋ฅผ UUID์ ๋ ๊ฐ๊น๊ฒ ์ทจ๊ธํ์ต๋๋ค. ๋๋ ๋ค์์คํ์ด์ค ์์ฒด๋ฅผ ์กด์คํ๋ ๊ฒ๋ณด๋ค ์ด๊ฒ์ ์ ํธํ๋ค๊ณ ๋งํ ์๋ ์์ง๋ง ๋ ๊ฐ์ง ์ ์ ๋ชจ๋ ๋ณผ ์ ์์ผ๋ฉฐ ์ฐ๋ฆฌ์๊ฒ๋ ์ด๊ฒ์ด ์ต์ํ์ ์ค๋ฒํค๋๋ก ์ถฉ๋ถํ ๊ฒ์
๋๋ค.
์: https://github.com/kubernetes/helm/pull/1015#issuecomment -237309305
> helm install --namespace www-dev --name-template "{{randAlpha 6 | lower}}" stable/redis
> kubectl --namespace www-dev get pods
NAME READY STATUS RESTARTS AGE
uvtiwh-redis-4101942544-qdvtw 1/1 Running 0 14m
> helm list --namespace www-dev
NAME REVISION UPDATED STATUS CHART NAMESPACE
uvtiwh 1 ... DEPLOYED redis-0.8.0 www-dev
@icereval ์ฐ๊ฒฐํ๊ธฐ ์ํด ์ฑ์์ redis(uvtiwh)์ ์ด๋ฆ์ ์ด๋ป๊ฒ ์ฐพ์ ์ ์์ต๋๊น?
ํด๋ฌ์คํฐ์์ ์ฌ์ฉํ๋ ค๊ณ ๊ณ ๋ ค ์ค์ธ ํจํด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kube-system
Tiller ์ธ์คํด์ค 1๊ฐ"Helm ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํฉ๋๋ค" ๋์์ธ ์์น์ ์ฐ๋ฆฌ์ ๊ฐ์ ์ํํธ ๋ค์ค ํ ๋ํธ ๋ฐฐํฌ์ ๊ณจ์นซ๊ฑฐ๋ฆฌ์ด๋ฏ๋ก ๊ถ์ฅ๋๋ ์ ๊ทผ ๋ฐฉ์์ ๋ํด ๋ ๋ฃ๊ณ ์ถ์ต๋๋ค!
Helm์ด ์ด๋ฆ๊ณผ ๋ค์์คํ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์๋ณํ๋ ๊ฐ๋ ์ ์ค์ํ์ง ์๋๋ค๋ ์ฌ์ค์ ์๊ณ ๋งค์ฐ ์ค๋งํ์ต๋๋ค. ๋ด ์๊ฐ์ ์ด๊ฒ์ ๋ฆฌ์์ค๊ฐ ํด๋น ๋ค์์คํ์ด์ค ๋ด์์ ๊ณ ์ ํ Kubernetes์ ์ค๊ณ ์์น์ ๋ฐ๋ฅด์ง ์์ต๋๋ค(์ผ๋ถ ๊ธ๋ก๋ฒ ๋ฆฌ์์ค ์ ์ธ).
์ด ์ค๋ ๋์์ ๋ค๋ฅธ ํฌ์คํฐ๊ฐ ์ธ๊ธํ๋ฏ์ด ์ฐ๋ฆฌ๋ ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
๊ทธ๋ฃน์ ๋ํด ์ฌ๋ฌ ํ๊ฒฝ ์ ๋ฏธ์ฌ ๋ค์์คํ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. 3~4๊ฐ์ ํ๊ฒฝ์ ๊ฐ๊ฐ ์๋ฐฑ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฐฐํฌ๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ๋ค์์คํ์ด์ค ๋ด์์ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ์๋น์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ๋ค์์คํ์ด์ค ๋ด์ ๊ณ ์ ํ DNS ์ด๋ฆ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ์๋ฅผ ๋ค์ด redis ์๋น์ค๋ a-test
๋ฐ a-prod
๋ค์์คํ์ด์ค ๋ชจ๋์์ tcp://redis ๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ต๋๋ค
์ด๋ฅผ helm 3์ ๋ ผ์ ํฌ์ธํธ๋ก ์ผ๊ณ ์์ต๋๋ค. ์ด์ ๋ํ ์์๊ฐ ๋ง์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
๋ฐ๋ ํฌ์ธํธ:
๊ฑฐ์ ๋ชจ๋ ์ฐจํธ ํธ๋ฆฌ๋ ์ง์์ฑ / API / Level7 ALB(+static) ๋ผ์ธ์ ๋ฐ๋ผ ๋ถํ ๋ ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ์ํฐํฉํธ๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ํฌ๊ตฌ ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ด ์ธ๊ณ์ ์ด๋ผ๋ ์ฌ์ค์ด ๋ ๋ฆฝ ํฌ์ธํธ ์ฌ๋์์.
helm
์ --namespace
์ต์
์ด ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ธฐ๋ณธ ๊ณ์ธต์ ๋นจ๊ฐ/ํ๋ ๋ฐฐ์น๋ ์์ ๊ณ์ธต์์ ์ฌ์ฌ์ฉ๋ ์ ์๋ ๋ค์ค ๊ณ์ธต ์์ฉ ํ๋ก๊ทธ๋จ์ ์กฐ๋ฆฝ ๊ด์ ์์ ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. {{ .Release.Name }}
ํ์ ๋ฌธ์์ด์ ์ํฐํฉํธ์ ์ด๋ฆ์ ์ฃผ์
ํ๋ ๋์ ๊ฐ ๋ฐฐํฌ์ ๋ํด ์ ๋ค์์คํ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ฅผ ํตํด ์ฐ๊ฒฐ ๊ตฌ์ฑ( same_service_name.some_product_release20171102a.svc.cluster.local
> same_service_name.some_product_release20171105c.svc.cluster.local
)์ ํตํด ๊ฒฐ์ ์ ์ผ๋ก ํ์ฑ๋ ์๋น์ค URL์ ์ ํํ ์ ์์ต๋๋ค.
์๋ ์์ฑ๋ ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ์ด์จ๋ gobbledygook์ด๊ธฐ ๋๋ฌธ์ helm list
๋ค์ ์๋ ๋ด์ฉ์ ์ถฉ์คํ์ง ์์ต๋๋ค --name
/ ๋น๋ ๋ฒ์ ( "appname-v20171103xyz"
) ์ฐจํธ ์ด๋๊ฐ์ --name-template
๊ฐ์ ์ ์ํ๊ณ ์ฐจํธ ์ด๋ฆ + ๋ ์ง/์๊ฐ ํ์ ๋๋ ๋ช
์์ ๋น๋ ID ๊ฐ์ ์ฌ์ฉํ๋๋ก ํ๊ณ ์ถ์ต๋๋ค.
์์
๊ธฐ๋ณธ ์ง์์ฑ ๊ณ์ธต
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: {{ .Values.global.product }}-persistence-{{ .Values.global.tier }}
labels:
app: redis
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
...
๋ค์๊ณผ ๊ฐ์ด ๋ค๋ฅธ ๋ค์์คํ์ด์ค์์ ์ฌ์ฉ๋ฉ๋๋ค.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ .Values.global.product }}
namespace: {{ .Release.Name }}
labels:
app: {{ .Values.global.product }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
...
env:
- name: REDIS_SERVER_HOSTNAME
-----> value: "redis.{{ .Values.global.product }}-persistence-{{ .Values.global.tier }}.svc.cluster.local"
์์ 2๊ฐ ํ
ํ๋ฆฟ์ 2๊ฐ์ ๊ฐ๋ณ ์ฐจํธ(์ง์์ฑ ์ฐจํธ ๋ฐ API ์ฐจํธ)์ ์ผ๋ถ์ด๋ฉฐ ์ธ ๋ฒ์งธ ํฌ๊ด์ ์ธ ์ฐจํธ๋ฅผ ํตํด ๊ฐ๋ณ์ ์ผ๋ก ๋๋ ๊ณต๋์ผ๋ก ์คํํ ์ ์์ต๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ .global.
๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ๋ช
๋ น์ค์์ ํ ๋ฒ ์ฌ์ ์๋๊ณ ๋ชจ๋ ํ์ ์ฐจํธ์ ๊น๋ํ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋์ ๋ค์์คํ์ด์ค ๊ฐ์ด ๋๋๋ก ReleaseName์ ๋ถ๋ถ ํ์๋ฌผ์ด๊ณ ๋๋ก๋ ๋ฐ๊ณ ์ ๋๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ReleaseName์ด ์ ์ญ์ด ๋๋๋ก ๊ฑฐ์ ์์กดํ๋ฏ๋ก ๋์ผํ ์ ์ญ ReleaseName์ผ๋ก ์คํ์ ์์ฑํ๋ ค๊ณ ํ๋ฉด ์์คํ ์ด ๋ถํํ ๊ฒ์ ๋๋ค.
๋ค์์คํ์ด์ค๋ฅผ ๊ฐ๊ณ ์ฌ์ฉํ๋ ์ด์ ์ค ํ๋๋ ๊ทธ ์์ ์๋ ๊ฐ์ฒด ์ด๋ฆ(DNS ์ด๋ฆ ํฌํจ)์ด ๋ก์ปฌ์ด๋ฉฐ ๋ค์์คํ์ด์ค์์ ๋ค์์คํ์ด์ค๋ก ๋ณ๊ฒฝํ ํ์๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. ํนํ ์์ @dvdotsenko ์์์ redis
) ๊ธ๋ก๋ฒํ๋ ๊ฐ์ ์ฃผ์
ํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ ์ด์ ๋ ๋ฐ๋ณต์ ํผํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋จ์์ฑ ๊ด์ ์์(๊ทธ๋ฆฌ๊ณ ๋ค์ค ๋ค์์คํ์ด์ค ๋ฐฐํฌ ๋ฐ ๋ค์์คํ์ด์ค๊ฐ ์๋ ๊ฐ์ฒด์ ๊ฐ์ ์ผ๋ถ ์์ฐ์ ์ผ๋ก ๋ณต์กํ ๊ฒฝ์ฐ๋ ์ ์ธํ๊ณ ) ์ด์์ ์ธ ๊ฒฝ์ฐ๋ ๋ค์์คํ์ด์ค๊ฐ ์คํ์ "์ด์ ๋ธ"ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํํ ํ๋์ ์ธ์คํด์ค๋ฅผ ํฌํจํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ํตํด ์คํ ๋ด์ ์ด๋ฆ์ด ์ง์ญ์ ์ด๊ณ ๋จ์ํ๋ฉฐ ๊ฐ์ฅ ์ค์ํ๊ฒ๋ ์ด๋ฆ ๊ณต๊ฐ์ ์๋์ ์ด๊ธฐ ๋๋ฌธ์ ๊ณ ์ ๋ ์ ์์ต๋๋ค.
๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ helm์ด ์ค๋๋ ๊ณผ ๊ฐ์ด ๊ฐ๋จํ ๊ฒฝ์ฐ๋ฅผ ์ง์ํ๋ ๊ฒ์ ๋๋ค(๊ฐ์ฒด์ ๋ค์์คํ์ด์ค ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํผํ๋ฉด์). ์ด๋ ๊ฒ ํ๋ฉด ๋๋ถ๋ถ์ ์ฉ๋์์ ์ฆ์ ์ฌ์ฉํ ์ ์๋ ํฉ๋ฆฌ์ ์ด๊ณ ์์ ํ ๋ชจ๋ฒ ์ฌ๋ก ๊ธฐ๋ณธ๊ฐ์ด ์์ฑ๋ฉ๋๋ค. ๋ํ @dvdotsenko ๋ฐ @bcorijn์ด ์ค๋ช ํ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ์ฉํ๊ธฐ ์ํด ๋ ๋ง์ ์์ (๋ณต์ก์ฑ์ ํฌ์ํ๋ฉด์)๋ฅผ ํ์ฉํ๋ ๊ณ ๊ธ ๋ค์์คํ์ด์ค ๋ชจ๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
๋ด $.02
@pnickolov ์ ๋์ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ฃผ์ ๋ฐฉํด ์์์ ๋๋ค. ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์๋ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ๋ณํ์ ์คํํด์ผ ํ๋ 150๊ฐ ์ด์์ ํ๊ฒฝ๊ณผ ์ฌ๋ฌ ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค. ๋ค์์คํ์ด์ค๋ ํนํ ์๋น์ค ๊ฒ์๊ณผ ๊ด๋ จํ์ฌ ํ๊ฒฝ์ ๋ถ๋ฆฌํ๊ณ ๊ตฌ์ฑ์ ๋จ์ํ๊ฒ ํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
ํ์ ์ฐจํธ์์ ์๋น์ค ๋์ ์ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์๋ ๋ฐฉ๋ฒ ์์ด๋... ์์ ํ ๊ฐ์ ํตํด...
์ด๊ฒ๋ ํท๊ฐ๋ฆฝ๋๋ค. @technosophos ๋ ๋ค์๊ณผ ๊ฐ์ด
๋ฆด๋ฆฌ์ค๋ ๋ค์์คํ์ด์ค์ ๋ฐ์ธ๋ฉ๋์ง ์์ต๋๋ค. (์ด๊ฒ์ด ๋ฆด๋ฆฌ์ค ์์ฒด์ ๋ค์์คํ์ด์ค ์ ์๊ฐ ํฌํจ๋ ์ ์๋ ์ด์ ์ ๋๋ค). ์ฌ์ค, (๊ฐ์ธ์ ์ผ๋ก ์๋ํ๋ค๊ณ ๋งํ ์๋ ์์ง๋ง) ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋จ์ผ ์ฐจํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์ ํํ ์ดํดํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ๊ณ ์๋ค. ๋๋ ๋ฌธ์๋ฅผ ๋ณด์๊ณ ์ฌ๊ธฐ GH์ ๋ํ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ณด์์ง๋ง ์ฌ์ ํ ํผ๋ ์ค๋ฝ์ต๋๋ค.
helm install --namespace
๋ฅผ ์ฌ์ฉํ์ฌ ๋์์ผ๋ก ์ง์ ํ๋ ค๋ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.๊ทธ๋์, ๋ด ์ง๋ฌธ :
helm install --namespace
์ง์ ๋ ๋ค์์คํ์ด์ค๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด Helm์์ ์์ฑํฉ๋๊น? ๊ทธ๋ฐ ๋ค์ chrt์์ ์์ฑํ๋ ๋ชจ๋ ๋ฆฌ์์ค์ ํด๋น ๋ค์์คํ์ด์ค๋ฅผ ์ค์ ํฉ๋๊น?์ด๋ฌํ ์ง๋ฌธ์ผ๋ก ์ธํด --namespace
ํ๋ ๊ฒ์กฐ์ฐจ ์ฃผ์ ํ๊ฒ ๋์์ต๋๋ค. ๋๋ฌด ๋ช
ํํ์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๋๋ฅผ ์ดํดํ๋๋ก ๋์ธ ์ ์๋ค๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
f helm install --namespace ๋ก ์ง์ ๋ ๋ค์์คํ์ด์ค๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ Helm์์ ์์ฑํฉ๋๊น?
์. ๋ค์์คํ์ด์ค๊ฐ ์์ง ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ --namespace
๋ ์ฐจํธ์ ๋ํด ์ง์ ๋ ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค.
๋ฆฌ์์ค ํ ํ๋ฆฟ์ด ๋ฉํ๋ฐ์ดํฐ์ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ helm์ด ์ด๋ฅผ ๋ฎ์ด์ฐ๋์?
์๋์ค. --namespace
์ ๋์ผํ ๋ค์์คํ์ด์ค๋ฅผ ์ ๊ณตํ๊ณ ์ฐจํธ์ ๋ค์์คํ์ด์ค ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ, ๋ค์์คํ์ด์ค๊ฐ ๋จผ์ tiler์ ์ํด ์ค์น๋๊ณ ์ฐจํธ๊ฐ ์๋ํ ๋ ์ค๋จ๋๋ฏ๋ก ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค. ๋์ผํ ๋ค์์คํ์ด์ค๋ฅผ ๋ค์ ์ค์นํ์ญ์์ค.
์ถ๊ฐ ์ปจํ
์คํธ์์ helm์ ๋ํ ์์ด๋์ด๋ helm install --namespace
์ ๊ณตํ๋ ๋ค์์คํ์ด์ค์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ค์นํ๋ ๊ฒ์
๋๋ค. ์ฐจํธ์์ ๋ค์์คํ์ด์ค๋ฅผ "ํ๋์ฝ๋ฉ"ํ๋ ์ฌ์ฉ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ์ฐจํธ๋ฅผ ์ค์นํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
์ด๊ฒ์ OP๊ฐ ์ ์ํ๋ ๊ฒ๊ณผ๋ ์กฐ๊ธ ๋ค๋ฅด์ง๋ง, ์ถ๊ฐ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์ ํฐ์ผ์ ์ด๊ฑฐ๋ Slack์ ๊ฐ์ ํ์ธ์! :)
์ด ํ ๋ก ์ ๋ผ์ด๋ค๊ณ ์ถ์์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ๐ ์น์ ํ๊ฒ ๋ํด์ฃผ์ธ์ ๐
์คํ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ ์ฝ์ผ๋ฉด --namespace
์ต์
์ฃผ์์ ๋ง์ ํผ๋์ด ๋ํ๋ฉ๋๋ค. ์๋ํ๋ฉด ์ฌ๋๋ค์ (์๋นํ ํฉ๋ฆฌ์ ์ผ๋ก) kubectl --namespace
๊ณผ ๋น์ทํ๋ค๊ณ ๊ฐ์ ํ์ฌ ํด๋น ๋ค์์คํ์ด์ค์ ๋ํ ํ๋์ ํจ๊ณผ์ ์ผ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ค์ ๋ก ๋ณด์์ด ์๋๋ผ ๊ตฌ๋ฌธ ๋ถ์ ์ค๋ฅ์ ๋ถ์์ฉ). tiller
๋ ์ ์ฒด ํด๋ฌ์คํฐ์์ ์๋ํ๋ ํด๋ฌ์คํฐ ์๋น์ค์ด๋ฏ๋ก helm
์ ๊ฒฝ์ฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด ์ต์
์ --default-namespace
๋ผ๋ ์ด๋ฆ์ด ๋ ์ข์์ ๊ฒ์
๋๋ค. ํน์ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๋ฆฌ์์ค๊ฐ ์ด๋ํ๋ ๋ค์์คํ์ด์ค์
๋๋ค.
์ ๋ ์ด๋ฏธ ๊ฐ ๋ฆด๋ฆฌ์ค์ ์๋ก ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ๋ฌ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ๋ ์ฐจํธ์ ์์กดํ๊ณ ์์ผ๋ฉฐ helm 3.0์์ ํฅ์๋ ์ง์์ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค. ๐ ๐
๋ํ ์ฌ๋๋ค์ด ๋ค์ค ํ
๋ํธ, ๋ค์์คํ์ด์ค ์ ํ ์ค์น๋ฅผ ์ํ๋ ์ฌ์ฉ ์ฌ๋ก๋ ๋ด
๋๋ค. IMHO์ ๋ฒ์๋ฅผ ์ง์ ํ๊ฑฐ๋ ๋ค์์คํ์ด์ค๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์ ํํ๋ ๊ฒ์ helm
/ tiller
๊ฐ ์๋ ๊ฐ์ ์ ์ฉ, ์ฆ RBAC์ ์์
์
๋๋ค. ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ ์ต์ ๋ ๊ฐ์ง ๋ชจ๋ธ์ด ์์ผ๋ฉฐ, ํ๋๋ ํ์ฌ ๊ฐ๋ฅํฉ๋๋ค.
tiller
์ ๋ฐฐํฌํฉ๋๋ค. ์ด๊ฒ์ ์ง๊ธ ์๋ํ๊ณ ๋๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ๋ด
๋๋ค. ๋ค์ค ํ
๋ํธ ํด๋ฌ์คํฐ์ ์ด์์ ์
๋๋ค.tiller
๊ฐ k8s ์ฌ์ฉ์ ๊ฐ์ฅ ์ ์ง์ ๋ฅผ helm
์ฌ์ฉ์๋ก ๋ฐฐํฌํฉ๋๋ค. ์ด๊ฒ์ ํฅํ helm
๋ฒ์ ์ ๋ํด ๋
ผ์ ์ค์ด๋ฉฐ ๋ช ๊ฐ์ง ๊ตฌํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ํ๋ฉด ํด๋ฌ์คํฐ ์๋น์ค tiller
์์ RBAC ๋ค์์คํ์ด์ค ์ ํ์ ์ ์ฉํ๋ ๋์์ ๋ค์ค ๋ค์์คํ์ด์ค ํ์ฅ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ณ์ ์ง์ํฉ๋๋ค.๋์ผํ ์ฐจํธ๋ฅผ ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์ค์นํ์ง๋ง ๋์ผํ ๋ฆฌ์์ค ์ด๋ฆ(์: redis)์ ์ฌ์ฉํ๋ ค๋ ์ฌ๋๋ค์ ์ํ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ ์ ์ ์ผ๋ก ๊ฐ๋ฅํ๋ฉฐ ์ฐจํธ ํ
ํ๋ฆฟ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฌ๋ ค ์์ต๋๋ค. ๋ฆฌ์์ค ์ด๋ฆ์ ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ์ ๋์ฌ๋ก ๋ถ์ผ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ ๋ง์ ์ฐจํธ๊ฐ ๋ฐ๋ฅด๋ ๊ธฐ๋ณธ/๊ด๋ก์ผ ๋ฟ์
๋๋ค. ์ต๊ทผ ์ฐจํธ์๋ ๋ฆด๋ฆฌ์ค ์ด๋ฆ ์ ๋์ฌ๋ฅผ ์ ๊ฑฐํ ์ ์๋ .fullnameOverride
๊ฐ ์ด ์ด๋ฏธ ์์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ helm install
๋ง๋ค redis
๋ก redis
๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ @gmile ๊ณผ ๋น์ทํ ์ํฉ์ ์์ผ๋ฉฐ ingestion-service
๋ kafka
๋ํ ์ข
์์ฑ์ ๊ฐ์ง๋ฉฐ, zookeeper
์ ๋ํ ์ข
์์ฑ์ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ธ ๊ฐ์ง ๋ชจ๋๋ฅผ ์์ฒด ๋ค์์คํ์ด์ค์ ํฌํจํ๊ธฐ๋ฅผ ์ํ์ง๋ง ๋จ์ผ ํค install
ํตํด ๊ด๋ฆฌํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. kafka
์ requirements.yaml
์ ingestion-service
kafka
๋ฅผ ์ถ๊ฐํ ๊ณํ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ kafka
์์ ์ ๋ค์ ์คํ์ด์ค๊ฐ ์์ต๋๋ค์ ๊ฐ๋จ ๋ณด์ธ๋ค ์์ต๋๋ค helm
์ฐ๋ฆฌ๊ฐ์์ ์ ๊ฑฐ ๋์ ๋ค์ด๊ฐ๋๋ค ๋ฌด์ ๋๋ฌธ์ requirements.yaml
๋ค๋ฅธ ๊ฐ์ง helm install
๋ชจ๋ ๋ฐฐํฌ .
์ฐธ๊ณ ๋ก ์ด๊ฒ์ ์น์ 3: ์ํ ๊ด๋ฆฌ์ ๋์ด๋ Helm 3 ์ ์์ ์ผ๋ถ์ ๋๋ค. ํผ๋๋ฐฑ ํ์ํฉ๋๋ค!
ํ์์ ์ธ ์์์ ๋๋ค @bacongobbler ๐๐
@bacongobbler Helm 3์ @prat0318์์ ์ค๋ช ํ ๋๋ก requirements.yaml์์ ์ข ์ ์ฐจํธ์ ๋ํด ๋ณ๋์ ๋ค์์คํ์ด์ค ์ง์ ์ ์ง์
์ ์ ๋ฌธ์์์ (์ฝ์ด๋ณด์ธ์! :์ค๋ง์ผ:):
$ helm install -n foo bar --namespace=dynamite # installs release, releaseVersion, and un-namespaced charts into dynamite namespace.
Helm 2์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฆฌ์์ค๊ฐ ๋ช ์์ ์ผ๋ก ์์ฒด ๋ค์์คํ์ด์ค๋ฅผ ์ ์ธํ๋ฉด(์: metadata.namespace=something), Helm์ ์ด๋ฅผ ํด๋น ๋ค์์คํ์ด์ค์ ์ค์นํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ ์ ์ฐธ์กฐ๋ ๋ค์์คํ์ด์ค๋ฅผ ์ ์งํ์ง ์์ผ๋ฏ๋ก ์ด๋ฌํ ๋ฆฌ์์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ด๋ฆฌ๋์ง ์์ต๋๋ค.
@bacongobbler ์ฝ์์ง๋ง ์ฌ์ ํ ์ง์ํ์ง ์์ต๋๋ค. ๋ด๊ฐ ์ ์ดํ๋ โโ์ฐจํธ์ ํ๋์ฝ๋ฉ๋ ๋ฉํ๋ฐ์ดํฐ.๋ค์์คํ์ด์ค๋ฅผ ์๋ฏธํ๋ ๊ฒ์ ์๋๋ฉฐ ํญ์ ์ง์๋์์ต๋๋ค. ๋ด ๋ง์ ๋ด๊ฐ ํธ์งํ ์ ์๋ ํ์ฌ ์ฐจํธ์ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ด requirements.yaml์์ ๋๋ stable/kubernetes-dashboard์ ์์กดํ๊ณ ๊ทธ๊ฒ์ kube-system์ ์ค์นํ๊ธฐ๋ฅผ ์ํ์ง๋ง ๋ด ์ฐจํธ๋ ๊ฐ๋ฐ ๋ค์์คํ์ด์ค๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํ๋ ๊ฒ์ด ์์ ํ๋ค๋ฉด /close
.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
๋ฐ๋ก ์ด ๊ธฐ๋ฅ ์์ฒญ์ด helmfile ์ ์ํด ์ํ๋ ์ ์๋ ๊ฒ์ผ๋ก
@gmile helmfile ๊ด๋ฆฌ์๊ฐ helmfile์์ ์ด ํน์ ๋ฌธ์ ๋ฅผ ์์ ํ์ง ์์๋ค๊ณ 99% ํ์ ํฉ๋๋ค. helmfile.yaml์์ ์๋ก ๋ค๋ฅธ ๋ค์์คํ์ด์ค๊ฐ ์๋ vault
๋ผ๋ ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ์ธํ๊ณ helmfile sync
์คํํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค์์ ๋ฆด๋ฆฌ์ค ์ด๋ฆ vault
์ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ ์คํจํฉ๋๋ค.
๋ฉด์ฑ ์กฐํญ: helmfile์ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ํ ์คํธํ์ง ์์์ผ๋ฏ๋ก ๋ด๊ฐ ํ๋ ธ๋ค๋ ๋ง์ ๋ฃ๊ณ ์ถ์ต๋๋ค. ๐
๋ง์ง๋ง ์ค๋ช ์ด ๋๋ฝ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ Helm์ด ๋ฆด๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ์ฌ Helm 3์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์์ต๋๋ค. :)
@steven-sheehy ๊ทธ ํน์ ๋ฌธ์ ๋ ์ ์๋ ๊ฒ๋ณด๋ค ํน์ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ๋๋ก ํ์ ์ฐจํธ๋ฅผ ํ์ฅํ์ฌ ์๋๋ฐ์ฑ ๋ชจ๋ธ ์ ํตํด ์์ ๋ ์ ์์ต๋๋ค.
/remove-lifecycle ๋ถ์ค
Helm 3์์ ๊ตฌํ๋จ. ๋ค์์คํ์ด์ค ์ปจํ ์คํธ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์์ ํ ๋ค๋ฅธ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
><> ./bin/helm version
version.BuildInfo{Version:"v3.0+unreleased", GitCommit:"5eb48f4471ac3aa9a3c87a07ee6f9e5bbc60a0e1", GitTreeState:"clean"}
><> ./bin/helm list --all-namespaces
NAME REVISION UPDATED STATUS CHART NAMESPACE
chartmuseum 1 2019-02-08 08:56:29.566393188 -0800 PST deployed chartmuseum-1.9.0 default
chartmuseum 1 2019-02-08 09:14:01.978866327 -0800 PST deployed chartmuseum-1.9.0 foo
์ข์ ์์ @bacongobbler
์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์ฃผ์ด์ง๋ฉด ๋ค์์คํ์ด์ค ์ด์ด list
์ถ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ด๋ก ์ด๋ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๊น? ์ฒ์ ๋ ์ด์ด ๋ฆด๋ฆฌ์ค๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋๋ก ํ์๊ฒ ์ต๋๊น?
๊ธฐ๋ณธ ์ ๋ ฌ์ ๋ค์์คํ์ด์ค ๋ฐ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ์ ์์ผ๋ฏ๋ก ๋์ผํ ๋ค์์คํ์ด์ค์ ๋ฆด๋ฆฌ์ค๊ฐ ํจ๊ป ๊ทธ๋ฃนํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ kube-system
๋ฆด๋ฆฌ์ค๊ฐ ํจ๊ป ๊ทธ๋ฃนํ๋ฉ๋๋ค.
ํ์ ํ๋.
์ง๊ธ์ ๊ทธ๋ฅ ์ฌ์ฉ
helm install --name <namespace>-<name> ...
์, ํ์ฌ ์๋ ๋ฐฉ์์ ์ข์ง ์์ง๋ง ๊ด๋ฆฌํ ์ ์ญ์ ์ผ๋ก ๊ณ ์ ํ ์ด๋ฆ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ๋ฆด๋ฆฌ์ค ์ด๋ฆ์ ๋ํ ๋ณตํฉ ํค๋ฅผ ๋ง๋ค ์ ์๋ ์ด์ ๋ ์์ต๋๋ค.
์ข์, 3๊ฐ์ง ๊ธฐ๋ณธ ์๋๋ฆฌ์ค๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค(๊ฐ๊ฐ ๋ค์ํ ์์ด์ด ํผํฉ๋ ์ ์์).
์ด๊ฒ์ด ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํฉ๋ฆฌ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๊น?
--namespace
ํ๋๊ทธ์ ํจ๊ป ์ ๊ณต๋ ๋ ๋ค์์คํ์ด์ค๋ฅผ ์ฃผ์
/์ฌ์ ์ํฉ๋๋ค.์ ์ณ๋๊ณ : ๋๋ ๊ฒฝ์ด๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ helm template
์ ํธํ๋ฏ๋ก ์ด๊ฒ์ด ๋์ ๊ณผ์ ๋ฅผ ์ผ๋ง๋ ๋ณํ์ํค๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@technosophos
Helm v2๊ฐ ๋ค์์คํ์ด์ค์ ์ํธ ์์ฉํ๋ ๋ฐฉ์๊ณผ v3์ด ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅ ์ค์ด๋ฉฐ ์ด ์ค๋ ๋์ ์ด์ ์๊ฒฌ ์ค ํ๋๊ฐ ์ ๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํฉ๋๋ค.
๋จผ์ ์์ ์ ๋ค์ ๋ฐ๋ณตํ๊ฒ ์ต๋๋ค. Helm ์ฐจํธ๋ ๋ค์์คํ์ด์ค ์์ค์ด ์๋๋ผ ์ ์ญ ์์ค์์ ์๋ํฉ๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ค์ ์ด๋ฆ์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํฉ๋๋ค.
....
๋ค์์คํ์ด์ค๊ฐ ์๋ ํญ๋ชฉ์ ๊ฒฝ์ฐ ์ํฉ์ด ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์ํฅ์ ์ค ์ ์๋ ๋ค์์คํ์ด์ค๊ฐ ์๋ ํญ๋ชฉ์ ๊ด๋ฆฌํ๋ ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค๊ฐ ์์ ๊ฒ์ ๋๋ค. RBAC์ TPR์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด์ญ์์ค. ์ด๊ฒ์ Helm์ด ๋จ์ํ ์ง์ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ์ ์๋ ๊ฒ์ด ์๋๋ฉฐ ๋ค์์คํ์ด์ค๋ฅผ "์์กฐ"ํ๋ฉด ํนํ RBAC์์ ๊ฐ์น๋ณด๋ค ๋ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Helm v3์์ ๋ฐฐํฌ๋ ๋ฆด๋ฆฌ์ค๋ ์ค์ ๋ก ๋ค์์คํ์ด์ค๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ ๋ง์ต๋๊น? RBAC ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ํด๊ฒฐ๋์๋์ง ์์ญ๋๊น? ๋น์ ์ด ์ง์ ํ ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ ์ ์ผํ ํด๊ฒฐ์ฑ ์ Helm v3 ์ฐจํธ๊ฐ RBAC ๊ฐ์ฒด ์์ ์ ์ง์ํ์ง ์๋ ๊ฒ์ ๋๋ค. RBAC ๊ฐ์ฒด ์ฌ๋ถ.
์ฐ๋ฆฌ๊ฐ ์ ๋ง๋ก ํ์ํ ๊ฒ์ ๋ค์์คํ์ด์ค ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๊ณ
์ด๋ฆ ๋งค๊ฐ๋ณ์๋ฅผ ๋ถ์ฐฉํ๋ ๋์ ๋ฆด๋ฆฌ์ค๋ฅผ ์๋ณํ๋ ๋ณตํฉ ํค๋ก ์ฌ์ฉ
์ด๋ฆ์ ๋ํ ๋ค์์คํ์ด์ค.
๋๋ helm v3์ ๋ํ ์ ์์ ์ฝ์ง ์์์ง๋ง ํด์ผ ํ ํ๋ช
ํ ์ผ์
k8์ด ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๋ ์ ํ๊ธฐ ํจํด์ ์ฑํํ ํ์๊ฐ ์์ต๋๋ค.
ํน์ ํ๋๋ฅผ ์ง์ํฉ๋๋ค.
2019๋ 6์ 25์ผ ํ์์ผ ์ค์ 11:01 BatmanAoD [email protected]์ด ์์ฑํ์ต๋๋ค.
@technosophos https://github.com/technosophos
Helm v2๊ฐ ๋ค์์คํ์ด์ค์ ์ํธ ์์ฉํ๋ ๋ฐฉ์๊ณผ v3๊ฐ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง ์ดํดํ๋ ค๊ณ ํฉ๋๋ค.
๋ค๋ฅผ ๊ฒ์ด๋ฉฐ ์ด ์ค๋ ๋์ ์ด์ ์๊ฒฌ ์ค ํ๋๊ฐ ์ ๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํฉ๋๋ค.๋จผ์ ์์ ์ ๋ค์ ๋ฐ๋ณตํ๊ฒ ์ต๋๋ค. Helm ์ฐจํธ๋ ์ ์ญ์์ ์๋ํฉ๋๋ค.
๋ค์์คํ์ด์ค ์์ค์ด ์๋๋ผ ์์ค์ ๋๋ค. ๊ทธ๋์ ๊ทธ๋ค์ ์ด๋ฆ์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํฉ๋๋ค....๋ค์์คํ์ด์ค๊ฐ ์๋ ํญ๋ชฉ์ ๊ฒฝ์ฐ ์ํฉ์ด ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. ์ฐ๋ฆฌ๋
๋ค์์คํ์ด์ค๊ฐ ์ง์ ๋์ง ์์ ํญ๋ชฉ์ ๊ด๋ฆฌํ๋ ๋ค์์คํ์ด์ค ๋ฆด๋ฆฌ์ค
๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์ํฅ์ ์ค๋๋ค. RBAC์ TPR์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด์ญ์์ค.
์ด๊ฒ์ Helm์ด ์ง์ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ์ ์๋ ์ฌํญ์ด ์๋๋๋ค.
๋ค์์คํ์ด์ค๋ฅผ "์์กฐ"ํ๋ฉด ๊ฐ์น๋ณด๋ค ๋ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํนํ
RBAC์ ํจ๊ป.Helm v3์์ ๋ฐฐํฌ๋ ๋ฆด๋ฆฌ์ค๋ ์ค์ ๋ก ๋ค์์คํ์ด์ค๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ ๋ง์ต๋๊น? RBAC ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ํด๊ฒฐ๋์๋์ง ์์ญ๋๊น? ์ ์ผํ
๋น์ ์ด ์ง์ ํ ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ค๊ณ ์๊ฐํ ์์๋ ํด๊ฒฐ์ฑ
Helm v3 ์ฐจํธ๋ RBAC ๊ฐ์ฒด ์์ ์ ์ง์ํ์ง ์์ง๋ง ์ฐพ์ง ๋ชปํ์ต๋๋ค.
v3 ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ v3์ ๋ํ ๋ค์ํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ๋ฐ ๊ธฐํ
์ฐจํธ๋ RBAC ๊ฐ์ฒด ๊ด๋ฆฌ๋ฅผ ์ง์ํ๊ฑฐ๋ ์ง์ํ์ง ์์ต๋๋ค.โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/helm/helm/issues/2060?email_source=notifications&email_token=AACFHREXHFSKFSB7FXQ5VPTP4JMP3A5CNFSM4DCII7X2YY3PNVWWK5WSFIZM52HS4DFVEXG43VMVBW63LNMVXHJGODY
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AACFHRH2JPXPKMX23WVQLCDP4JMP3ANCNFSM4DCII7XQ
.
@BatmanAoD @gyndick Helm v3์์ ์ฐจํธ๋ ์ฌ์ฉ์ ์ปจํ ์คํธ์ ์ค์น๋ฉ๋๋ค. ์ด๋ ํด๋น ์ฌ์ฉ์ ๋ค์์คํ์ด์ค์ ์ค์น๋๊ณ ์ฌ์ฉ์์ RBAC๋ฅผ ์ฌ์ฉํจ์ ์๋ฏธํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ์ด๋ฆ๋ ๋ค์์คํ์ด์ค ๊ธฐ๋ฐ์ ๋๋ค.
Alpha.1 ๋ฆด๋ฆฌ์ค( https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1) ์์ ์ฌ์ฉํด ๋ณด๊ฑฐ๋ dev-v3
๋ถ๊ธฐ์์ ๋น๋ํ ์ ์์ต๋๋ค.
๋๋ helm v3๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒ์
๋๋ค. ๋ชจ๋ ์ด์ ํ์ ๋ค๋ฅธ
์ ์ฝ๊ณผ ์ผ์ ํ๋ ๋ฐฉ๋ฒ. ์ด์ ๋๊ตฌ๋ ๋จ์ํด์ผ ํ๋ฉฐ,
๋จ์ผ ๋ชฉ์ ์ ํธ๋ฆฌํฐ, ์ฆ Unix ์ฒ ํ๊ณผ ํธํ๋ฉ๋๋ค.
๋ด ์คํฌ๋ฆฝํ , ๋ ผ๋ฆฌ ๋ฑ์ ํจํค์ง ๊ด๋ฆฌ์ ์ธ๋ถ์ ์์ต๋๋ค.
TLDR;
Unix ์ฒ ํ๊ณผ ํธํ๋๋ ๊ฐ์ฅ ์ค์ํ ์ธก๋ฉด์
๊ณ๋จ ์ฌ์ด์ ํ์ถ๊ตฌ๋ฅผ ์ ๊ณตํ๋ ๋ฅ๋ ฅ.
๋ฌผ๋ฅ๋ฅผ ๊ด๋ฆฌํ๋ ๊ธธ๊ณ ์๋ํ๋ ์ํฌํ๋ก๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค.
์๋์์ ๋ฌด๋ค๊น์ง, ๋ถ์์ง ๋๊น์ง ๊ต์ฅํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋์ง ์๋ ๊ฒฝ์ฐ
ํ์ํ ํ๋ฆ์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ์๋์ผ๋ก ์ํํ๋ ๊ธฐ๋ฅ, ์๋ํ
ํ๋๋ผ์ ์์๊ฐ ๋๋ค.
v3์ ๋ํด ์ ์๋ ๋ณต์ก์ฑ์ ๋ง์ ์ค์์ ๋์
25๋
๊ฒฝ๋ ฅ์ ํํ์ด ์๋ ์ฌ๋๋ค์ ๋์์ธ.
์ถ๊ฐ๋ ๋ณต์ก์ฑ์ ํญ์ ์ผ์ ๋ ์ด๋ ต๊ฒ ๋ง๋ค ๋ฟ์
๋๋ค.
์์ฒด ๊ฐ๋ฐ ํ๊ฒฝ์ด ๋๋ ์ด์ ๋๊ตฌ
๋ถ๋ฅ๋ฅผ ๋ฆ์ถ์ญ์์ค.
์๋ฒฝํ ์๋ ๋๊ตฐ๊ฐ๊ฐ ํ๋์ ๊ฑฐ๋ํ๊ณ ๋์ฐํ๊ฒ ์ฑ๋ฌธํ๋์์ ๋์
๋๋ค.
์์ฑ๋ ์คํฌ๋ฆฝํธ. ์ค๋จ์ด ๋ฐ์ํ๊ณ ์คํฌ๋ฆฝํธ์ ์ผ๋ถ๋ฅผ ์คํํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ๋ถ๋ถ์ ์๊ฒฉํ๊ฒ ํผํด์ผ ํ์ง๋ง ์ด๋ฌํ ๋ถ๋ถ์
์ฃผ์ ๋
ผ๋ฆฌ. ๊ทธ๋ผ ๋๋์ฒด ์ด๋ป๊ฒ ํ๋ ๊ฒ๋๊น? ๋ฏธ์น ๋ฏ์ด ๋
ธ๋ ฅํ๋ฉด์ ๊ฑฐ๊ธฐ์ ์์
๋๋ฒ๊น
์ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํฉ๋๋ค.
์ง์ํ๊ธฐ ์ํด ์ํ๊ณ์ ๋ค์ด๊ฐ๋ ๋ชจ๋ ๋๊ตฌ์ ๋ํด ์๊ฐํด ๋ณด์ญ์์ค.
ํน์ ์ธ์ด๋ก ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ์ด์. ๋ ์๋์ผ
๊ฝค ์ค๋ซ๋์ ํค๋ฅผ ์ ๊ณตํ ์ ์์ ๊ฒ์
๋๋ค.
๋ฐ๋ผ์ ๋ฒ์ ๊ฐ์ ๋ง์ด๊ทธ๋ ์ด์
์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฑ
์์ ์ ์งํ์ญ์์ค.
๋ฐฐํฌ๋๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ์ฌ๋๋ค๊ณผ ์ํํธ์จ์ด.
ํจํค์ง ๊ด๋ฆฌ์๋ ๋ช ๊ฐ์ง๋ง ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ณ ๊ฐ๋ฒผ์์ผ ํฉ๋๋ค.
์ฑ
์.
๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๊ณ ํต์ ์๊ตฌํฉ๋๋ค. ์์งํ helm v2๋ ๊ฑฐ์ ์๋ฒฝ์ ๊ฐ๊น์ต๋๋ค.
๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ์์ ํ๋ค๋ฉด.
2019๋
6์ 26์ผ ์์์ผ ์ค์ 1์ 31๋ถ Martin Hickey [email protected]
์ผ๋ค:
@BatmanAoD https://github.com/BatmanAoD @gyndick Helm v3์์ ์ฐจํธ๋
์ฌ์ฉ์ ์ปจํ ์คํธ์ ์ค์น๋ฉ๋๋ค. ์ด๊ฒ์ ํด๋น ์ฌ์ฉ์์ ์ค์น๋์์์ ์๋ฏธํฉ๋๋ค.
๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ณ ์ฌ์ฉ์์ RBAC๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ์ด๋ฆ์
๋ค์์คํ์ด์ค ๊ธฐ๋ฐ๋.Alpha.1 ๋ฆด๋ฆฌ์ค์์ ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1 ๋๋ ๋น๋
dev-v3 ๋ถ๊ธฐ.โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/helm/helm/issues/2060?email_source=notifications&email_token=AACFHREUTX77SJCPWZLQKATP4MSNRA5CNFSM4DCII7X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LDNMVXHJK
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AACFHRCAQLWUYHH6RJSUYF3P4MSNRANCNFSM4DCII7XQ
.
@hickeyma ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! Helm ์์ฒด๊ฐ v3์์ ClusterRoles ์์ฑ๊ณผ ๊ฐ์ ์ ์ญ ์์ ์ ๊ณ์ ์ํํ ์ ์๋์ง ์ฌ๋ถ์ ๊ฐ์ด Helm์ ์์ ์ด ์ก์ธ์ค ์ ์ด๋๋ ๋ฐฉ์์ ๋ํด ๊ทธ๋ค์ง ๊ถ๊ธํ์ง ์์ต๋๋ค(๊ด๋ จ ๋ฌธ์ ์ด์ง๋ง).
@BatmanAoD ํด๋ฌ์คํฐ ๋ฒ์ ๋ฆฌ์์ค์ด๋ฏ๋ก ์๋ํด์ผ ํฉ๋๋ค. ๊ธฐํ๊ฐ ๋๋ค๋ฉด ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์์ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ช ์ ์ ์ผ๋ก ๋ค์ ์คํ์ด์ค์ ๊ด๋ จ๋ helm ์ฐจํธ๊ฐ์๋ ์๋น์ค ๋ฐ ๊ธฐํ k8s ๊ธฐ๋ณธ ์ ํ๊ณผ ๋์ผํ ์์ ์ ์ํ ํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์์ ์ํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.