[scheduled-tasks] Kubernetes 예약 작업을 수동으로 트리거하려면 어떻게해야합니까?

일정 에 따라 하루에 두 번 실행 되는 Kubernetes Scheduled Job을 만들었습니다 . 그러나 테스트 목적으로 수동으로 트리거하고 싶습니다. 어떻게 할 수 있습니까?



답변

문제의 # 47538 언급 @jdf은 이제 폐쇄하고이 지금 가능하다. 원래 구현은 여기 에서 찾을 수 있지만 구문이 변경되었습니다.

kubectl v1.10.1 +에서 명령은 다음과 같습니다.

kubectl create job --from=cronjob/<cronjob-name> <job-name>

v0.8.x에서 저에게 효과적 이었기 때문에 이전 클러스터와 역 호환되는 것 같습니다.


답변

ScheduledJob을 기반으로 간단한 작업을 만들 수 있습니다. ScheduledJob을 이미 실행 한 경우 기록에 작업이 있습니다.

kubectl get jobs

NAME               DESIRED   SUCCESSFUL   AGE
hello-1477281595   1         1            11m
hello-1553106750   1         1            12m
hello-1553237822   1         1            9m

다음 작업 중 하나를 내 보냅니다.

kubectl get job hello-1477281595 -o yaml > my_job.yaml

그런 다음 yaml을 약간 편집하여 불필요한 필드를 지우고 수동으로 실행하십시오.

kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml


답변

편집-2018 년 7 월 : 이 기능이 이제 구현 되었으므로 @pedro_sland의 답변 을 참조하십시오.

아래의 원래 답변은 v1.10.1 미만의 이전 버전의 kubectl에 대해 올바른 상태로 유지됩니다.

================================================ ======================

(다른 답변에서 제안했듯이) 새 작업을 만드는 것 외에는 현재 방법이 없습니다. 이제 여기에서 추적 할 수있는 kubernetes의 기능 요청입니다 : https://github.com/kubernetes/kubernetes/issues/47538


답변

안타깝게도 위의 예제 구문은 Google Kubernetes Engine (GCP)에서 작동하지 않습니다. 또한 GKE 문서 자체가 잘못되었습니다. 🙁

Kubernetes 1.10.6.gke-2에서 작동 구문은 다음과 같습니다.

kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>


답변

편의를 위해 작은 cmd 유틸리티를 만들어 cronjob을 일시 중지 및 일시 중지 해제했습니다.

https://github.com/iJanki/kubecron


답변

작업을 테스트하려면 Cron 작업 (ScheduledJob) 구성 에서 작업 구성을 만들고 다음 명령을 사용하여 수동으로 실행합니다.

kubectl create -f ./job.yaml


답변

k8s 대시 보드의이 탭에서 cron 작업을 수동으로 트리거하는 옵션이 있습니다.

이미지보기