[DevCamp] ๐Ÿงช ๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ

๋™๊ฑดยท2025๋…„ 6์›” 2์ผ

DevCamp

๋ชฉ๋ก ๋ณด๊ธฐ
77/85

๐Ÿงช ๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ

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


๐ŸŒฑ ๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ๋ž€?

๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ฐœ๋ฐœ์ž์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ์— ๊ตฌ์ถ•๋œ ๊ฒฝ๋Ÿ‰ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์„ ์˜๋ฏธํ•˜๋ฉฐ, ํด๋ผ์šฐ๋“œ์™€ ์œ ์‚ฌํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ๋“ค:

  • Minikube: ๋กœ์ปฌ์—์„œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์‹คํ–‰
  • Kind: Docker ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ
  • Docker Desktop: ๊ธฐ๋ณธ์ ์œผ๋กœ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ํฌํ•จ

โš™๏ธ ์„ค์น˜ ๋ฐ ์‹คํ–‰ (Minikube ๊ธฐ์ค€)

# 1. Minikube ์„ค์น˜
brew install minikube

# 2. ํด๋Ÿฌ์Šคํ„ฐ ์‹œ์ž‘
minikube start

# 3. ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ํ™•์ธ
kubectl get nodes

# 4. ๋Œ€์‹œ๋ณด๋“œ ์‹คํ–‰
minikube dashboard

๐Ÿ› ๏ธ ๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ ์˜ˆ์‹œ

1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ

  • ์‹ค์ œ ๋ฐฐํฌ ์ „์— ๋ฐฐํฌ YAML์„ ์ ์šฉํ•˜๊ณ  Pod ์ƒํƒœ ํ™•์ธ
  • ConfigMap, Secret ๋“ฑ ๋ฆฌ์†Œ์Šค ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ

2. CI/CD ํŒŒ์ดํ”„๋ผ์ธ ํ…Œ์ŠคํŠธ

  • GitHub Actions์˜ ๋ฐฐํฌ step์„ ๋กœ์ปฌ์—์„œ๋„ ๊ฒ€์ฆ ๊ฐ€๋Šฅ

3. ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง

  • Grafana, Prometheus ๋“ฑ์„ ์—ฐ๋™ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”ํŠธ๋ฆญ ์‹œ๊ฐํ™”

๐Ÿšง ๊ณ ๋ ค์‚ฌํ•ญ

ํ•ญ๋ชฉ์„ค๋ช…
์„ฑ๋Šฅ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์†Œ 8GB RAM ๊ถŒ์žฅ
๋„คํŠธ์›Œํฌ์‹ค์ œ ํด๋ผ์šฐ๋“œ์™€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์„ค์ • ์ฃผ์˜
์ธ์ฆ๋กœ์ปฌ์—์„œ๋Š” ์ธ์ฆ ์ •์ฑ…์ด ๋‹จ์ˆœํ™”๋  ์ˆ˜ ์žˆ์Œ

๐Ÿ” ์‹ค์ „ ํŒ

  • minikube addons enable ingress๋ฅผ ํ™œ์šฉํ•ด Ingress ์ปจํŠธ๋กค๋Ÿฌ๋„ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ
  • minikube tunnel์„ ํ†ตํ•ด ์‹ค์ œ ๋„๋ฉ”์ธ์ฒ˜๋Ÿผ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • kubectl apply -f๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๋ฆฌ์†Œ์Šค ์ ์šฉ์˜ ํ๋ฆ„์„ ์ตํžˆ๊ธฐ ์ข‹์Œ

๐Ÿง  TIL

  • ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ํ‰๋‚ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•™์Šต๊ณผ ์‹ค์Šต์— ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.
  • ํŠนํžˆ ์—ฌ๋Ÿฌ ๋ช…์ด ํ˜‘์—…ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์„ฑ๋Šฅ์  ์ œ์•ฝ์ด ์žˆ๋Š” ๋งŒํผ, ์ž˜ ์ •๋ฆฌ๋œ ํ…Œ์ŠคํŠธ ํ”Œ๋žœ์ด ํ•จ๊ป˜ ํ•„์š”ํ•˜๋‹ค.
profile
๋ฐฐ๊ณ ํ”ˆ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€