디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기

2025. 3. 6. 20:47·쿠버네티스/cka
  1. 기존에 띄워놓은 네임스페이스 (pod, deployment, service ...) 삭제하기
    1. kubectl delete all --all : 기존의 모든 네임스페이스를 삭제한다.
  2. 디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기
    1. 요구사항
      • 디플로이먼트 : Pod 를 4개 띄운다
      • 서비스 : localhost:31000 에서도 통신할 수 있도록 한다.
    2. 프로젝트 실행시켜보기
      • npm 설치하기 : npm i
      • npm 실행하기 : npm run start
      • 접속하기
    3. 디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄우기
      1. Dockerfile 생성하기
        FROM node
        WORKDIR /app
        COPY . .
        RUN npm install
        RUN npm run build
        EXPOSE 3000
        
        ENTRYPOINT [ "node", "dist/main.js" ]
         
        • 이미지로 활용하기 위해 도커파일을 생성한다.
      2. .dockerignore 생성하기
        node_modules
         
        • Docker 빌드 시 포함하지 않을 파일 및 디렉터리를 지정하는 파일
      3. docker image 생성하기
      4. nest-Deployment .yaml 파일 생성하기
        apiVersion : apps/v1
        kind : Deployment
        
        metadata:
          name: nest-deployment
        
        spec:
          replicas : 4
          selector :
            matchLabels:
              app: backend-app
        
          # 배포할 pod의 정보를 작성한다.
          template:
            metadata:
              labels:
                app: backend-app
            # pod 의 스펙을 정의한다.
            spec:
              containers:
              - name : nest-container
                image: nest-server:1.0
                imagePullPolicy: IfNotPresent
                ports:
                  - containerPort: 3000
         
      5. nest-service.yaml 파일 생성하기 
      6.  
      7. apiVersion: v1 kind: service metadata: name: nest-service spec: # 외부에서 접속을 할수 있도록 만들어주는 타입 type : Nodeport selector : app: backend-app ports: # 외부에서 사용자가 접근하게 되는 포트번호와 프로토콜을 의미한다. - protocol: TCP Nodeport: 31000 # 쿠버네티스 내부에서 외부로 접속하기 위한 포트 번호. port : 3000 targetPort: 3000
      8. deployment & service 생성하기
        • deployment 생성하기
        • service 생성하기
          • localhost 31000 포트로 외부 사용자가 접근 시, pod 의 3000 번 포트와 연결한다.
  3. 업데이트 진행하기
    1. src/app.service.ts 내용 수정하기
      • return hello world'; → return 'Rusharp\'s server';
    2. nest-deployment.yaml 파일 수정하기
      • spec/template/spec/containers/image 를 `nest-server:1.1` 로 변경
    3. docker image build (1.1 버전으로)
    4. deployement 파일을 어플라이로 실행시키기
    5. localhost:31000 으로 접속하기

'쿠버네티스 > cka' 카테고리의 다른 글

Pod, deployment, service 개념 정리  (0) 2025.03.06
Deployement, service를 활용하여 서버 띄워보기 명령어 정리!  (0) 2025.03.06
VS code 에서 새로운 버전의 서버로 업데이트 시키기  (0) 2025.03.05
서버가 죽었을 때 자동으로 복구하는 기능 (Self-Healing)  (0) 2025.03.04
디플로이먼트를 활용한 서버 개수 조절 방법  (0) 2025.03.03
'쿠버네티스/cka' 카테고리의 다른 글
  • Pod, deployment, service 개념 정리
  • Deployement, service를 활용하여 서버 띄워보기 명령어 정리!
  • VS code 에서 새로운 버전의 서버로 업데이트 시키기
  • 서버가 죽었을 때 자동으로 복구하는 기능 (Self-Healing)
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (170)
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • Server&load (32)
        • AWS (27)
        • load test (5)
        • CI CD (0)
        • Jmeter (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스터디
    e2c
    LOSTARK
    .cpu
    qa
    공존성테스트
    vi에디터
    로스트아크api
    사드웨어리소스
    application log
    포스트맨
    python
    쿠버네티스
    개발자에서아키텍트로
    postman
    테스트 결과보고서
    도커
    k8s
    로스트아크
    테스트스크립트
    linux
    cka
    테스트 계획서 만들어보기
    QAKOREA
    앱공존성
    API
    리눅스
    애플리케이션로그
    테스트 계획서
    네트워크 테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기
상단으로

티스토리툴바