Bagaimana saya bisa memicu Pekerjaan Terjadwal Kubernetes secara manual?


Jawaban:


187

Masalah # 47538 yang @jdf sebutkan sekarang sudah ditutup dan sekarang mungkin. Implementasi asli dapat ditemukan di sini tetapi sintaksnya telah berubah.

Dengan kubectl v1.10.1 + perintahnya adalah:

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

Tampaknya kompatibel dengan cluster yang lebih lama seperti yang berfungsi untuk saya di v0.8.x.


3
Pastikan untuk memeriksa versi kubectl Anda, mulai 5/10/18, versi yang diinstal melalui Google Cloud SDK tidak memiliki perintah ini. gcloud components install kubectllalu kubernetes.io/docs/tasks/tools/install-kubectl
Scott Jungwirth

18

Anda dapat membuat pekerjaan sederhana berdasarkan ScheduledJob Anda. Jika Anda sudah menjalankan ScheduledJob, ada pekerjaan dalam sejarah.

kubectl get jobs

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

Ekspor salah satu pekerjaan ini:

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

Kemudian edit yaml sedikit, hapus beberapa bidang yang tidak perlu dan jalankan secara manual:

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

1
Hanya tambahan kecil tentang "menghapus beberapa bidang yang tidak perlu". Kubernetes mengeluh tentang *uidfield dan Anda dapat menghapusnya dengan mudah dengan perintah inised -i '/uid:.*/d' my_job.yaml
Aleksandr Podkutin

Asumsi bahwa sudah ada pekerjaan dalam sejarah seringkali tidak berlaku.
Andrew Savinykh

9

EDIT - Juli 2018: lihat jawaban @ pedro_sland karena fitur ini telah diterapkan

Jawaban asli saya di bawah ini akan tetap benar untuk versi kubectl yang lebih lama kurang dari v1.10.1

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

Selain menciptakan pekerjaan baru (seperti yang disarankan jawaban lain), tidak ada cara saat ini untuk melakukan ini. Ini adalah permintaan fitur dalam kubernetes sekarang yang dapat dilacak di sini: https://github.com/kubernetes/kubernetes/issues/47538


7

Sayangnya, tidak ada sintaks contoh di atas yang berfungsi di Google Kubernetes Engine (GCP). Selain itu, dokumen GKE itu sendiri salah. :(

Di Kubernetes 1.10.6.gke-2, sintaks yang berfungsi adalah

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

luar biasa untuk memecahkan masalah dengan ketahanan cron jobs, terima kasih!
lauksas


0

Jika Anda ingin menguji pekerjaan, buat konfigurasi Pekerjaan dari konfigurasi Cron Job (ScheduledJob) Anda dan jalankan secara manual menggunakan perintah berikut:

kubectl create -f ./job.yaml

0

Ada opsi untuk memicu pekerjaan cron secara manual di dalam tab ini di dasbor k8s

Lihat gambar

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.