Java 错误:无法访问jarfile(Kubernetes)

Java 错误:无法访问jarfile(Kubernetes),java,spring-boot,docker,kubernetes,Java,Spring Boot,Docker,Kubernetes,面对以下错误: kubectl get pods -n abc NAME READY STATUS RESTARTS AGE abc-v2-78b59ccc4f-85xgr 0/1 CrashLoopBackOff 27 129m 我假设要么jar不存在,要么缺少必需的访问权限。 请在这里指导我,如何进行 编辑1:正如@howard roark所建议的,Jar在容器中可用,得到相同的错误消

面对以下错误:

kubectl get pods -n abc
NAME                       READY         STATUS      RESTARTS   AGE
abc-v2-78b59ccc4f-85xgr   0/1     CrashLoopBackOff   27         129m
我假设要么jar不存在,要么缺少必需的访问权限。 请在这里指导我,如何进行

编辑1:正如@howard roark所建议的,Jar在容器中可用,得到相同的错误消息

编辑2:现在用java命令中的.jar检查结果


编辑4:理想情况下,应该只有一个实例处于运行状态。

Kubernetes是一个容器编排器。它将图像作为容器运行。您显示的错误看起来像是应用程序错误,而不是Kubernetes错误。我的做法是:

  • 检查应用程序调用的jar文件是否在映像中。您可以在本地运行映像并执行,以查看应用程序运行的jar文件是否存在
  • docker运行-it/bin/bash
    
    或者,您也可以通过Kubernetes执行类似的命令,将其执行到pod中:

    docker run -it <image> /bin/bash
    
    kubectl run-i--tty testjavacontainer--image=-/bin/bash
    
  • 如果它在那里,那么我将确认它的路径,并确保我的java命令正确地引用了该路径。如果它不在那里,那么我将调整Dockerfile以确保它位于java命令所期望的路径

  • 简言之,我将把它作为一个容器来处理,其细微差别在于它恰好在一个容器中运行。

    Kubernetes是一个容器编排器。它将图像作为容器运行。您显示的错误看起来像是应用程序错误,而不是Kubernetes错误。我的做法是:

  • 检查应用程序调用的jar文件是否在映像中。您可以在本地运行映像并执行,以查看应用程序运行的jar文件是否存在
  • docker运行-it/bin/bash
    
    或者,您也可以通过Kubernetes执行类似的命令,将其执行到pod中:

    docker run -it <image> /bin/bash
    
    kubectl run-i--tty testjavacontainer--image=-/bin/bash
    
  • 如果它在那里,那么我将确认它的路径,并确保我的java命令正确地引用了该路径。如果它不在那里,那么我将调整Dockerfile以确保它位于java命令所期望的路径

  • 简言之,我将把它作为一个容器来处理,其细微差别是它恰好在一个容器中运行。

    正如您所建议的,我可以在容器中找到这个罐子。但是得到相同的错误消息。查看问题中的编辑1以了解详细信息。从过去3天以来,我一直在关注此问题:-(在您的命令中,最后似乎没有包含.jar——看起来您包含了除.jar之外的所有内容,还是我误读了它?java-jar-Dspring.profiles.active=dev target/orbis-microservice-0.0.1-SNAPSHOT.jar——server.port=80——spring.profiles.active=dev这是我在dockerfile中的jar路径。好吧,我认为这越来越像是一个错误。)一般故障排除问题——我认为您所问的初始错误应该得到解决——我看不到orbis-microservice.jar,它看起来有一个完全不同的名称。无论如何,希望您现在对如何解决这些问题有更好的认识正如您所建议的,我可以在容器中找到这个jar。但是e相同的错误消息。有关详细信息,请查看问题中的编辑1。从过去3天以来,我一直无法解决此问题:-(在您的命令中,最后似乎没有包含.jar——看起来您包含了除.jar之外的所有内容,还是我误读了它?java-jar-Dspring.profiles.active=dev target/orbis-microservice-0.0.1-SNAPSHOT.jar——server.port=80——spring.profiles.active=dev这是我在dockerfile中的jar路径。好吧,我认为这越来越像是一个错误。)一般故障排除问题——我认为您所问的最初错误应该得到解决——我看不到orbis-microservice.jar,它看起来有一个完全不同的名称。无论如何,希望您现在对如何解决这些问题有更好的认识
    kubectl run -i --tty testjavacontainer --image=<image> -- /bin/bash