2016-10-06 4 views
8

У меня есть определение работы на примере с сайта kubernetes.Kubernetes - как запустить работу только один раз

apiVersion: batch/v1 
kind: Job 
metadata: 
    name: pi-with-timeout-6 
spec: 
    activeDeadlineSeconds: 30 
    completions: 1 
    paralleism: 1 
    template: 
    metadata: 
     name: pi 
    spec: 
     containers: 
     - name: pi 
     image: perl 
     command: ["exit", "1"] 
     restartPolicy: Never 

Я хотел бы запустить это задание один раз и не перезапускать, если не удается. С выходом comand 1 кубернете пытается запустить новый pod, чтобы получить код выхода 0, до тех пор, пока не достигнет активного тайм-аута TimeDeadlineSeconds. Как это можно избежать? Я хотел бы запустить команды сборки в кубернетах, чтобы проверить компиляцию, и если компиляция завершится неудачно, я получу код выхода, отличный от 0. Я не хочу снова запускать компиляцию.

Возможно ли это? Как?

ответ

10

Если вам нужен бегун с одной попыткой, вы, вероятно, должны создать bare pod, потому что задание будет пытаться выполнить команду до тех пор, пока она не будет успешной или не будет выполнен активный крайний срок.

Просто создайте стручок из шаблона:

apiVersion: v1 
kind: Pod 
metadata: 
    name: pi 
spec: 
    containers: 
    - name: pi 
    image: perl 
    command: ["exit", "1"] 
    restartPolicy: Never 
+0

Но как остановить/убить стручок, когда команда завершается? В случае Джобса работает подставка. –

+1

@ rishabh.bhardwaj, если вы установите 'restartPolicy' на' Never', как и в моем ответе, после окончания pod просто остановится. – Nebril

+1

проблема с использованием pod вместо задания заключается в том, что pod также не работает по ложным причинам, таким как убитый узел или другие проблемы, не зависящие от пользователя. – ithkuil

1

К сожалению, нет в настоящее время нет способа предотвратить контроллер работы только возрождаются новые стручки, когда они терпят неудачу, но община kubernetes работает над решением, см :

«Переключения политик и не предел стручка» https://github.com/kubernetes/community/pull/583

 Смежные вопросы

  • Нет связанных вопросов^_^