Helm 설치 및 NestJS 앱 배포 정리

ddoachi·2025년 6월 8일

TekaPicker

목록 보기
23/30

1. Helm 설치

우분투 환경 기준, Helm CLI 설치 절차는 다음과 같음.

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

설치 확인:

helm version

2. Helm Chart 생성

NestJS api-gateway용 Helm Chart 생성:

cd teka-picker-be
mkdir -p helm
cd helm
helm create api-gateway

3. values.yaml 수정

helm/api-gateway/values.yaml 파일에서 다음 항목 구성:

replicaCount: 1

image:
  repository: my-registry.local:5000/tekapicker/api-gateway
  tag: latest
  pullPolicy: IfNotPresent

service:
  type: NodePort
  port: 31000

ingress:
  enabled: false

resources: {}

nodeSelector: {}
tolerations: []
affinity: []

serviceAccount:
  create: false
  annotations: {}
  name: ""

autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80

4. Helm 템플릿 수정

deployment.yaml 파일에서 .Values.image.repository.Values.service.port 사용하여 동적 설정 구성.

중괄호가 {{{ { 등으로 변환되지 않도록 .prettierignore에 다음 항목 추가:

helm/**/*.yaml
helm/**/*.yml

5. 기존 서비스 중지

기존 수동 배포된 api-gateway가 NodePort를 점유하고 있을 경우 중지 필요.

kubectl delete svc api-gateway -n tekapicker-dev
kubectl delete deployment api-gateway -n tekapicker-dev

또는 docker stop [컨테이너 ID] 등으로 중지.

6. Helm 배포 실행

helm install api-gateway ./helm/api-gateway -n tekapicker-dev

업데이트 시:

helm upgrade api-gateway ./helm/api-gateway -n tekapicker-dev

7. 배포 확인

kubectl get pods -n tekapicker-dev
kubectl logs -f [pod-name] -n tekapicker-dev

서비스 접속 URL 확인:

export NODE_PORT=$(kubectl get --namespace tekapicker-dev -o jsonpath="{.spec.ports[0].nodePort}" services api-gateway)
export NODE_IP=$(kubectl get nodes --namespace tekapicker-dev -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT

이 URL을 통해 NestJS API 또는 Swagger 문서 접속 가능.

profile
내일도 풀스택

0개의 댓글