FROM ubuntu
MAINTAINER user@gmail.com
RUN apt-get update
RUN apt-get install -y openjdk-8-jdk
ADD build/libs/micro-service-gradle-0.0.1-SNAPSHOT.jar /var/local/
ENTRYPOINT exec java $JAVA_OPTS \
-jar /var/local/micro-service-gradle-0.0.1-SNAPSHOT.jar
EXPOSE 8080
apiVersion: apps/v1
kind: Deployment
metadata:
name: micro-service-gradle
labels:
app: micro-service-gradle
spec:
replicas: 1
selector:
matchLabels:
app: micro-service-gradle
template:
metadata:
labels:
app: micro-service-gradle
spec:
containers:
- name: micro-service-gradle
image: micro-service-gradle:latest
ports:
- containerPort: 8080
在Kubernetes中部署spring boot应用程序。尚未创建Pod。当我检查kubectl得到豆荚。它说CrashLoopBackOff。
NAME READY STATUS RESTARTS AGE
micro-service-gradle-fc97c97b-8hwhg 0/1 CrashLoopBackOff 6 6m23s
我试图检查同一容器的日志。日志为空
kubectl logs -p micro-service-gradle-fc97c97b-8hwhg
我使用docker run手动创建了容器。图片中没有问题,容器正常工作。
如何验证日志以了解Pod为何处于崩溃状态。
答案 0 :(得分:2)
您需要使用
kubectl describe pod micro-service-gradle-fc97c97b-8hwhg
获取相关日志。这应该可以指导您解决问题。
答案 1 :(得分:0)
您的部署资源看起来不错。由于您可以使用手动创建容器,因此与映像存储库的连接存在问题。设置impage pull secret,您应该能够创建pod
答案 2 :(得分:0)
我遇到了类似的问题。只需验证您的容器是否能够连续运行即可。您必须在前台运行该进程以保持容器运行。
答案 3 :(得分:0)
我遇到了同样的问题,但是使用它对我有用:
image: Image:latest
command: [ "sleep" ]
args: [ "infinity" ]
答案 4 :(得分:0)
我遇到了类似的问题。当我运行
kubectl describe pod <podname>
并读取事件,尽管图像已被拉出,但输出的消息是“重新启动失败的容器” 吊舱很激动,因为它没有执行任何任务。为了使其保持运行,我根据docs
中的类似示例添加了sleep命令 command: ['sh', '-c', 'echo The app is running! && sleep 3600']
这个SO答案还提到运行无限也可以解决问题 https://stackoverflow.com/a/55610769/7128032
答案 5 :(得分:0)
这种错误的可能原因是:
您可以通过检查事件来查看正在发生的事情:
kubectl get events
或检查广告连播状态:
kubectl describe po mypod-390jo50wn3-sp40r
此处有完整说明:https://pillsfromtheweb.blogspot.com/2020/05/troubleshooting-kubernetes.html