Tôi đã tạo một Công việc theo lịch trình Kubernetes , công việc này chạy hai lần một ngày theo lịch trình của nó. Tuy nhiên, tôi muốn kích hoạt nó theo cách thủ công cho mục đích thử nghiệm. Tôi có thể làm cái này như thế nào?
Tôi đã tạo một Công việc theo lịch trình Kubernetes , công việc này chạy hai lần một ngày theo lịch trình của nó. Tuy nhiên, tôi muốn kích hoạt nó theo cách thủ công cho mục đích thử nghiệm. Tôi có thể làm cái này như thế nào?
Câu trả lời:
Sự cố # 47538 mà @jdf đề cập hiện đã bị đóng và điều này hiện có thể xảy ra. Cách triển khai gốc có thể được tìm thấy ở đây nhưng cú pháp đã thay đổi.
Với kubectl v1.10.1 + lệnh là:
kubectl create job --from=cronjob/<cronjob-name> <job-name>
Nó có vẻ tương thích ngược với các cụm cũ hơn vì nó đã làm việc cho tôi trên v0.8.x.
Bạn có thể tạo một công việc đơn giản dựa trên Công việc theo lịch trình của mình. Nếu bạn đã chạy một SchedisedJob, có những công việc trong lịch sử.
kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
hello-1477281595 1 1 11m
hello-1553106750 1 1 12m
hello-1553237822 1 1 9m
Xuất một trong những công việc sau:
kubectl get job hello-1477281595 -o yaml > my_job.yaml
Sau đó, chỉnh sửa yaml một chút, xóa một số trường không cần thiết và chạy nó theo cách thủ công:
kubectl create -f my_job.yaml
kubectl delete -f my_job.yaml
*uid
các lĩnh vực và bạn có thể loại bỏ chúng một cách dễ dàng bởi lệnh nàysed -i '/uid:.*/d' my_job.yaml
CHỈNH SỬA - Tháng 7 năm 2018: xem câu trả lời của @ pedro_sland vì tính năng này hiện đã được triển khai
Câu trả lời ban đầu của tôi bên dưới sẽ vẫn đúng cho các phiên bản cũ hơn của kubectl nhỏ hơn v1.10.1
================================================== ======================
Ngoài việc tạo một công việc mới (như các câu trả lời khác đã đề xuất), không có cách nào hiện tại để làm điều này. Đó là một yêu cầu tính năng trong kubernetes hiện có thể được theo dõi tại đây: https://github.com/kubernetes/kubernetes/issues/47538
Rất tiếc, không có cú pháp mẫu nào ở trên hoạt động trong Google Kubernetes Engine (GCP). Ngoài ra, bản thân các tài liệu GKE cũng sai. :(
Trong Kubernetes 1.10.6.gke-2
, cú pháp làm việc là
kubectl create job <your-new-job-name> --from=cronjob/<name-of-deployed-cron-job> -n <target namespace>
Tôi đã tạo một tiện ích cmd nhỏ để thuận tiện cho việc đó, đồng thời tạm ngưng và hủy bỏ các cronjobs.
Nếu bạn muốn kiểm tra công việc, hãy tạo cấu hình Công việc từ cấu hình Công việc Cron (SchedisedJob) của bạn và chạy nó theo cách thủ công bằng lệnh sau:
kubectl create -f ./job.yaml
Có một tùy chọn để kích hoạt công việc cron theo cách thủ công trong tab này trong bảng điều khiển k8s
gcloud components install kubectl
sau đó kubernetes.io/docs/tasks/tools/install-kubectl