批量计算,Monte Carlo,使用Docker镜像,在Google云上运行并由Kubernetes管理的多个作业。但它(复制控制器,我猜?)由于默认重启策略而设法一次又一次地重启相同的计算。
现在有办法让豆荚死吗?或者其他可能做pods垃圾收集的变通办法?
答案 0 :(得分:3)
既然v1.0已经用完,那么获得批量计算的更好的原生支持是团队的首要任务之一,但已经有可能运行它们。
如果您将某些内容作为窗格而不是复制控制器运行,则可以在其上设置restartPolicy
字段。 OnFailure
政策可能就是您想要的,这意味着kubernetes会重新启动以非零退出代码退出的pod,但不会重新启动退出零的pod。
如果您正在使用kubectl run
来启动您的广告连播,我很遗憾不知道如何让它创建一个广告连播而不是复制控制器。如果你喜欢类似的东西,如果你opened an issue要求它作为一个选项,它就会很棒。
答案 1 :(得分:2)
截至2015年11月,kubernetes v1.1.1现在提供了工作api https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/jobs.md
以下是一个简单的作业,每秒执行一次date命令60secs:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
<table border="1" >
<thead>
<tr><th>heading</th><th>heading 2</th></tr>
</thead>
<tfoot>
<tr><td>footer 1</td><td>footer 2</td></tr>
</tfoot>
<tr>
<td>x</td> <td>x1</td>
</tr>
<tr>
<td>x</td> <td>x2</td>
</tr>
<tr>
<td></td> <td>
<div style="page-break-after: always;"></div>
</td>
</tr>
<tr>
<td>x</td> <td>x3</td>
</tr>
</tbody>
</table>
</body>
</html>
在kubernetes集群上运行作业:
$ 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
检索广告连播ID:
$ cluster/kubectl.sh create -f job.yaml
job "example" created
现在检查pod的日志:
$ cluster/kubectl.sh get pods
NAME READY STATUS RESTARTS AGE
example-3nxin 1/1 Running 0 15s
您可以选择将restartPolicy设置为$ 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
,这样如果作业以非零退出状态退出,则会重新启动。