Helm: ๋ฒ”์œ„ ์ง€์ •์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ด๋ฆ„์„ ๋ฆด๋ฆฌ์Šคํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 03์›” 03์ผ  ยท  46์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: helm/helm

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

์ด ์ฃผ์ œ์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋…ผํ‰ํ•˜๊ณ  @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์ด ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์„ ์ฐจ๋‹จํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ €์—๊ฒŒ ์กฐ๊ธˆ ์ž˜๋ชป ๋Š๊ปด์ง€๋‚˜์š”?
์ด ๊ฒฐ์ •์ด ํ–ฅํ›„ ํฌ๋กœ์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฆด๋ฆฌ์Šค๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค๋Š” ์–ธ๊ธ‰๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฒ”์œ„ ์ง€์ •์ด ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐจ๋‹จํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„ ์ง€์ •(์˜ค๋Š˜๋‚  ์กฐ์‹ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌ) ๋ฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ „๋‹ฌ์— ์ฃผ์˜ํ•ด์•ผ ํ•˜์ง€๋งŒ ์„ค์น˜ ์‹œ ๋‹จ์ผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ˜„์žฌ ์ ‘๊ทผ ๋ฐฉ์‹๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

keep open proposal

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ช…์‹œ ์ ์œผ๋กœ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์™€ ๊ด€๋ จ๋œ helm ์ฐจํŠธ๊ฐ€์žˆ๋Š” ์„œ๋น„์Šค ๋ฐ ๊ธฐํƒ€ k8s ๊ธฐ๋ณธ ์œ ํ˜•๊ณผ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

helm install --namespace abc --name redis stable/redis
helm install --namespace def --name redis stable/redis

๋ชจ๋“  46 ๋Œ“๊ธ€

๋‚ด๊ฐ€ ๋‹น์‹ ์„ ์ดํ•ดํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ์ด๋ฆ„์ด ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ์ƒํƒœ์—์„œ ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

@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/)?

๋‹ค๋ฅธ ๊ณณ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ๋งํ–ˆ์ง€๋งŒ ์šฐ๋ฆฌ์˜ ๊ถ๊ทน์ ์ธ ๋ชฉํ‘œ๋Š” ๋™์ผํ•œ ์ฐจํŠธ์—์„œ ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์‚ฌ์šฉ ์‚ฌ๋ก€: ์•ฑ์— ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์ด ์žˆ์œผ๋ฉฐ ๋ณด์•ˆ ๊ฒฝ๊ณ„๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐ๊ฐ ๋ณ„๋„์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ)

๋ฆด๋ฆฌ์Šค๋ฅผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐ”์ธ๋”ฉํ•˜๋ฉด ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ์žƒ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  1. ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ง์ ‘ ๊ด€๋ฆฌ
  2. RBAC ๋ฐ ์„œ๋น„์Šค ๊ณ„์ • ๊ด€๋ฆฌ
  3. TPR(๋ฐ ๊ธฐํƒ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์—†๋Š” ๊ฐœ์ฒด) ๊ด€๋ฆฌ
  4. ๊ฒฐ๊ตญ ๋‹ค์ค‘ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ฐจํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ด๋ฆ„ ์ง€์ • ๋ฌธ์ œ๊ฐ€ ์กฐ๊ธˆ ๋” ์–ด๋ ค์›Œ์ง€์ง€๋งŒ 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๊ฐœ
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋‹น ํ•˜๋‚˜์˜ Tiller ์ธ์Šคํ„ด์Šค(RBAC ๊ถŒํ•œ์ด ๋” ์ œํ•œ๋˜์–ด ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์†Œ์œ ํ•œ ๊ฐœ๋ฐœ์ž ํŒ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)

"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์—์„œ ์ƒ์„ฑํ•˜๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๊นŒ?
  • ๋ฆฌ์†Œ์Šค ํ…œํ”Œ๋ฆฟ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ helm์ด ์ด๋ฅผ ๋ฎ์–ด์“ฐ๋‚˜์š”?

