मैं मैन्युअल रूप से कुबेरनेट अनुसूचित नौकरी कैसे ट्रिगर कर सकता हूं?


115

मैंने कुबेरनेट्स शेड्यूल्ड जॉब बनाई है , जो अपने शेड्यूल के अनुसार दिन में दो बार चलती है। हालांकि, मैं इसे परीक्षण उद्देश्यों के लिए मैन्युअल रूप से ट्रिगर करना चाहूंगा। मैं यह कैसे कर सकता हूँ?

जवाबों:


187

मुद्दा # 47,538 कि उल्लेख किया @jdf अब बंद हो गया है और यह अब संभव है। मूल कार्यान्वयन यहाँ पाया जा सकता है लेकिन वाक्यविन्यास बदल गया है।

Kubectl v1.10.1 + के साथ कमांड है:

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

यह पुराने समूहों के साथ पिछड़े संगत लगता है क्योंकि इसने मेरे लिए v0.8.x पर काम किया था।


3
अपने संस्करण की जांच करना सुनिश्चित करें, जैसे कि 5/10/18 Google क्लाउड SDK के माध्यम से इंस्टॉल किए गए संस्करण में यह कमांड उपलब्ध नहीं है। gcloud components install kubectlउसके बाद kubernetes.io/docs/tasks/tools/install-kubectl
स्कॉट जुंगविर्थ

18

आप अपने शेड्यूल्डजॉब के आधार पर एक साधारण नौकरी बना सकते हैं। यदि आप पहले से ही शेड्यूलजॉब चलाते हैं, तो इतिहास में नौकरियां हैं।

kubectl get jobs

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

इनमें से एक काम का निर्यात करें:

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

फिर यम को थोड़ा संपादित करें, कुछ अनावश्यक क्षेत्रों को मिटा दें और इसे मैन्युअल रूप से चलाएं:

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

1
"कुछ अनावश्यक क्षेत्रों को मिटाने" के बारे में बस छोटा सा जोड़। कुबेरनेट्स *uidखेतों के बारे में शिकायत कर रहे हैं और आप उन्हें इस आदेश द्वारा आसानी से हटा सकते हैंsed -i '/uid:.*/d' my_job.yaml
अलेक्सांद्र पॉडकुटिन

यह मानते हुए कि इतिहास में पहले से ही नौकरियां हैं अक्सर पकड़ में नहीं आती हैं।
एंड्रयू सविनाख

9

EDIT - जुलाई 2018: @ pedro_sland का उत्तर देखें क्योंकि यह सुविधा अब लागू हो चुकी है

नीचे मेरा मूल उत्तर v1.10.1 से कम के कुब्लेट के पुराने संस्करणों के लिए सही रहेगा

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

एक नई नौकरी बनाने के अलावा (जैसा कि अन्य उत्तरों ने सुझाव दिया है), ऐसा करने का कोई मौजूदा तरीका नहीं है। यह कुबेरनेट्स के साथ एक सुविधा अनुरोध है जिसे अब यहां ट्रैक किया जा सकता है: https://github.com/kubernetes/kubernetes/issues/47538


7

दुर्भाग्य से, ऊपर का कोई भी सिंटैक्स Google Kubernetes Engine (GCP) में काम नहीं करता है। इसके अलावा, GKE डॉक्स स्वयं गलत हैं। :(

कुबेरनेट्स में 1.10.6.gke-2, कार्य सिंटैक्स है

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

क्रोन नौकरियों के साथ समस्याओं का निवारण करने के लिए भयानक, धन्यवाद!
लुक्स

3

मैंने सुविधा के लिए एक छोटा सा cmd यूटिलिटी बनाया है जो सिर्फ और सिर्फ सस्पेंड और क्रॉन्ज को अनसेंड करता है।

https://github.com/iJanki/kubecron


0

आप काम का परीक्षण करना चाहते हैं, तो एक बनाने नौकरी अपने से config क्रॉन जॉब (ScheduledJob) config और मैन्युअल रूप से निम्न आदेश का उपयोग कर इसे चलाने:

kubectl create -f ./job.yaml

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.