강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

김영진님의 프로필 이미지
김영진

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

K8S에 배포

작성

·

345

0

안녕하세요.

해당 강의를 듣고 K8S에 배포를 해보고 있는데,

500에러가 떠서 질문을 드립니다.

 

docker 강의를 보고 yaml을 작성하여 k8s에 배포하였으며 github 주소는 다음과 같습니다.

https://github.com/giimaeng/test1

 

1111111.png

혹시 500 에러가 뜬다면 예상되시는 원인이 있을까요??

원인이 예상이 안되니 해결이 안되어, 예상 되는 원인이 몇 가지 있으시다면 말씀해주시면 감사하겠습니다.

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

서버사이드에서 발생되는 오류의 대부분은 500 상태코드로 전달됩니다. 말씀하신 내용으로 원인을 찾기는 어렵지만, /customer-svc/customers 를 GET으로 요청했을 때 500에러가 발생하신 거라면, Controller, Service, JPA(DB 관련) 모두를 확인해 보셔야 할 것 같습니다. Local에서 각각의 서비시를 직접 기동했을 때나 Docker로 기동하였을 때는 문제가 발생하지 않고, K8s로 전환하였을 때만 문제가 발생하신 상황이라면 K8s에 구축된 Service, Pod가 정상작동인지 확인하시고, 마이크로서비스간의 통신에 문제가 없는지 확인해 보셔야 할 것 같습니다. 각각의 마이크로서비스가 하나의 Pod에 올라가 있다면 문제 해결이 간단할 것 같은데, 여러 Pod에 걸쳐 기동된 상황이라면 해당 Pod들 간에 통신상에 문제가 없는지 확인하시는게 필요할 것 같습니다. 만약 Local이나 Docker에 정상작동인지 확인해 보지 않으셨다면, 그 부분부터 확인해 보시는게 필요할 것 같습니다.

감사합니다.

김영진님의 프로필 이미지
김영진
질문자

우선 local과 docker에서는 정상 작동하는 것을 확인했습니다.

 

혹시 apigateway에 - Path=/customer-svc/customers

이런식으로 경로가 설정되어 있다면 각 각의 서비스들이 다른 pod에 배포되어 있을 경우

정상적으로 경로를 찾아 갈 수 있는 건가요??

각 pod 들에는 ClusterIP로 서비스를 연결해 준 상태입니다.

 

자세히 말하자면

강의에서 docker 배포 목적으로 spring cloud apigateway를 이미지로 만들었던 것을

yaml을 이용하여 쿠버네티스(192.168.1.10)에 배포하였고 이를 nodeport(30502)로 노출 시켰습니다.

그리고 각 각의 서비스들도 마찬가지로 yaml로 배포하였고

ClusterIp로 노출시켜놨습니다.

이렇게 되면 192.168.1.10:30502/customer-svc/customers로 계정 생성 서비스(POST)가 정상적으로 동작하나요??

단지 apigateway를 이미지 형태로 배포한 것으로 독립된 pod에 있는 customer-svc를 찾아가는 것이 안 되는 건가요..?

그렇기 때문에 500에러가 발생하고요.

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

같은 질문은 올려주신거 같아서, 아래 글 링크를 첨부합니다. 해결책까지는 아니지만, 의견을 남겨 드렸습니다. 감사합니다.

https://www.inflearn.com/questions/675520

김영진님의 프로필 이미지
김영진

작성한 질문수

질문하기