我在 Kubernetes 上的 Tomcat 中部署 Java .war 應用程式時遇到問題。
我有一個基於 tomcat:8.5.40-jre8 的 Docker 映像,其中包含兩個 Tomcat .war webapps,一個位於 ROOT,另一個具有自己的路徑。當我在 Mac 上本地拉取並運行此 Docker 映像時,一切正常。但是,當我將映像部署到 Microsoft Azure Kubernetes 服務時,ROOT Web 應用程式只會回應 404。
當我使用 Azure 入口網站更新 Kubernetes 版本時,問題就開始出現,但當我使用較低版本建立第二個 Azure Kubernetes 服務時,問題仍然存在。
看來不是網路問題。當我將終端連接到 Kubernetes 上正在運行的映像並curl localhost 時,我得到 404,但是當我在本機上執行相同操作時,我得到了我期望的頁面。
相同的 Docker 映像以前可以運行,並且叢集現在運行另一個幾乎相同的服務,沒有任何問題。
Docker 映像如何在我的電腦上執行,但部署到 AKS 時卻無法運作?
任何幫助將不勝感激!親切的問候,
V
答案1
事實證明,應用程式在啟動期間出現了 ClassNotFoundException。這導致應用程式在 Kubernetes 升級後無法啟動。
修復錯誤後,在 tomcat 的 localhost 日誌中發現該錯誤,應用程式再次運行。