Saya telah membuat Pekerjaan Terjadwal Kubernetes , yang berjalan dua kali sehari sesuai dengan jadwalnya. Namun, saya ingin memicunya secara manual untuk tujuan pengujian. Bagaimana saya bisa melakukan ini?
Saya telah membuat Pekerjaan Terjadwal Kubernetes , yang berjalan dua kali sehari sesuai dengan jadwalnya. Namun, saya ingin memicunya secara manual untuk tujuan pengujian. Bagaimana saya bisa melakukan ini?
Jawaban:
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.
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
*uid
field dan Anda dapat menghapusnya dengan mudah dengan perintah inised -i '/uid:.*/d' my_job.yaml
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
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>
Saya telah membuat utilitas cmd kecil untuk kenyamanan melakukan hal itu dan juga menangguhkan dan membatalkan penangguhan cronjobs.
Ada opsi untuk memicu pekerjaan cron secara manual di dalam tab ini di dasbor k8s
gcloud components install kubectl
lalu kubernetes.io/docs/tasks/tools/install-kubectl