inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 쿠버네티스 입문/실전

[예제] 백엔드(Spring Boot) 서버와 MySQL 연동하기

pod는 정상적인데 페이지가 안나와요

127

박승환

작성한 질문수 1

0

image.pngimage.png

pod, service, deployment 정상적으로 실행되는데 페이지가 작동하지 않는다고 나옵니다 Hello,World 가 나와야하는데 무엇이 문제일까요

docker kubernetes msa infrastructure container

답변 1

0

JSCODE 박재성

안녕하세요 승환님! 잘 질문 주셨습니다:)

작성하신 모든 yaml 파일 전부 복사 붙여넣기 해서

보여주실 수 있으실까요~??

 

그리고 kubectl get service 라는 명령어 입력 후

출력되는 결과 값들도 같이 캡쳐해서 보내주시기 바랍니다!

 

같이 확인 도와드릴게요~!!

0

박승환

image.png

 

 

스프링부트 service

apiVersion: v1
kind: Service

metadata:
  name: test-service

spec:
  type: NodePort
  selector:
    app: backend-app
  ports:
    - port: 8080
      nodePort: 30000
      targetPort: 8080
      protocol: TCP

 

스프링부트 deployment

apiVersion: apps/v1
kind: Deployment

metadata:
  name: test-deployment

spec:
  replicas: 3
  selector:
    matchLabels:
      app: test-app

  template:
    metadata:
      labels:
        app: test-app

    spec:
      containers:
        - name: test-container
          image: test-server
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080
          env:
            - name: DB_HOST
              value: mysql-service
            - name: DB_PORT
              value: "3306"
            - name: DB_NAME
              value: kub-practice
            - name: DB_USERNAME
              value: root
            - name: DB_PASSWORD
              value: password123

 

mysql deployment

apiVersion: apps/v1
kind: Deployment

metadata:
  name: mysql-deployment

spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql-db

  template:
    metadata:
      labels:
        app: mysql-db
    spec:
      containers:
        - name: mysql-container
          image: mysql
          ports:
            - containerPort: 3306
          env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: mysql-root-password
                  name: mysql-secret
            - name: MYSQL_DATABASE
              valueFrom:
                configMapKeyRef:
                  key: mysql-database
                  name: mysql-config
          volumeMounts:
            - name: mysql-persistent-storage
              mountPath: /var/lib/mysql
      volumes:
        - name: mysql-persistent-storage
          persistentVolumeClaim:
            claimName: mysql-pvc

 

mysql service

apiVersion: v1
kind: Service

metadata:
  name: mysql-service

spec:
  type: NodePort
  selector:
    app: mysql-db
  ports:
    - port: 3306
      protocol: TCP
      nodePort: 30003
      targetPort: 3306

 

mysql pv

apiVersion: v1
kind: PersistentVolume

metadata:
  name: mysql-pv

spec:
  storageClassName: my-storage
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

 

mysql pvc

apiVersion: v1
kind: PersistentVolumeClaim

metadata:
  name: mysql-pvc

spec:
  storageClassName: my-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

 

mysql configmap

apiVersion: v1
kind: ConfigMap

metadata:
  name: mysql-config

data:
  mysql-database: kub-practice

 

mysql secret

apiVersion: v1
kind: Secret

metadata:
  name: mysql-secret

stringData:
  mysql-root-password: password123

0

JSCODE 박재성

답변해주셔서 감사합니다!

 

작성해주신 yaml을 보니 스프링부트 deployment의 yaml에서 selector 부분이
잘못 작성되어 있습니다!

 

스프링부트 Service에서는 spec.selector.app의 값이
backend-app으로 설정되어 있으나
스프링부트 deployment에서는 backend-app이 아닌
test-app으로 설정되어 있습니다.
정상적으로 작동하려면 Service에서의 값과
deployment에서의 값을 일치시켜주어야 합니다!

 

위 내용을 반영해보신 뒤에 또 에러가 발생하시면

Spring Boot가 실행되는 Pod의 로그도 같이 캡쳐하신 뒤에

다시 한 번 질문 남겨주세요:D

실습을 가상환경에서 해도 따라하는데 지장이 없나요?

0

57

2

쿠버네티스 학습

0

57

1

Docker Desktop 설치 관련 질문드립니다!

0

74

2

섹션 3 (14강) 04:52 분경 yaml 파일 작성에 대한 질문드립니다.

0

90

2

쿠버네티스 다음 강의

0

79

2

html 적용이 되지 않음

0

70

1

ERROR [internal] load metadata for docker.io/library/openjdk:17-jdk

0

136

2

이미지가 없다고 에러가 계속 떠요

0

87

2

Deployment-service 연결 과정에서 오류..?

0

72

2

Secret이 외부 노출을 어떤 식으로 피할 수 있게 하는지

0

73

2

Secret을 활용한 환경변수 분리 강의자료 문의

0

70

2

도커 쿠버네티스 기다림 오류 문제..

0

138

2

쿠버네티스 고급편은 언제 나오나요?

0

90

1

질문있습니다.

0

72

2

pdf 자료에 섹션3 누락

0

73

3

pvc CrashLoopBackOff 문제

0

134

6

AMI 유형

0

67

2

마스터 노드 vs 워커 노드

0

122

2

aws eks --region ap-northeast-2 update-kubeconfig --name kube-practice 권한 거부

0

118

2

30000 Port로 접속이 안됩니다 ㅠㅠ

0

149

3

안녕하세요. 실습 환경 질문드립니다.

0

81

1

50강 빌드파일

0

65

2

빌드(jar 패키징) 오류 공유

0

77

2

Secret 질문

0

115

3