์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์œผ๋กœ ์ธํ•ด --namespace ํ•˜๋Š” ๊ฒƒ์กฐ์ฐจ ์ฃผ์ €ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‚˜๋ฅผ ์ดํ•ดํ•˜๋„๋ก ๋„์šธ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

f helm install --namespace ๋กœ ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Helm์—์„œ ์ƒ์„ฑํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ --namespace ๋Š” ์ฐจํŠธ์— ๋Œ€ํ•ด ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ํ…œํ”Œ๋ฆฟ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ helm์ด ์ด๋ฅผ ๋ฎ์–ด์“ฐ๋‚˜์š”?

์•„๋‹ˆ์˜ค. --namespace ์— ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ฐจํŠธ์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ, ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ๋จผ์ € tiler์— ์˜ํ•ด ์„ค์น˜๋˜๊ณ  ์ฐจํŠธ๊ฐ€ ์‹œ๋„ํ•  ๋•Œ ์ค‘๋‹จ๋˜๋ฏ€๋กœ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ์—์„œ helm์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋Š” helm install --namespace ์ œ๊ณตํ•˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐจํŠธ์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ "ํ•˜๋“œ์ฝ”๋”ฉ"ํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ OP๊ฐ€ ์ œ์•ˆํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด์ง€๋งŒ, ์ถ”๊ฐ€ ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ์ƒˆ ํ‹ฐ์ผ“์„ ์—ด๊ฑฐ๋‚˜ Slack์— ๊ฐ€์ž…ํ•˜์„ธ์š”! :)

์ด ํ† ๋ก ์— ๋ผ์–ด๋“ค๊ณ  ์‹ถ์€์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„ ์นœ์ ˆํ•˜๊ฒŒ ๋Œ€ํ•ด์ฃผ์„ธ์š” ๐Ÿ™

helm --namespace ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์‹ค์ œ๋กœ --default-namespace์ž…๋‹ˆ๋‹ค.

์Šคํƒ๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์ฝ์œผ๋ฉด --namespace ์˜ต์…˜ ์ฃผ์œ„์— ๋งŽ์€ ํ˜ผ๋ž€์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์€ (์ƒ๋‹นํžˆ ํ•ฉ๋ฆฌ์ ์œผ๋กœ) kubectl --namespace ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ํ™œ๋™์„ ํšจ๊ณผ์ ์œผ๋กœ ์ œํ•œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ณด์•ˆ์ด ์•„๋‹ˆ๋ผ ๊ตฌ๋ฌธ ๋ถ„์„ ์˜ค๋ฅ˜์˜ ๋ถ€์ž‘์šฉ). tiller ๋Š” ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ž‘๋™ํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์„œ๋น„์Šค์ด๋ฏ€๋กœ helm ์˜ ๊ฒฝ์šฐ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ --default-namespace ๋ผ๋Š” ์ด๋ฆ„์ด ๋” ์ข‹์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠน์ • ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ด๋™ํ•˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

๋‹ค์ค‘ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฆด๋ฆฌ์Šค๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์ด๋ฏธ ๊ฐ ๋ฆด๋ฆฌ์Šค์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌํ•˜๋Š” ์ฐจํŠธ์— ์˜์กดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ helm 3.0์—์„œ ํ–ฅ์ƒ๋œ ์ง€์›์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘ ๐ŸŽ‰

helm ๋ฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ œํ•œ์ด ์žˆ๋Š” ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ๊ฐ€ ์ด๋ฏธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ œํ•œ ์„ค์น˜๋ฅผ ์›ํ•˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋„ ๋ด…๋‹ˆ๋‹ค. IMHO์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒƒ์€ helm / tiller ๊ฐ€ ์•„๋‹Œ ๊ฐ•์ œ ์ ์šฉ, ์ฆ‰ RBAC์˜ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋ธ์ด ์žˆ์œผ๋ฉฐ, ํ•˜๋‚˜๋Š” ํ˜„์žฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  1. ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ๋งŒ ์ž‘์—…์„ ํ—ˆ์šฉํ•˜๋Š” RBAC ๋ฐ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋‹น tiller ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ง€๊ธˆ ์ž‘๋™ํ•˜๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋ด…๋‹ˆ๋‹ค. ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ ํด๋Ÿฌ์Šคํ„ฐ์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.
  2. 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๊ฐ€์ง€ ๊ธฐ๋ณธ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค(๊ฐ๊ฐ ๋‹ค์–‘ํ•œ ์ˆœ์—ด์ด ํ˜ผํ•ฉ๋  ์ˆ˜ ์žˆ์Œ).

  1. ๋‹จ์ผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ฐจํŠธ.
  2. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์—†๋Š” ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค.
  3. ๋‹ค์ค‘ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ฐจํŠธ.

