我有以下Kubernetes作业configuration:
--- 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: {}
当我做kubectl create -f dbload-deployment.yml --record作业和一个pod被创build,Docker容器运行完成,我得到这个状态:
$ 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
这项工作是一次交易,我需要能够重新运行它。 如果我尝试重新运行它与kubectl create命令我得到这个错误
$ kubectl create -f dbload-deployment.yml --record Error from server: error when creating "dbload-deployment.yml": jobs.batch "dbload" already exists
当然,我可以做kubectl delete job dbload ,然后运行kubectl create但我想知道如果我能以某种方式重新唤醒已经存在的工作?
没有。肯定没有办法重新运行kubernetes的工作。 您需要先删除它。
你也可以通过指定避免你提到的错误
metadata: generateName: dbload
而不是简单的name
在这种情况下,使用这个yaml文件提交的每个作业都将有一个独特的名字,看起来像dbloada1b2c 。 然后,你可以决定是否需要删除旧的工作,但你不必这样做。