Kubernetes의 Tomcat에 Java .war 애플리케이션을 배포하는 데 문제가 있습니다.
두 개의 Tomcat .war 웹앱이 포함된 tomcat:8.5.40-jre8 기반의 Docker 이미지가 있습니다. 하나는 ROOT에 있고 다른 하나는 자체 경로가 있습니다. 이 Docker 이미지를 Mac에서 로컬로 가져와 실행하면 모든 것이 잘 작동합니다. 그러나 이미지를 Microsoft Azure Kubernetes Service에 배포하면 ROOT 웹앱은 404로만 응답합니다. 터미널을 실행 중인 컨테이너에 연결하면 Tomcat이 .war 파일의 압축을 푼 것을 볼 수 있습니다.
Azure Portal을 사용하여 Kubernetes 버전을 업데이트할 때 문제가 시작되었지만 더 낮은 버전으로 두 번째 Azure Kubernetes Service를 만들었을 때 문제가 여전히 존재합니다.
네트워크 문제는 아닌 것 같습니다. Kubernetes에서 실행 중인 이미지에 터미널을 연결하고 localhost를 컬링하면 404가 표시되지만 로컬 컴퓨터에서 동일한 작업을 수행하면 예상한 페이지가 표시됩니다.
동일한 Docker 이미지가 이전에 작동했으며 클러스터는 현재 아무런 문제 없이 거의 동일한 또 다른 서비스를 실행합니다.
Docker 이미지가 내 컴퓨터에서는 작동하지만 AKS에 배포될 때는 작동하지 않을 수 있나요?
어떤 도움이라도 대단히 감사하겠습니다! 감사합니다.
V
답변1
응용 프로그램을 시작하는 동안 ClassNotFoundException이 발생한 것으로 나타났습니다. 이로 인해 Kubernetes 업그레이드 후 애플리케이션을 시작할 수 없습니다.
Tomcat의 localhost 로그에서 발견된 오류를 수정한 후 애플리케이션이 다시 실행됩니다.