Kubernetes pods是否支持NoRestart政策?

时间:2015-07-28 01:49:36

标签: docker google-compute-engine kubernetes

批量计算,Monte Carlo,使用Docker镜像,在Google云上运行并由Kubernetes管理的多个作业。但它(复制控制器,我猜?)由于默认重启策略而设法一次又一次地重启相同的计算。

现在有办法让豆荚死吗?或者其他可能做pods垃圾收集的变通办法?

2 个答案:

答案 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 ,这样如果作业以非零退出状态退出,则会重新启动。