Kubernetes pod尚未启动

时间:2017-09-02 11:04:22

标签: docker kubernetes

kubectl run ls --image = tomcat --command - pwd

使用以下命令启动pod。

以下是使用kubectl decribe pods的结果

活动:

  FirstSeen     LastSeen        Count   From                    SubObjectPath           Type        Reason
        Message
  ---------     --------        -----   ----                    -------------           --------    ------
        -------
  26s           26s             1       default-scheduler                               Normal      Scheduled
Successfully assigned ls-2648590517-hvnrr to minikube
  26s           26s             1       kubelet, minikube                               Normal      SuccessfulMountVolume       MountVolume.SetUp succeeded for volume "default-token-3px95"
  25s           20s             2       kubelet, minikube       spec.containers{ls}     Normal      Pulling
        pulling image "tomcat"
  20s           15s             2       kubelet, minikube       spec.containers{ls}     Normal      Pulled
        Successfully pulled image "tomcat"
  20s           15s             2       kubelet, minikube       spec.containers{ls}     Normal      Created
        Created container
  20s           14s             2       kubelet, minikube       spec.containers{ls}     Normal      Started
        Started container
  14s           12s             3       kubelet, minikube       spec.containers{ls}     Warning     BackOff
        Back-off restarting failed container
  14s           12s             3       kubelet, minikube                               Warning     FailedSync
Error syncing pod

如果使用pwd和kubectl exec,命令工作正常。

2 个答案:

答案 0 :(得分:1)

如您所知,pwd命令不是守护进程,它只是执行并立即退出。默认情况下,kubernetes会尝试重新启动任何退出的pod。在你的情况下,pwd命令会被执行几次,直到k8s放弃,因为它失败了太多次。

你准备做什么?

答案 1 :(得分:0)

正如kubectl run文档中所描述的那样--restart = Always(默认值)创建了一个部署,它可以在前台运行而不是退出 - 一个守护进程,因为@ whites11表示会重新启动。如果你想要运行命令,然后容器退出使用--restart = Never,这会导致创建一个Job(参见--generator),并且预计会完成。