ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿ“Œ NestJS + Kubernetes & ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ: ์‹ค์ „ ๊ฐ€์ด๋“œ

3. NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ Kubernetes์— ๋ฐฐํฌํ•˜๊ธฐ


์ด์ œ Docker๋กœ ์ปจํ…Œ์ด๋„ˆํ™”ํ•œ NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์ด ๊ธ€์—์„œ๋Š” ๋กœ์ปฌ Kubernetes ํ™˜๊ฒฝ(Minikube ๋˜๋Š” Kind)์„ ์„ค์ •ํ•˜๊ณ , Deployment, Service, Ingress ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿš€


โœ… 1. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์ค€๋น„ (Minikube ๊ธฐ์ค€)

๐Ÿ“ฆ Minikube ์„ค์น˜

# Mac (Homebrew)
brew install minikube

# ์‹œ์ž‘
minikube start

๐Ÿ“ฆ Docker ์ด๋ฏธ์ง€ Minikube๋กœ ์ „์†ก

# Minikube Docker ํ™˜๊ฒฝ ์„ค์ •
eval $(minikube docker-env)

# Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ (Minikube ๋‚ด์—์„œ ์‚ฌ์šฉ)
docker build -t api-gateway -f docker/Dockerfile.api-gateway .
docker build -t user-service -f docker/Dockerfile.user-service .

โœ… 2. Kubernetes ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์ž‘์„ฑ (Deployment + Service)

๐Ÿ“‚ k8s/api-gateway-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-gateway
spec:
  replicas: 1
  selector:
    matchLabels:
      app: api-gateway
  template:
    metadata:
      labels:
        app: api-gateway
    spec:
      containers:
        - name: api-gateway
          image: api-gateway
          ports:
            - containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: api-gateway
spec:
  selector:
    app: api-gateway
  ports:
    - protocol: TCP
      port: 3000
      targetPort: 3000
  type: ClusterIP

๐Ÿ“‚ k8s/user-service-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: user-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: user-service
  template:
    metadata:
      labels:
        app: user-service
    spec:
      containers:
        - name: user-service
          image: user-service
          ports:
            - containerPort: 3001
---
apiVersion: v1
kind: Service
metadata:
  name: user-service
spec:
  selector:
    app: user-service
  ports:
    - protocol: TCP
      port: 3001
      targetPort: 3001
  type: ClusterIP

โœ… 3. Kubernetes ๋ฆฌ์†Œ์Šค ์ ์šฉ

๋ฐ˜์‘ํ˜•
kubectl apply -f k8s/user-service-deployment.yaml
kubectl apply -f k8s/api-gateway-deployment.yaml

์ƒํƒœ ํ™•์ธ:

kubectl get pods
kubectl get services

โœ… 4. API Gateway ์™ธ๋ถ€ ๋…ธ์ถœ (NodePort or Ingress)

๐Ÿ“‚ k8s/api-gateway-service.yaml (NodePort ๋ฐฉ์‹)

apiVersion: v1
kind: Service
metadata:
  name: api-gateway-external
spec:
  selector:
    app: api-gateway
  ports:
    - protocol: TCP
      port: 3000
      targetPort: 3000
      nodePort: 30080
  type: NodePort
kubectl apply -f k8s/api-gateway-service.yaml
minikube service api-gateway-external

โœ… ๋ธŒ๋ผ์šฐ์ €์—์„œ http://<Minikube_IP>:30080/users ์ ‘์† ์‹œ ์‘๋‹ต ํ™•์ธ ๊ฐ€๋Šฅ


โœ… 5. ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ๊ตฌ์„ฑ

NestJS ๋‚ด๋ถ€ ์„ค์ •์—์„œ user-service๋ผ๋Š” Kubernetes DNS ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๐Ÿ“‚ apps/api-gateway/main.ts ๋˜๋Š” ์„ค์ •ํŒŒ์ผ:

{
  transport: Transport.TCP,
  options: {
    host: 'user-service', // K8s ์„œ๋น„์Šค ์ด๋ฆ„
    port: 3001,
  }
}

โœ… user-service๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด DNS๊ฐ€ ์ž๋™ ๊ตฌ์„ฑ๋˜์–ด ํ†ต์‹  ๊ฐ€๋Šฅ


โœ… 6. ์‹คํ–‰ ๊ฒฐ๊ณผ ํ™•์ธ

curl http://localhost:30080/users

์‘๋‹ต:

[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" }
]

๐ŸŽ‰ ์„ฑ๊ณต์ ์œผ๋กœ Kubernetes ํ™˜๊ฒฝ์—์„œ NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!


โœ… ๊ฒฐ๋ก : NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค Kubernetes ๋ฐฐํฌ ์™„๋ฃŒ

โœ… ๋กœ์ปฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ(Minikube)์—์„œ NestJS ์„œ๋น„์Šค ์‹คํ–‰
โœ… Deployment, Service, NodePort ๋“ฑ ๊ธฐ๋ณธ ๋ฆฌ์†Œ์Šค ์ ์šฉ
โœ… ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์€ Kubernetes DNS๋ฅผ ํ†ตํ•ด ์ž๋™ ์—ฐ๊ฒฐ
โœ… ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Ingress, ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ, Helm์„ ํ†ตํ•œ ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค


๐Ÿ” ๋‹ค์Œ ๊ธ€ ์˜ˆ๊ณ : NestJS Kubernetes Ingress + Helm ๋ฐฐํฌ ์ž๋™ํ™”

๐Ÿ“Œ ๋‹ค์Œ ํŽธ: 4. Ingress & Helm์œผ๋กœ NestJS ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ ์ตœ์ ํ™”ํ•˜๊ธฐ


 

NestJS Kubernetes ๋ฐฐํฌ,NestJS K8s,NestJS ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ,NestJS Minikube,NestJS Docker Kubernetes,NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค K8s,NestJS ์„œ๋น„์Šค ๋ฐฐํฌ,NestJS NodePort,NestJS TCP ํ†ต์‹ ,Kubernetes NestJS ์„œ๋น„์Šค

'study > ๋ฐฑ์—”๋“œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๐Ÿ“Œ NestJS + Kubernetes & ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ: ์‹ค์ „ ๊ฐ€์ด๋“œ - ๋ฉ”์‹œ์ง€ ๊ธฐ๋ฐ˜ NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ†ต์‹  ๊ตฌ์ถ• (Kafka, RabbitMQ, Redis)  (0) 2025.04.04
๐Ÿ“Œ NestJS + Kubernetes & ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ: ์‹ค์ „ ๊ฐ€์ด๋“œ - Ingress & Helm์œผ๋กœ NestJS ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ ์ตœ์ ํ™”ํ•˜๊ธฐ  (0) 2025.04.02
๐Ÿ“Œ NestJS + Kubernetes & ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ: ์‹ค์ „ ๊ฐ€์ด๋“œ - NestJS ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ Docker๋กœ ์ปจํ…Œ์ด๋„ˆํ™”ํ•˜๊ธฐ  (0) 2025.03.31
๐Ÿ“Œ NestJS + Kubernetes & ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ: ์‹ค์ „ ๊ฐ€์ด๋“œ- ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA) ๊ฐœ๋…๊ณผ NestJS ์ ์šฉ  (0) 2025.03.31
๐Ÿ“Œ NestJS ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์ „๊นŒ์ง€ - NestJS์—์„œ AI/ML ์—ฐ๋™ ์‹ค์ „ ๊ฐ€์ด๋“œ  (1) 2025.03.28
โ€ป ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/04   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•