cronjob.yaml 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. apiVersion: batch/v1
  2. kind: CronJob
  3. metadata:
  4. name: auto-put-ad-mini
  5. namespace: ad-automation
  6. labels:
  7. app: auto-put-ad-mini
  8. spec:
  9. schedule: "0 2 * * *" # 每天凌晨2点UTC
  10. concurrencyPolicy: Forbid # 不允许并发运行
  11. successfulJobsHistoryLimit: 3
  12. failedJobsHistoryLimit: 3
  13. jobTemplate:
  14. spec:
  15. backoffLimit: 2
  16. activeDeadlineSeconds: 7200 # 2小时超时
  17. template:
  18. metadata:
  19. labels:
  20. app: auto-put-ad-mini
  21. spec:
  22. restartPolicy: Never
  23. containers:
  24. - name: decision-engine
  25. image: your-registry/auto-put-ad-mini:latest
  26. imagePullPolicy: Always
  27. command: ["python", "execute_once.py"] # 单次执行模式
  28. envFrom:
  29. - configMapRef:
  30. name: ad-config
  31. - secretRef:
  32. name: ad-secrets
  33. volumeMounts:
  34. - name: outputs
  35. mountPath: /app/outputs
  36. resources:
  37. requests:
  38. memory: "1Gi"
  39. cpu: "500m"
  40. limits:
  41. memory: "2Gi"
  42. cpu: "1"
  43. securityContext:
  44. runAsNonRoot: true
  45. runAsUser: 1000
  46. allowPrivilegeEscalation: false
  47. volumes:
  48. - name: outputs
  49. persistentVolumeClaim:
  50. claimName: ad-outputs-pvc