最近开始使用Docker和kubernetes。 我遇到了一个我完全不了解的问题。
事情就是当我执行我的svc.yaml(服务)并且rc.yaml(复制控制器)pod被创建但其状态被终止时。
我尝试使用命令
检查可能的失败原因 docker ps -a
954c3ee817f9 localhost:5000 / HelloService
" / bin / sh -c ./startSe" 2分钟前退出(127)2分钟 前
k8s_HelloService.523e3b04_HelloService-64789_default_40e92b63-707a-11e7-9b96-080027f96241_195f2fee
然后尝试跑步
的 docker run -i -t localhost:5000/HelloService
/ bin / sh:./ startService.sh:not found
我收到这些错误的可能原因是什么。
Docker文件:
FROM alpine:3.2
VOLUME /tmp
ADD HelloService-0.0.1-SNAPSHOT.jar app.jar
VOLUME /etc
ADD /etc/ /etc/
ADD startService.sh /startService.sh
RUN chmod 700 /startService.sh
ENTRYPOINT ./startService.sh
startService.sh
#!/bin/sh
touch /app.jar
java -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx256m -jar /app.jar
此外,我想知道是否有任何特定方式可以从kubernetes访问已终止播客的日志?
更新: 在命令下运行
kubectl describe pods HelloService-522qw
24s 24s 1 {default-scheduler}正常预定成功
将HelloService-522qw分配给ssantosh.centos7 17s 17s 1 {kubelet ssantosh.centos7} spec.containers {HelloService} Normal Created Created 容器与docker id b550557f4c17;安全性:[=的Seccomp潜水]
17s 17s 1 {kubelet
ssantosh.centos7} spec.containers {HelloService}正常开始启动 容器与docker id b550557f4c17 18s 16s 2 {kubelet
ssantosh.centos7} spec.containers {HelloService}正常拉动 image" localhost:5000 / HelloService" 18s 16s 2 {kubelet
ssantosh.centos7} spec.containers {HelloService}正常拉成功 pull image" localhost:5000 / HelloService" 15s 15s 1 {kubelet
ssantosh.centos7} spec.containers {HelloService} Normal Created Created 容器与docker id d30b10211b1b;安全性:[=的Seccomp潜水]
14s 14s 1 {kubelet
ssantosh.centos7} spec.containers {HelloService}正常开始启动 容器与docker id d30b10211b1b 12s 11s 2 {kubelet
ssantosh.centos7} spec.containers {HelloService}警告BackOff Back-off 重新启动失败的泊坞容器12s 11s 2 {kubelet
ssantosh.centos7}警告FailedSync错误同步pod,跳过: 未能" StartContainer" for" HelloService"与CrashLoopBackOff:
" Back-off 10s重启失败的容器= HelloService
荚= HelloService的-522qw_default(1e951b45-7116-11e7-9b96-080027f96241)"
答案 0 :(得分:0)
问题是没有java作为高山图像的一部分。
所以修改了
FROM alpine:3.2
到
FROM anapsix/alpine-java
答案 1 :(得分:0)
你需要在机器上使用jdk还需要更新Dockerfile,删除。 infront of startService.sh命令。如下所示
ENTRYPOINT /startService.sh
这将修复此错误消息。
/ bin / sh:./ startService.sh:not found