Kubernetes豆荚是否支持NoRestart策略?

批量计算,蒙特卡洛,使用Docker镜像,在Google云上运行多个作业,由Kubernetespipe理。 但它(复制控制器,我猜?)由于默认的重新启动策略设法一次又一次地重新启动相同的计算。

现在有办法让豆荚死亡吗? 或者也许其他解决方法来做豆荚垃圾收集?

现在v1.0版本已经出来了,更好的获得批量计算的原生支持是团队的首要任务之一,但是已经可以运行它们了。

如果您以某个pod而不是复制控制器的身份运行某个function,则可以在其上设置restartPolicy字段。 OnFailure策略可能是您想要的,也就是说kubernetes将重新启动一个以非零退出代码退出的pod,但不会重新启动退出零的pod。

如果你使用kubectl run来启动你的豆荚,不幸的是,我不知道如何让它创build一个pod而不是一个复制控制器。 如果你喜欢这样的话,如果你打开一个请求作为一个选项的话,会很好。

截至2015年11月,kubernetes v1.1.1现在提供了一个工作API https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/jobs.md

以下是一个简单的工作,每秒执行一次60秒的date命令:

 $ cat job.yaml apiVersion: extensions/v1beta1 kind: Job metadata: name: example spec: selector: matchLabels: app: example template: metadata: name: example labels: app: example spec: containers: - name: example image: debian command: ["timeout", "60", "bash", "-c", "while sleep 1; do date;done"] restartPolicy: Never 

在您的kubernetes集群上运行作业:

 $ cluster/kubectl.sh create -f job.yaml job "example" created 

检索pod id:

 $ cluster/kubectl.sh get pods NAME READY STATUS RESTARTS AGE example-3nxin 1/1 Running 0 15s 

现在检查pod的日志:

 $ cluster/kubectl.sh logs example-3nxin Sat Dec 5 04:47:12 UTC 2015 Sat Dec 5 04:47:13 UTC 2015 Sat Dec 5 04:47:14 UTC 2015 Sat Dec 5 04:47:15 UTC 2015 Sat Dec 5 04:47:16 UTC 2015 Sat Dec 5 04:47:17 UTC 2015 Sat Dec 5 04:47:18 UTC 2015 Sat Dec 5 04:47:19 UTC 2015 Sat Dec 5 04:47:20 UTC 2015 Sat Dec 5 04:47:21 UTC 2015 Sat Dec 5 04:47:22 UTC 2015 Sat Dec 5 04:47:23 UTC 2015 Sat Dec 5 04:47:24 UTC 2015 Sat Dec 5 04:47:25 UTC 2015 Sat Dec 5 04:47:26 UTC 2015 Sat Dec 5 04:47:27 UTC 2015 Sat Dec 5 04:47:28 UTC 2015 Sat Dec 5 04:47:29 UTC 2015 

(可选)您可以将restartPolicy设置为OnFailure ,以便在作业退出时以非零退出状态重新启动。