Tengo la siguiente configuración de trabajo de Kubernetes:
---
apiVersion: batch/v1
kind: Job
metadata:
name: dbload
creationTimestamp:
spec:
template:
metadata:
name: dbload
spec:
containers:
- name: dbload
image: sdvl3prox001:7001/pbench/tdload
command: ["/opt/pbench/loadTpcdsData.sh", "qas0063", "dbc", "dbc", "1"]
restartPolicy: Never
imagePullSecrets:
- name: pbenchregkey
status: {}
Cuando hago kubectl create -f dbload-deployment.yml --recordel trabajo y se crea un pod, el contenedor Docker se ejecuta hasta su finalización y obtengo este estado:
$ kubectl get job dbload
NAME DESIRED SUCCESSFUL AGE
dbload 1 1 1h
$ kubectl get pods -a
NAME READY STATUS RESTARTS AGE
dbload-0mk0d 0/1 Completed 0 1h
Este trabajo es un contrato de una sola vez y necesito poder volver a ejecutarlo. Si intento volver a ejecutarlo con el kubectl createcomando, aparece este error
$ kubectl create -f dbload-deployment.yml --record
Error from server: error when creating "dbload-deployment.yml": jobs.batch "dbload" already exists
Por supuesto que puedo hacer kubectl delete job dbloady luego correr, kubectl createpero me pregunto si de alguna manera puedo volver a despertar el trabajo que ya existe.
fuente

kubectl replaceelimina el trabajo antes de encontrarse con los errores que lo recrean.También puede evitar el error que mencionó especificando
metadata: generateName: dbloaden lugar de simplemente
nameEn ese caso, cada trabajo que envíe con este archivo yaml tendrá un nombre único que tendrá un aspecto similar
dbloada1b2c. Luego puede decidir si necesita eliminar los trabajos anteriores, pero no tendrá que hacerlo.fuente
kubectl create