Kubernetes - Job nur einmal ausführen

8

Ich habe eine Jobdefinition basierend auf einem Beispiel von kubernetes Website.

%Vor%

Ich möchte diesen Job einmal ausführen und nicht neu starten, wenn er fehlschlägt. Mit command exit 1 kubernetes versucht, einen neuen Pod zu starten, um den Code 0 zu erhalten, bis das activeDeadlineSeconds Timeout erreicht ist. Wie kann das vermieden werden? Ich möchte Build-Befehle in kubernetes ausführen, um die Kompilierung zu überprüfen, und wenn die Kompilierung fehlschlägt, erhalte ich einen anderen Exit-Code als 0. Ich möchte die Kompilierung nicht erneut ausführen.

Ist es möglich? Wie?

    
esio 06.10.2016, 10:11
quelle

2 Antworten

10

Wenn Sie einen Run-Befehl mit nur einem Befehl ausführen möchten, sollten Sie wahrscheinlich einen leeren Pod erstellen, da der Job versucht, den Befehl auszuführen, bis er erfolgreich ist oder der aktive Termin erfüllt ist.

Erstelle einfach den Pod aus deiner Vorlage:

%Vor%     
Nebril 06.10.2016, 11:11
quelle
1

Leider gibt es derzeit keine Möglichkeit zu verhindern, dass der Job-Controller neue Pods respawnen kann, wenn sie scheitern, aber die kubernetes-Community arbeitet an einer Lösung, siehe:

"Backoff-Richtlinie und gescheitertes Pod-Limit" Ссылка

    
ithkuil 21.08.2017 21:41
quelle

Tags und Links