2017-07-25 113 views
-1

最近開始在Docker和kubernetes上工作。 我遇到了一個我實際上並沒有完全理解的問題。Docker鏡像沒有部署(保持終止)在本地kubernetes

事情是當我執行我的svc.yaml(服務)和rc.yaml(複製控制器)豆莢創建,但其狀態終止。

我試圖通過使用命令

docker ps -a

954c3ee817f9本地主機檢查失敗的可能原因是: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:找不到

什麼是可能的原因我得到這些錯誤。

泊塢文件:

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 {默認調度}正常計劃成功
分配HelloService的-522qw到ssantosh.centos7 17S 17S 1 {kubelet ssantosh.centos7 } spec.containers {HelloService}正常創建創建 容器與碼頭ID b550557f4c17;安全性:[=的Seccomp不受限制]
17S 17S 1 {kubelet
ssantosh.centos7} spec.containers {HelloService的}正常啓動開始 與搬運工ID容器b550557f4c17 18S 16S 2 {kubelet
ssantosh.centos7} spec.containers { HelloService的}正常拉動拉 圖像 「本地主機:5000/HelloService的」 18S 16S 2 {kubelet
ssantosh.centos7} spec.containers {HelloService中}普通成功拉 被拉圖像 「本地主機:5000/HelloService的」 15秒15秒1 {kubelet
ssantosh.centos7} spec.containers {HelloService} Normal Created Created 容器與碼頭標識d30b10211b1b;安全:[seccomp = unconfined]
14s 14s 1 {kubelet
ssantosh.centos7} spec。集裝箱{} HelloService的正常啓動開始 與搬運工人ID d30b10211b1b 12S 11S容器2 {kubelet
ssantosh.centos7} {spec.containers} HelloService的警告退避的退避 重啓失敗搬運工容器12S 11S 2 {kubelet
ssantosh.centos7 }警告FailedSync錯誤同步莢,跳過: 未能 「StartContainer」 爲 「HelloService的」 與CrashLoopBackOff:
「退避10S重新起動失敗容器= HelloService的
莢= HelloService的-522qw_default(1e951b45-7116-11e7-9b96- 080027f96241)「

+0

總是好的局部先在某種形式測試圖像。 – Grimmy

回答

0

問題是沒有Java作爲高山形象的一部分。

所以修改了

FROM alpine:3.2 

FROM anapsix/alpine-java 
0

你需要在機器上的jdk還需要更新Dockerfile,取出。 startService.sh命令的前面。像下面一樣

ENTRYPOINT /startService.sh 

這將修復此錯誤消息。

/bin/sh的:./startService.sh:找不到

+0

這沒有幫助。我結束了使用CMD和java命令來啓動服務。 –