Criei um Job Programado do Kubernetes , que é executado duas vezes por dia de acordo com sua programação. No entanto, gostaria de acioná-lo manualmente para fins de teste. Como posso fazer isso?
Criei um Job Programado do Kubernetes , que é executado duas vezes por dia de acordo com sua programação. No entanto, gostaria de acioná-lo manualmente para fins de teste. Como posso fazer isso?
Respostas:
O problema # 47538 que @jdf mencionou agora está encerrado e isso agora é possível. A implementação original pode ser encontrada aqui, mas a sintaxe mudou.
Com kubectl v1.10.1 +, o comando é:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Parece ser retrocompatível com clusters mais antigos, pois funcionou para mim na v0.8.x.
Você pode criar um trabalho simples com base em seu ScheduledJob. Se você já executa um ScheduledJob, há trabalhos no histórico.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Exporte um destes trabalhos:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Em seguida, edite o yaml um pouco, apagando alguns campos desnecessários e execute-o manualmente:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
campos e você pode removê-los facilmente com este comandosed -i '/uid:.*/d' my_job.yaml
EDITAR - Julho de 2018: veja a resposta de @pedro_sland, pois esse recurso já foi implementado
Minha resposta original abaixo permanecerá correta para as versões anteriores do kubectl anteriores à v1.10.1
========================================================== ========================
Além de criar um novo emprego (como as outras respostas sugeriram), não há uma maneira atual de fazer isso. É uma solicitação de recurso com o kubernetes agora que pode ser rastreada aqui: https://github.com/kubernetes/kubernetes/issues/47538
Infelizmente, nenhum dos exemplos de sintaxe acima funciona no Google Kubernetes Engine (GCP). Além disso, os próprios documentos do GKE estão errados. :(
No Kubernetes 1.10.6.gke-2
, a sintaxe de trabalho é
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Eu criei um pequeno utilitário cmd por conveniência para fazer exatamente isso e também suspender e cancelar a suspensão de cronjobs.
Se você quiser testar o trabalho, crie uma configuração de trabalho a partir de sua configuração Cron Job (ScheduledJob) e execute-o manualmente usando o seguinte comando:
kubectl create -f ./job.yaml
Existe uma opção para acionar o cron job manualmente nesta guia no painel do k8s
gcloud components install kubectl
então kubernetes.io/docs/tasks/tools/install-kubectl