2016-01-22 218 views
1

有兩種狀態碼的一次性吊艙,從API或命令運行:爲什麼pods返回Error或ExitCode:0即使它們成功運行?

kubectl run --restart=Never --image test:v0.1 ...

pod生成輸出文件到NFS服務器,並且我已經成功獲取文件。

kubectl get pods -ao wide

NAME  READY  STATUS  RESTARTS AGE  
test-90 0/1  ExitCode:0 0   23m  192.168.1.43 
test-91 0/1  ExitCode:0 0   23m  192.168.1.43 
test-92 0/1  ExitCode:0 0   23m  192.168.1.43 
test-93 0/1  ExitCode:0 0   23m  192.168.1.43 
test-94 0/1  Error  0   23m  192.168.1.46 
test-95 0/1  Error  0   23m  192.168.1.46 
test-96 0/1  Error  0   23m  192.168.1.46 
test-97 0/1  Error  0   23m  192.168.1.46 
test-98 0/1  Error  0   23m  192.168.1.46 
test-99 0/1  ExitCode:0 0   23m  192.168.1.43 

ExitCode:0莢的描述:

Name:       test-99 
Namespace:      default 
Image(s):      test:v0.1 
Node:       192.168.1.43/192.168.1.43 
Status:       Succeeded 
Replication Controllers:  <none> 
Containers: 
    test: 
    State:    Terminated 
     Exit Code:  0 
    Ready:    False 
    Restart Count:  0 

Error莢的描述:

Name:       test-98 
Namespace:      default 
Image(s):      test:v0.1 
Node:       192.168.1.46/192.168.1.46 
Status:       Succeeded 
Replication Controllers:  <none> 
Containers: 
    test: 
    State:    Terminated 
     Reason:   Error 
     Exit Code:  0 
    Ready:    False 
    Restart Count:  0 

他們的NFS卷:

Volumes: 
    input: 
    Type:  NFS (an NFS mount that lasts the lifetime of a pod) 
    Server:  192.168.1.46 
    Path:  /srv/nfs4/input 
    ReadOnly: false 
    output: 
    Type:  NFS (an NFS mount that lasts the lifetime of a pod) 
    Server:  192.168.1.46 
    Path:  /srv/nfs4/output 
    ReadOnly: false 
    default-token-nmviv: 
    Type:  Secret (a secret that should populate this volume) 
    SecretName: default-token-nmviv 

kubectl logs由於容器只產生輸出文件而不返回任何值。

在此先感謝!

+0

你使用什麼版本的kubernetes? 'kubectl version' –

+0

@ Yu-JuHong Kubernetes 1.1.2在Ubuntu 14.04上,任何傳遞到pod的命令都會返回錯誤狀態。 – Yang

+0

我遇到了與Kubernetes v1.1.4相同的問題,你有沒有找到原因呢?我實際上只是遵循簡單的hello-world示例,將restartPolicy設置爲從不。 – zyxue

回答

0

ExitCode 0意味着它正常終止

退出代碼可以使用,如果你管到另一個過程,所以這個過程知道下一步該怎麼做(如果以前的進程失敗做到這一點,否則做傳遞的數據東西.. )

+0

謝謝!我測試了容器中的腳本,退出代碼正好是'0',但爲什麼一些莢用'Error'終止? – Yang

+0

嗯,我認爲複製控制器說成功,如果它成功地啓動每個請求的pod,這在巡視情況下是一次性的過程,所以只要圖像可以運行,它就會始終成功。現在爲什麼該吊艙可能會退出並顯示錯誤取決於您實際運行的內容。它可能無法掛載nfs存儲並失敗。你需要在圖像中輸出一些東西來檢查並獲得有用的日誌 – MrE

+0

謝謝!我剛纔檢查了nfs服務器中的輸出文件,並且按預期存儲了這些文件。這個問題真的有線。 – Yang