JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[예제] 디플로이먼트를 활용해 백엔드(Spring Boot) 서버 3개 띄워보기

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
쿠버네티스
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 쿠버네티스 입문/실전
slug
example-run-3-spring-boot-with-deployment
type
post
updatedAt
Dec 6, 2025 04:46 AM

✅ 디플로이먼트를 활용해 백엔드(Spring Boot) 서버 3개 띄워보기

🧑🏻‍🏫
실제 서비스를 운영하다보면 트래픽이 증가해서 서버가 버벅거리는 경우가 생긴다. 이 때는 서버를 수평적 확장(서버의 개수를 늘리는 방식)을 통해 해결한다. 이런 상황을 가정해 백엔드 서버인 Spring Boot 서버를 3대로 늘려보자.
  1. 매니페스트 파일 수정하기
    1. 기존 매니페스트 파일 (spring-pod.yaml)
      apiVersion: v1 kind: Pod metadata: name: spring-pod-1 spec: containers: - name: spring-container image: spring-server imagePullPolicy: IfNotPresent ports: - containerPort: 8080 --- apiVersion: v1 kind: Pod metadata: name: spring-pod-2 spec: containers: - name: spring-container image: spring-server imagePullPolicy: IfNotPresent ports: - containerPort: 8080 --- apiVersion: v1 kind: Pod metadata: name: spring-pod-3 spec: containers: - name: spring-container image: spring-server imagePullPolicy: IfNotPresent ports: - containerPort: 8080
       
      새로운 매니페스트 파일 (spring-deployment.yaml)
      apiVersion: apps/v1 kind: Deployment # Deployment 기본 정보 metadata: name: spring-deployment # Deployment 이름 # Deployment 세부 정보 spec: replicas: 3 # 생성할 파드의 복제본 개수 selector: matchLabels: app: backend-app # 아래에서 정의한 Pod 중 'app: backend-app'이라는 값을 가진 파드를 선택 # 배포할 Pod 정의 template: metadata: labels: # 레이블 (= 카테고리) app: backend-app spec: containers: - name: spring-container # 컨테이너 이름 image: spring-server # 컨테이너를 생성할 때 사용할 이미지 imagePullPolicy: IfNotPresent # 로컬에서 이미지를 먼저 가져온다. 없으면 레지스트리에서 가져온다. ports: - containerPort: 8080 # 컨테이너에서 사용하는 포트를 명시적으로 표현
 
  1. 기존 파드 삭제하기
    1. $ kubectl delete pod spring-pod-1 spring-pod-2 spring-pod-3 $ kubectl get pods # 잘 삭제됐는 지 확인하기
       
  1. 매니페스트 파일을 기반으로 디플로이먼트(Deployment) 생성하기
    1. $ kubectl apply -f spring-deployment.yaml
       
  1. 디플로이먼트, 레플리카셋, 파드가 잘 생성됐는 지 확인
    1. $ kubectl get deployment $ kubectl get replicaset $ kubectl get pods
      notion image
 
 

✅ 전체 구조

notion image
 
백엔드 서버 3개를 각각의 파드에 띄웠다. 실제 요청을 보낼 때는 각 서버에 균등하게 트래픽이 분배되어야 한다. 그런데 사용자보고 여러 백엔드 서버에 알아서 균등하게 요청을 하라고 시킬 수는 없다. 따라서 파드 앞단에 알아서 여러 파드에 균등하게 요청을 분배해줄 무언가가 필요하다. 쿠버네티스에서는 서비스(Service)가 여러 파드에 균등하게 요청을 분배해주는 역할을 한다. 다음 강의에서 서비스(Service)에 대해 자세히 알아보자.
 
author
category
쿠버네티스
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 쿠버네티스 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 04:46 AM
📎
이 글은 비전공자도 이해할 수 있는 쿠버네티스 입문/실전 강의의 수업 자료 중 일부입니다.