상세 컨텐츠

본문 제목

스프링부트2 프로젝트를 스프링부트3로 마이그레이션_3/3

JSP·자바·코틀린

by 김일국 2024. 1. 31. 11:38

본문

### 스프링부트와 클라우드활용 강의용 깃 소스를 스프링부트2 프로젝트를 스프링부트3로 마이그레이션

- 이전 포스트 https://kimilguk.tistory.com/862 에 이어서 계속 작업 합니다.

- 기존 스프링부트2 프로젝트(v2.6.3) 소스 : https://github.com/kimilguk/kimilguk-boot2

- 마이그레이션 스프링부트3 프로젝트(v3.2.1) 소스 : https://github.com/kimilguk/kimilguk-boot3

지금까지 작업한 결과화면(K-PaaS 컨테이너 플랫폼에서 DB회원으로 로그인 후 새글을 등록한 화면-아래)

http://playpark-cp.k-paas.org:30180/

---------------------------------------------------------------------------------------------------------------------------------------------------

- 참고로, 이전 포스트 https://kimilguk.tistory.com/858 에서 K-PaaS 컨테이너 플랫폼 클라우드에 노드js앱을 배포한 결과와 비교해 본다.

 노드js앱 : http://playpark-cp.k-paas.org:30080/board/boardList  

 스프링부트3앱 : http://playpark-cp.k-paas.org:30180  

 

10_#K-PaaS 컨테이너 플랫폼 클라우드에 배포하는 명령어 순서(아래)

1) 도커 이미지 만들기 : docker build . -t kimilguk/kimilguk-boot3
2) 위 이미지 PC에서 실행해 보기 : docker run -d -p 80:8080 kimilguk/kimilguk-boot3 (확인: http://localhost:80 )
3) 도커로그인 : docker login
4) 도커허브에 위 이미지 업로드 : docker push kimilguk/kimilguk-boot3
5) 현재 쿠버네티스 K-PaaS설정 확인 : kubectl config view
6) 현재 쿠버네티스에 운영 중인 컨테이너 확인 : kubectl get all
7) 도커이미지를 K-PaaS 컨테이너 플랫폼에 배포 : kubectl apply -f deployments.yaml
- 참고로, 작업취소 명령은 아래와 같다.
현재 K-PaaS에 배포된 컨테이너 삭제 : kubectl delete -f deployments.yaml
kubectl get all

# 위 작업 순서중 해당 되는 이미지 확인(아래)

1) 도커이미지를 만들기 전 이클립스에서 bootJar 실행파일 만들기(아래)

- bootJar 생성 전 현재 postgreSQL DB사용과 네이버API로그인인증을 보안때문에 h2DB와 paas용으로 변경 db-h2,oauth-paas(아래)

#h2 DB사용시 외부프로필포함 파일명: application(prefix접두사생략)-db-h2
#spring.profiles.include=db-h2
#h2 DB사용시 import_h2db_only.sql의 파일명을 import.sql로 변경하면 초기 Data가 입력된다.
#spring.profiles.include=db-postgres,oauth-local
#위 OAuth 로컬PC용 설정포함 파일명: application(prefix접두사생략)
#위 oauth-local.properties(suffix접미사생략)
spring.profiles.include=db-h2,oauth-paas

- 도커 파일 Dockerfile 만들기에서 위 에서 생성한 bootJar 파일을 사용한다.(아래)

FROM openjdk:17-jdk
ARG JAR_FILE=build/libs/kimilguk-boot3.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

2) PC에서 도커 이미지 실행 및 스프링부트3 앱 로그 확인(아래)
- 도커 데스크탑 관련설명은 이전 포스트 참조 https://kimilguk.tistory.com/855 

3) 도커허브에 위 이미지 업로드(아래)

4) 도커허브에 위 이미지 업로드 결과(아래)

5) 현재 작업PC에서 쿠버네티스 설정 확인(아래)

5) K-PaaS 컨테이너 플랫폼에 배포에 사용된 deployments.yaml 파일 확인.

- 도커허브의 이미지가 public이라 예전 노드js앱 이미지(private)처럼 imagePullSecrets: 속성이 필요없다.(아래)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kimilguk-boot3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kimilguk-boot3
  template:
    metadata:
      labels:
        app: kimilguk-boot3
    spec:
      containers:
        - name: kimilguk-boot3
          image: kimilguk/kimilguk-boot3
          imagePullPolicy: Always
          ports:
            - name: kimilguk-boot3
              hostPort: 8080
              containerPort: 80
              protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: kimilguk-boot3
spec:
  type: NodePort
  ports:
    - name: nodejsboard
      port: 80
      nodePort: 30180
      targetPort: 8080
      protocol: TCP
  selector:
    app: kimilguk-boot3

6) K-PaaS 컨테이너 플랫폼에 배포 및 현재 쿠버네티스로 운영중인 컨테이너 확인(아래)

관련글 더보기

댓글 영역