Programına göre günde iki kez çalışan bir Kubernetes Planlanmış İşi oluşturdum . Ancak, test amacıyla manuel olarak tetiklemek istiyorum. Bunu nasıl yapabilirim?
Programına göre günde iki kez çalışan bir Kubernetes Planlanmış İşi oluşturdum . Ancak, test amacıyla manuel olarak tetiklemek istiyorum. Bunu nasıl yapabilirim?
Yanıtlar:
Sorun # 47538 belirtilen @jdf şimdi kapalı ve bu artık mümkün. Orijinal uygulama burada bulunabilir, ancak sözdizimi değişmiştir.
Kubectl v1.10.1 + ile komut şu şekildedir:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Benim için v0.8.x'te çalıştığı için eski kümelerle geriye dönük olarak uyumlu görünüyor.
Planlanmış İşinize göre basit bir iş oluşturabilirsiniz. Zaten bir ScheduledJob çalıştırıyorsanız, geçmişte işler vardır.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Şu işlerden birini dışa aktar:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Sonra yaml'ı biraz düzenleyin, bazı gereksiz alanları silin ve manuel olarak çalıştırın:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
tarlalardan şikayet ediyor ve bu komutla onları kolayca kaldırabilirsinizsed -i '/uid:.*/d' my_job.yaml
DÜZENLEME - Temmuz 2018: @ pedro_sland'ın cevabına bakın, çünkü bu özellik şimdi uygulandı
Aşağıdaki orijinal cevabım, kubectl'in v1.10.1'den daha eski sürümleri için doğru kalacaktır.
================================================ ======================
Yeni bir iş yaratmanın yanı sıra (diğer cevapların da önerdiği gibi), bunu yapmanın mevcut bir yolu yoktur. Bu, şimdi buradan izlenebilen kubernetes'te bir özellik isteğidir: https://github.com/kubernetes/kubernetes/issues/47538
Maalesef yukarıdaki örnek söz dizimlerinin hiçbiri Google Kubernetes Engine'de (GCP) çalışmaz. Ayrıca, GKE belgelerinin kendisi de yanlıştır. :(
Kubernetes'te 1.10.6.gke-2
çalışma sözdizimi
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Bunu yapmak ve ayrıca cronjob'ları askıya almak ve askıya almaktan kurtarmak için küçük bir cmd yardımcı programı oluşturdum.
K8s panosundaki bu sekme ile cron işini manuel olarak tetikleme seçeneği vardır.
gcloud components install kubectl
sonra kubernetes.io/docs/tasks/tools/install-kubectl