Kubernetes의 CronJob을 사용할 때, 실행 시간이 너무 길어지면 리소스를 낭비할 수 있습니다. 이를 방지하기 위해 activeDeadlineSeconds 옵션을 활용하면 일정 시간이 지나면 자동으로 Pod를 종료할 수 있습니다.
activeDeadlineSeconds
옵션이란?
activeDeadlineSeconds
는 Job이 시작된 후 일정 시간이 지나면 강제 종료되는 기능입니다. 이를 설정하면, 지정된 시간이 초과되었을 때 Kubernetes가 자동으로 해당 Pod를 종료합니다.
EKS CronJob에서 activeDeadlineSeconds
설정 방법
아래 예제는 5분마다 실행되는 CronJob이며, 실행 시간이 60초를 초과하면 자동으로 종료됩니다.
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-cronjob
spec:
schedule: "*/5 * * * *" # 5분마다 실행
jobTemplate:
spec:
activeDeadlineSeconds: 60 # 실행 시작 후 60초가 지나면 강제 종료
template:
spec:
containers:
- name: my-job
image: busybox
args:
- sleep
- "120" # 120초 동안 실행 (60초 초과 시 강제 종료)
restartPolicy: Never
주요 설정 옵션 설명
옵션 | 설명 |
---|---|
activeDeadlineSeconds | Job이 실행된 후 지정된 시간이 지나면 강제 종료됨 |
restartPolicy: Never | 실패 시 재시작하지 않음 |
schedule | CronJob 실행 주기 (예: */5 * * * * → 5분마다 실행) |
activeDeadlineSeconds
활용 예시
- 시간이 오래 걸리는 Job을 제한하여 리소스 낭비 방지
- 잘못된 무한 루프 실행 방지
- Batch 작업의 실행 시간을 통제하여 운영 안정성 향상
이제 EKS에서 CronJob을 사용할 때, 실행 시간을 초과하면 자동으로 Pod가 종료되도록 설정할 수 있습니다.