Mam definicję pracy opartą na przykładzie ze strony internetowej kubernetes.Kubernetes - jak uruchomić zadanie tylko raz
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
Chciałbym uruchomić tę pracę raz i nie uruchomi się ponownie, jeśli się nie powiedzie. Przy wyjściu komand 1 kelernetes próbuje uruchomić nowy moduł, aby uzyskać kod wyjścia 0, aż osiągnie limit czasu activeDeadlineSeconds. Jak można tego uniknąć? Chciałbym uruchomić polecenia budowania w kernernetes, aby sprawdzić kompilację, a jeśli kompilacja się nie powiedzie, otrzymam kod zakończenia inny niż 0. Nie chcę ponownie uruchamiać kompilacji.
Czy to możliwe? W jaki sposób?
Ale jak zatrzymać/zabić kapsułę po zakończeniu polecenia? W przypadku zadań działająca blokada zatrzymuje się. –
@ rishabh.bhardwaj jeśli ustawisz 'restartPolicy' na' Nigdy ', tak jak w mojej odpowiedzi, po skończeniu strąki się zatrzymają. – Nebril
Problem z używaniem kapsuły zamiast zadania polega na tym, że moduł również nie powiedzie się z powodu fałszywych przyczyn, takich jak zabicie węzła lub inne problemy, na które użytkownik nie ma wpływu. – ithkuil