이 프로젝트는 k8s로 배포합니다.

프로젝트를 다운받으세요.

https://github.com/yopy0817/k8s-quiz-demo

  1. k8s에 배포할때 postgres와 연결 되어야 합니다.
  2. application-production-microservice.properties 파일의 데이터베이스 주소를 pod와 연결될 수 있도록 채워 넣으세요.
  3. 프로젝트를 빌드합니다.
./gradlew build
  1. 도커파일을 생성하세요.

Dockerfile

FROM adoptopenjdk/openjdk11

LABEL creator=coding404

ARG jarfile=build/libs/k8s-quiz-demo-0.0.1-SNAPSHOT.jar

COPY ${jarfile} /app.jar

CMD ["java", "-jar", "/app.jar"]
  1. 본인의 이미지를 만드세요. (도커 허브에서 이미지를 확인합니다)
docker build -t k8s-demo-quiz:v1 .

docker login

docker tag k8s-demo-quiz:v1 <본인도커계정명>/k8s-quiz-demo:v1

docker push <본인도커계정명>/k8s-quiz-demo:v1
  1. 아래는 yaml파일 입니다 <>채워넣으세요.

quiz.yaml

apiVersion: apps/v1
kind: Deployment 
metadata:
  name: quiz-app # 객체의 "이름"입니다 (Service와 무관)

spec:
  selector: 
    matchLabels: 
      app: quiz-app # 아래에 있는 template.labels.app과 연결되서 파드 관리
  replicas: 1
  template: # 복제할 포드를 템플릿으로 정의함
    metadata:
      labels:
        app: quiz-app # service와 연결됨~~

    spec:
      containers: 
      - name: quiz-app
        image: <본인 이미지>
        env:
        - name: SPRING_PROFILES_ACTIVE
          value: production-microservice

quiz-service.yaml

apiVersion: v1
kind: Service
metadata: 
  name: quiz-app # 프로젝트명칭 이름
spec: 
  selector: 
    app: <여기들어가야할 값은?> # quiz-app 라벨의 어플리케이션을 찾습니다.
  ports:
    - name: http
      port: <여기들어가야할 값은?>
      nodePort: 30090 # 브라우저가 Node로 접근이 가능하게 하기 위해 사용하는 포트 (도커와 반대)
  type:
    <여기들어가야할 값은?>

  1. apply하고, 클라이언트에 접근해 봅니다.