← Về danh sách bài học Bài 17/25

⏰ Bài 17: Jobs & CronJobs

⏱️ Thời gian: 20 phút | 📚 Độ khó: Trung bình

🎯 Sau bài học này, bạn sẽ:

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