작성
·
345
0
안녕하세요.
해당 강의를 듣고 K8S에 배포를 해보고 있는데,
500에러가 떠서 질문을 드립니다.
docker 강의를 보고 yaml을 작성하여 k8s에 배포하였으며 github 주소는 다음과 같습니다.
https://github.com/giimaeng/test1
혹시 500 에러가 뜬다면 예상되시는 원인이 있을까요??
원인이 예상이 안되니 해결이 안되어, 예상 되는 원인이 몇 가지 있으시다면 말씀해주시면 감사하겠습니다.
답변 1
0
안녕하세요, 이도원입니다.
서버사이드에서 발생되는 오류의 대부분은 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에러가 발생하고요.