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,命令工作正常。
答案 0 :(得分:1)
如您所知,pwd命令不是守护进程,它只是执行并立即退出。默认情况下,kubernetes会尝试重新启动任何退出的pod。在你的情况下,pwd命令会被执行几次,直到k8s放弃,因为它失败了太多次。
你准备做什么?
答案 1 :(得分:0)
正如kubectl run文档中所描述的那样--restart = Always(默认值)创建了一个部署,它可以在前台运行而不是退出 - 一个守护进程,因为@ whites11表示会重新启动。如果你想要运行命令,然后容器退出使用--restart = Never,这会导致创建一个Job(参见--generator),并且预计会完成。