Làm cách nào để kích hoạt Công việc đã lên lịch Kubernetes theo cách thủ công?


Câu trả lời:


186

Sự cố # 47538@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.


3
Hãy nhớ kiểm tra phiên bản kubectl của bạn, kể từ ngày 10/5/18, phiên bản được cài đặt qua Google Cloud SDK không có sẵn lệnh này. gcloud components install kubectlsau đó kubernetes.io/docs/tasks/tools/install-kubectl
Scott Jungwirth

18

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

1
Chỉ là bổ sung nhỏ về "xóa một số trường không cần thiết". Kubernetes được phàn nàn về *uidcá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
Aleksandr Podkutin

Giả định rằng đã có những công việc trong lịch sử thường không được giữ vững.
Andrew Savinykh

9

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


7

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>

tuyệt vời để khắc phục sự cố với khả năng phục hồi công việc cron, cảm ơn!
lauksas


0

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

0

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

Xem hình ảnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.