Helm์ด๋ž€?

Helm์€ Kubernetes์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ž„
Kubernetes ๋ฆฌ์†Œ์Šค๋ฅผ **์ฐจํŠธ(chart)**๋ผ๋Š” ํ˜•ํƒœ๋กœ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ


Helm์˜ ์ฃผ์š” ๊ฐœ๋…

  • ์ฐจํŠธ(Chart):
    Kubernetes ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•œ Helm ํŒจํ‚ค์ง€๋กœ, YAML ํŒŒ์ผ๋“ค์˜ ๋ชจ์Œ์ž„
    ์ฐจํŠธ๋Š” ์‰ฝ๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฒ„์ „ ๊ด€๋ฆฌ๋„ ์ง€์›๋จ

  • ๋ฆด๋ฆฌ์Šค(Release):
    Helm ์ฐจํŠธ๋ฅผ ์‹ค์ œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜ํ•œ ํŠน์ • ์ธ์Šคํ„ด์Šค์ž„
    Helm์„ ํ†ตํ•ด ์ฐจํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋ฐฐํฌ๋ณธ์ด ๋ฆด๋ฆฌ์Šค๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง

  • ๋ ˆํฌ์ง€ํ† ๋ฆฌ(Repository):
    Helm ์ฐจํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ, GitHub ์ €์žฅ์†Œ๋‚˜ ์›น ์„œ๋ฒ„ ๋“ฑ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Œ


Helm์˜ ์žฅ์ 

  • ๋ณต์žกํ•œ Kubernetes ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ๊ฐ„ํŽธํ™”
  • ์„ค์ • ํŒŒ์ผ ์ค‘๋ณต ๋ฐฉ์ง€
  • ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๋กค๋ฐฑ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ‘œ์ค€ํ™”๋œ ํ˜•ํƒœ๋กœ ์‰ฝ๊ฒŒ ๋ฐฐํฌ ๊ฐ€๋Šฅ

Helm ๋ช…๋ น์–ด ์˜ˆ์‹œ

  • ์ฐจํŠธ ์ƒ์„ฑ
helm create mychart
  • ์ฐจํŠธ ์„ค์น˜
helm install myrelease mychart
  • ์„ค์น˜๋œ ๋ฆด๋ฆฌ์Šค ํ™•์ธ
helm list
  • ๋ฆด๋ฆฌ์Šค ์—…๊ทธ๋ ˆ์ด๋“œ
helm upgrade myrelease mychart
  • ๋ฆด๋ฆฌ์Šค ์‚ญ์ œ
helm uninstall myrelease

Helm์˜ ๊ตฌ์„ฑ์š”์†Œ

  • values.yaml: ์„ค์ •๊ฐ’์„ ์ •์˜ํ•˜๋Š” ํŒŒ์ผ๋กœ, ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์†์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • templates/: Kubernetes ๋ฆฌ์†Œ์Šค๊ฐ€ ์ •์˜๋œ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•˜๋Š” ํด๋”
  • Chart.yaml: ์ฐจํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ ์˜์กด์„ฑ ์ •๋ณด ํฌํ•จ

Docker & Docker Compose vs Kubernetes & Helm ๋น„๊ต ์š”์•ฝ

๋„๊ตฌ์—ญํ• ๋น„์œ ์  ๋Œ€์‘
Docker์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰Kubernetes
Docker Compose์ปจํ…Œ์ด๋„ˆ ์ง‘ํ•ฉ ๊ด€๋ฆฌHelm

์ฆ‰, Helm์€ Kubernetes ํ™˜๊ฒฝ์—์„œ Docker Compose์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋„๊ตฌ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€