🚀 CKAD 시험 대비 – Kubernetes Job 완전 정리

2026. 2. 22. 13:13k8s

CKAD 시험에서 Job 문제는 거의 반드시 등장합니다.
단순 개념 문제가 아니라, 시간 내 정확하게 YAML을 작성할 수 있느냐가 핵심입니다.

이 글에서는 CKAD에서 자주 나오는 Job 유형과 함정 포인트를 정리합니다.


1️⃣ Kubernetes Job이란?

Job은 한 번 실행하고 종료되는 작업(배치 작업) 을 수행하는 리소스입니다.

대표적인 사용 예:

  • 데이터 마이그레이션
  • 스크립트 실행
  • 배치 작업
  • 일회성 처리 작업

Deployment와 달리, Job은 완료(completed)되면 종료됩니다.


2️⃣ CKAD에서 자주 나오는 Job 요구사항

시험에서 자주 등장하는 요구사항:

  • 특정 namespace에 Job 생성
  • 특정 이미지 사용
  • 특정 command 실행
  • 총 실행 횟수 지정
  • 병렬 실행 개수 지정
  • Pod에 label 추가
  • 재시도 제한(backoffLimit) 설정
  • 실행 시간 제한(activeDeadlineSeconds) 설정

3️⃣ 기본 Job YAML 구조 (시험용 템플릿)

apiVersion: batch/v1
kind: Job
metadata:
  name: example-job
  namespace: default
spec:
  completions: 3
  parallelism: 2
  backoffLimit: 4
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: example-container
          image: busybox:1.28
          command:
            - /bin/sh
            - -c
            - sleep 2; echo done
      restartPolicy: Never

4️⃣ 시험에서 가장 많이 틀리는 개념

🔥 ① completions vs parallelism

항목 의미
completions 총 몇 번 성공해야 Job 완료
parallelism 동시에 실행할 Pod 개수

예시:

completions: 3
parallelism: 2

실행 흐름:

  • 처음 2개 실행
  • 완료되면 마지막 1개 실행
  • 총 3개 완료 시 Job 종료

👉 이 차이를 모르면 시험에서 시간 날립니다.


🔥 ② restartPolicy 필수

Job에서는 반드시:

restartPolicy: Never

또는

restartPolicy: OnFailure

❌ Always는 사용 불가


🔥 ③ Pod 라벨 위치 실수

❌ 이렇게 쓰면 틀림

metadata:
  labels:
    id: awesome-job

이건 Job 라벨입니다.

✔ Pod에 붙이려면 반드시:

spec:
  template:
    metadata:
      labels:
        id: awesome-job

🔥 ④ command 작성 실수

문제에서 이런 요구가 나옵니다:

sleep 2 && echo done 실행하라

정답:

command:
  - /bin/sh
  - -c
  - sleep 2; echo done

❌ 이렇게 하면 안 됩니다:

command: ["sleep", "2", "&&", "echo", "done"]

이유:
&&는 shell 문법이기 때문에 /bin/sh -c가 필요합니다.


5️⃣ Imperative 방식으로 빠르게 생성하는 방법

시험에서는 속도가 중요합니다.

1️⃣ YAML 뼈대 생성

kubectl create job my-job \
  --image=busybox:1.28 \
  --dry-run=client -o yaml > job.yaml

2️⃣ YAML 수정

  • namespace 추가
  • completions 추가
  • parallelism 추가
  • command 수정
  • labels 추가

3️⃣ 적용

kubectl apply -f job.yaml

6️⃣ Job 확인 방법 (시험에서 필수)

kubectl get jobs -n <namespace>
kubectl get pods -n <namespace>
kubectl describe job <job-name> -n <namespace>

확인 포인트:

  • COMPLETIONS 값
  • Pod 생성 개수
  • 성공 여부

7️⃣ 시험에서 자주 나오는 추가 옵션

✔ backoffLimit

실패 시 재시도 횟수

backoffLimit: 2

✔ activeDeadlineSeconds

최대 실행 시간 제한

activeDeadlineSeconds: 30

30초 넘으면 Job 강제 종료


8️⃣ CKAD 시험 전략

Job 문제 나오면 반드시 체크:

✅ namespace 확인
✅ completions 확인
✅ parallelism 확인
✅ command 형식 확인
✅ labels 위치 확인
✅ restartPolicy 확인

이 6개만 점검해도 대부분 정답입니다.


🎯 마무리

CKAD 시험에서 Job은 단순해 보이지만
parallelism, completions, command 구조에서 실수가 많이 발생합니다.

핵심은:

빠르게 YAML 생성 → 요구사항 정확히 반영 → 즉시 검증

충분히 연습하면 Job 문제는 득점 포인트가 됩니다.