← Về danh sách bài học
Bài 17/25
⏰ Bài 17: Jobs & CronJobs
🎯 Sau bài học này, bạn sẽ:
- Tạo one-time Jobs
- Tạo scheduled CronJobs
- Cấu hình parallel jobs
1. Job - Chạy Một Lần
apiVersion: batch/v1
kind: Job
metadata:
name: db-migration
spec:
template:
spec:
containers:
- name: migration
image: myapp:1.0
command: ["./migrate.sh"]
restartPolicy: Never # Hoặc OnFailure
backoffLimit: 4 # Retry tối đa 4 lần
# Xem jobs
kubectl get jobs
kubectl describe job db-migration
kubectl logs job/db-migration
2. Parallel Jobs
spec:
completions: 10 # Cần hoàn thành 10 lần
parallelism: 3 # Chạy song song 3 pods
template:
spec:
containers:
- name: worker
image: worker:1.0
restartPolicy: Never
3. CronJob - Scheduled Jobs
apiVersion: batch/v1
kind: CronJob
metadata:
name: backup-db
spec:
schedule: "0 2 * * *" # 2AM hàng ngày
jobTemplate:
spec:
template:
spec:
containers:
- name: backup
image: backup-tool:1.0
command: ["./backup.sh"]
restartPolicy: OnFailure
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 1
💡 Cron Schedule:
•
•
•
•
•
*/5 * * * * - Mỗi 5 phút•
0 * * * * - Mỗi giờ•
0 0 * * * - Mỗi ngày lúc 0h•
0 0 * * 0 - Mỗi Chủ nhật
4. Quản Lý CronJobs
# Xem cronjobs
kubectl get cronjobs
# Xem jobs được tạo bởi cronjob
kubectl get jobs --selector=job-name=backup-db
# Suspend cronjob
kubectl patch cronjob backup-db -p '{"spec":{"suspend":true}}'
# Trigger manual
kubectl create job --from=cronjob/backup-db manual-backup
📝 Tóm Tắt
- Job: Chạy task một lần
- CronJob: Scheduled/recurring jobs
completions,parallelismcho parallelbackoffLimitcho retry