EKS CronJob에서 실행 시간이 지나면 자동으로 Pod 종료하는 방법

Kubernetes의 CronJob을 사용할 때, 실행 시간이 너무 길어지면 리소스를 낭비할 수 있습니다. 이를 방지하기 위해 activeDeadlineSeconds 옵션을 활용하면 일정 시간이 지나면 자동으로 Pod를 종료할 수 있습니다.

✅ activeDeadlineSeconds 옵션이란?

activeDeadlineSecondsJob이 시작된 후 일정 시간이 지나면 강제 종료되는 기능입니다. 이를 설정하면, 지정된 시간이 초과되었을 때 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

🔍 주요 설정 옵션 설명

옵션설명
activeDeadlineSecondsJob이 실행된 후 지정된 시간이 지나면 강제 종료됨
restartPolicy: Never실패 시 재시작하지 않음
scheduleCronJob 실행 주기 (예: */5 * * * * → 5분마다 실행)

🎯 activeDeadlineSeconds 활용 예시

  • 시간이 오래 걸리는 Job을 제한하여 리소스 낭비 방지
  • 잘못된 무한 루프 실행 방지
  • Batch 작업의 실행 시간을 통제하여 운영 안정성 향상

이제 EKS에서 CronJob을 사용할 때, 실행 시간을 초과하면 자동으로 Pod가 종료되도록 설정할 수 있습니다. ✅

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다