使用以下命令创建广告连播
kubectl run bb --image=busybox --generator=run-pod/v1 --command -- sh -c "echo hi"
要重复创建Pod
bb 1/1 Running 1 7s
bb 0/1 Completed 1 8s
bb 0/1 CrashLoopBackOff 1 9s
bb 0/1 Completed 2 22s
bb 0/1 CrashLoopBackOff 2 23s
bb 0/1 Completed 3 53s
退出代码为0
k describe pod bb
...
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Thu, 29 Aug 2019 22:58:36 +0000
Finished: Thu, 29 Aug 2019 22:58:36 +0000
Ready: False
Restart Count: 7
谢谢
答案 0 :(得分:1)
kubectl run
默认将"restart policy"设置为“始终”。在这种情况下,它还会设置一个Deployment来管理容器。
--restart='Always': The restart policy for this Pod. Legal values
[Always, OnFailure, Never]. If set to 'Always' a deployment is created,
if set to 'OnFailure' a job is created, if set to 'Never', a regular pod
is created. For the latter two --replicas must be 1. Default 'Always',
for CronJobs `Never`.
如果将命令更改为:
kubectl run bb \
--image=busybox \
--generator=run-pod/v1 \
--restart=Never \
--command -- sh -c "echo hi"
将设置一个作业,并且不会重新启动Pod。
kubectl run
之外所有pod specs都将包含一个restartPolicy
,其默认值为Always
,因此如果您想要其他行为,则必须指定它。
spec:
template:
spec:
containers:
- name: something
restartPolicy: Never
如果您希望运行任务以完成任务,请尝试使用Job。
答案 1 :(得分:0)
请查看“完成”的“上一个状态”原因。
已终止:表示容器已完成执行并已停止运行。当容器成功完成执行或由于某种原因而失败时,容器将进入容器。无论如何,都会显示原因和退出代码,以及容器的开始和结束时间。在容器进入“已终止”之前,执行preStop挂钩(如果有)。
...
State: Terminated
Reason: Completed
Exit Code: 0
Started: Wed, 30 Jan 2019 11:45:26 +0530
Finished: Wed, 30 Jan 2019 11:45:26 +0530
...
请查看更多详细信息here。您可以尝试执行类似操作以显示差异。
kubectl run bb --image=busybox --generator=run-pod/v1 --command -- sh -c "sleep 1000"