错误:无法访问jarfile(Kubernetes)

时间:2020-10-07 13:32:51

标签: java spring-boot docker kubernetes

kubectl get pods -n abc
NAME                       READY         STATUS      RESTARTS   AGE
abc-v2-78b59ccc4f-85xgr   0/1     CrashLoopBackOff   27         129m

面对以下错误:

> ➜  ~ kubectl logs -f abc-v2-78b59ccc4f-85xgr -n 
Error: Unable to access jarfile abc.jar

我假设不存在jar或缺少所需的访问权限。 请在这里指导我,如何进行。

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

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

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

1 个答案:

答案 0 :(得分:2)

Kubernetes是一个容器协调器。它将您的图像作为容器运行。您显示的错误看起来像是应用程序错误,而不是Kubernetes错误。我要解决的方法是:

  1. 检查您的应用程序调用的jar文件是否在图像中。您可以在本地执行此操作,方法是运行映像并执行,以查看应用程序运行的jar文件是否在那里。
docker run -it <image> /bin/bash

或者您可以通过Kubernetes执行类似的命令以执行到您的pod中:

kubectl run -i --tty testjavacontainer --image=<image> -- /bin/bash
  1. 如果存在,那么我将确认其路径并确保我的java命令正确引用了该路径。如果不存在,那么我将调整Dockerfile以确保它位于我的Java命令期望的路径中。

简而言之,我将其称为standard java error,因为它恰好在容器中运行。