У меня есть определение работы на примере с сайта 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. Я не хочу снова запускать компиляцию.
Возможно ли это? Как?
Но как остановить/убить стручок, когда команда завершается? В случае Джобса работает подставка. –
@ rishabh.bhardwaj, если вы установите 'restartPolicy' на' Never', как и в моем ответе, после окончания pod просто остановится. – Nebril
проблема с использованием pod вместо задания заключается в том, что pod также не работает по ложным причинам, таким как убитый узел или другие проблемы, не зависящие от пользователя. – ithkuil