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


답변:


187

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

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

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

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


3
Google Cloud SDK를 통해 설치된 버전에는 18 년 5 월 10 일부터이 명령을 사용할 수 없으므로 kubectl 버전을 확인해야합니다. gcloud components install kubectl그런 다음 kubernetes.io/docs/tasks/tools/install-kubectl
Scott Jungwirth

18

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

1
"불필요한 필드 지우기"에 대한 약간의 추가 사항입니다. 는 Kubernetes 대해 불평 *uid필드와이 명령에 의해 쉽게 제거 할 수 있습니다sed -i '/uid:.*/d' my_job.yaml
알렉산드르 Podkutin

역사에 이미 일자리가 있다는 가정은 종종 유지되지 않습니다.
Andrew Savinykh

9

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

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

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

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


7

안타깝게도 위의 예제 구문은 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>

크론 작업 복원력 관련 문제를 해결하는 것이 좋습니다. 감사합니다!
lauksas


0

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

kubectl create -f ./job.yaml

0

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

이미지보기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.