Bir Kubernetes Zamanlanmış İşini manuel olarak nasıl tetikleyebilirim?


Yanıtlar:


190

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.


3
5/10/18 itibarıyla kubectl sürümünüzü kontrol ettiğinizden emin olun, Google Cloud SDK aracılığıyla yüklenen sürümde bu komut mevcut değildir. gcloud components install kubectlsonra kubernetes.io/docs/tasks/tools/install-kubectl
Scott Jungwirth

18

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

1
"Bazı gereksiz alanları silme" hakkında küçük bir ekleme. Kubernetes *uidtarlalardan şikayet ediyor ve bu komutla onları kolayca kaldırabilirsinizsed -i '/uid:.*/d' my_job.yaml
Aleksandr Podkutin

Tarihte zaten işler olduğu varsayımı çoğu zaman geçerli değildir.
Andrew Savinykh

9

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


7

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>

cron jobs esnekliğiyle ilgili sorunları gidermek için harika, teşekkürler!
lauksas


0

İşi test etmek istiyorsanız , Cron Job (ScheduledJob) yapılandırmanızdan bir Job yapılandırması oluşturun ve aşağıdaki komutu kullanarak manuel olarak çalıştırın:

kubectl create -f ./job.yaml

0

K8s panosundaki bu sekme ile cron işini manuel olarak tetikleme seçeneği vardır.

Resme bakın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.