์ด๊ฒƒ์ด ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ•ฉ๋ฆฌ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๊นŒ?

  1. --namespace ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋  ๋•Œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ฃผ์ž…/์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  2. 1๊ณผ ๊ฐ™์ง€๋งŒ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์—†๋Š” ๋ฆฌ์†Œ์Šค์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  3. "๋‹ค์ค‘ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Œ" ๋ฆฌ์†Œ์Šค ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ์ธ์šฉํ•˜์—ฌ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์ œ์ณ๋‘๊ณ : ๋‚˜๋Š” ๊ฒฝ์šด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  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๋…„ ๊ฒฝ๋ ฅ์˜ ํ˜œํƒ์ด ์—†๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋””์ž์ธ.

์ถ”๊ฐ€๋œ ๋ณต์žก์„ฑ์€ ํ•ญ์ƒ ์ผ์„ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ๋ฟ์ž…๋‹ˆ๋‹ค.
์ž์ฒด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ๋˜๋Š” ์šด์˜ ๋„๊ตฌ
๋ถ„๋ฅ˜๋ฅผ ๋Šฆ์ถ”์‹ญ์‹œ์˜ค.

์™„๋ฒฝํ•œ ์˜ˆ๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•˜๊ณ  ๋”์ฐํ•˜๊ฒŒ ์„ฑ๋ฌธํ™”๋˜์—ˆ์„ ๋•Œ์ž…๋‹ˆ๋‹ค.
์ž‘์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ. ์ค‘๋‹จ์ด ๋ฐœ์ƒํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ์˜ ์ผ๋ถ€๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ถ€๋ถ„์€ ์—„๊ฒฉํ•˜๊ฒŒ ํ”ผํ•ด์•ผ ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์€
์ฃผ์š” ๋…ผ๋ฆฌ. ๊ทธ๋Ÿผ ๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฒ๋‹ˆ๊นŒ? ๋ฏธ์นœ ๋“ฏ์ด ๋…ธ๋ ฅํ•˜๋ฉด์„œ ๊ฑฐ๊ธฐ์— ์•‰์•„
๋””๋ฒ„๊น…์— ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์—†๋Š” ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•ฉ๋‹ˆ๋‹ค.

์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ƒํƒœ๊ณ„์— ๋“ค์–ด๊ฐ€๋Š” ๋ชจ๋“  ๋„๊ตฌ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณด์‹ญ์‹œ์˜ค.
ํŠน์ • ์–ธ์–ด๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐ ์šด์˜. ๋„Œ ์•„๋‹ˆ์•ผ
๊ฝค ์˜ค๋žซ๋™์•ˆ ํ‚ค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฒ„์ „ ๊ฐ„์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค.
๋ฐฐํฌ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ์†Œํ”„ํŠธ์›จ์–ด.

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ๋ช‡ ๊ฐ€์ง€๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€๋ฒผ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ฑ…์ž„.

  1. ์•„ํ‹ฐํŒฉํŠธ ์ „๋‹ฌ
  2. ์•„ํ‹ฐํŒฉํŠธ ์ œ๊ฑฐ
  3. ์•„ํ‹ฐํŒฉํŠธ์— ์ œ๊ณต๋œ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰
  4. ์ „๋‹ฌํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ‚ค์Šค

๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๊ณ ํ†ต์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์†”์งํžˆ 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 ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ”์œ„ ๋ฆฌ์†Œ์Šค์ด๋ฏ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