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-pods
type
post
updatedAt
Dec 6, 2025 04:46 AM

✅ 백엔드(Spring Boot) 서버 3개 띄워보기

🧑🏻‍🏫
실제 서비스를 운영하다보면 트래픽이 증가해서 서버가 버벅거리는 경우가 생긴다. 이 때는 서버를 수평적 확장(서버의 개수를 늘리는 방식)을 통해 해결한다. 이런 상황을 가정해 백엔드 서버인 Spring Boot 서버를 3대로 늘려보자.
  1. Spring Boot 프로젝트 셋팅
    1. start.spring.io
      https://start.spring.io/
      notion image
 
  1. 간단한 코드 작성
    1. AppController
      @RestController public class AppController { @GetMapping("/") public String home() { System.out.println("Hello, World!"); // 추후 디버깅용 return "Hello, World!"; } }
       
  1. 프로젝트 실행시켜보기
    1. notion image
      notion image
       
  1. Dockerfile 작성하기
    1. Dockerfile
      FROM openjdk:17-jdk COPY build/libs/*SNAPSHOT.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar"]
       
  1. Spring Boot 프로젝트 빌드하기
    1. $ ./gradlew clean build
       
  1. Dockerfile을 바탕으로 이미지 빌드하기
    1. $ docker build -t spring-server .
       
  1. 이미지가 잘 생성됐는 지 확인하기
    1. $ docker image ls
       
  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
       
  1. 매니페스트 파일을 기반으로 파드(Pod) 생성하기
    1. $ kubectl apply -f spring-pod.yaml
       
  1. 파드(Pod)가 잘 생성됐는 지 확인
    1. $ kubectl get pods
      notion image
       
       
       
3개의 Spring Boot 서버를 띄우는 데 성공했다. 서버가 3개여서 망정이지 만약 100개의 서버를 띄워야 한다면 불편하지 않을까? 그리고 서비스를 운영하다보면 시간, 계절, 이벤트 등에 따라 트래픽은 시시각각 변한다. 그럴 때마다 트래픽에 맞게 서버의 대수를 바꿔야 한다면 아주 불편할 것이다. 이런 불편함을 해결해주는 쿠버네티스의 기능이 디플로이먼트(Deployment)이다. 다음 강의에서 디플로이먼트에 대해 자세히 알아보자.
 
 
author
category
쿠버네티스
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 쿠버네티스 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 04:46 AM
📎
이 글은 비전공자도 이해할 수 있는 쿠버네티스 입문/실전 강의의 수업 자료 중 일부입니다.