본문으로 건너뛰기

4.4. Jobs (작업)

개요​

Jobs 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 Job을 통합적으로 관리하는 페이지입니다. Job은 하나 이상의 파드를 생성하여 지정된 작업이 성공적으로 완료될 때까지 실행하는 워크로드입니다.

주요 목적:

  • 멀티클러스터 Job 통합 관리
  • 일회성 배치 작업 실행 및 모니터링
  • Job 완료/실패 상태 추적
  • PropagationPolicy 및 OverridePolicy 확인

Job 사용 사례:

  • 데이터베이스 마이그레이션
  • 배치 데이터 처리
  • 백업 및 복원 작업
  • 일회성 스크립트 실행
  • ETL(Extract, Transform, Load) 작업

화면 구성​

Jobs 페이지는 테이블 형태로 Job 목록을 표시합니다.

Jobs 메인 화면

페이지 상단 요소​

요소설명
네임스페이스 필터특정 네임스페이스의 Job만 표시
새로고침 버튼Job 목록 갱신
생성 버튼새 Job 생성 다이얼로그 열기
검색창Job 이름으로 검색

테이블 컬럼​

컬럼설명정렬
이름Job 이름✅
네임스페이스Job이 속한 네임스페이스✅
상태Job 상태 및 완료 현황 (성공/전체)✅
이미지컨테이너 이미지 이름✅
경과시간Job 생성 후 경과 시간✅
작업편집/삭제 버튼-

상태 표시​

상태 컬럼은 Job의 현재 상태와 완료 현황을 표시합니다:

상태설명표시
완료모든 파드가 성공적으로 완료녹색 배지 + N/N
실행 중파드가 실행 중파란색 배지 + N/N
대기 중파드가 스케줄링 대기 중노란색 배지 + 0/N
실패Job 실행 실패빨간색 배지

예: 대기 중 0/1 - 1개 완료 목표 중 0개 완료, 대기 상태

Job 상세 정보​

Job 행을 클릭하면 상세 정보 패널이 열립니다.

Job 상세 정보

상세 패널 헤더​

요소설명
Job 이름선택한 Job 이름
네임스페이스Job이 속한 네임스페이스
상태대기 중/실행 중/완료/실패

액션 버튼​

버튼기능
새로고침Job 정보 갱신
편집YAML 편집 모드
삭제Job 삭제

탭 메뉴​

개요 탭​

Job의 기본 정보, 스펙, 상태 정보를 표시합니다.

기본 정보:

항목설명
이름Job 이름
네임스페이스Job이 속한 네임스페이스
상태대기 중 / 실행 중 / 완료 / 실패
경과시간생성 후 경과 시간
생성일Job 생성 일시

잡 스펙:

항목설명
완료 수 (Completions)성공적으로 완료되어야 하는 파드 수
병렬 처리 (Parallelism)동시에 실행할 수 있는 파드 수
백오프 제한 (Backoff Limit)실패 시 재시도 횟수 제한
활성 기한 (초)Job 실행 제한 시간 (초)

파드 상태:

Job의 파드 현황을 시각적으로 표시합니다:

  • 성공 (Succeeded): 성공적으로 완료된 파드
  • 실행 중 (Running): 현재 실행 중인 파드
  • 대기 중 (Pending): 스케줄링 대기 중인 파드
  • 실패 (Failed): 실패한 파드

잡 상태:

항목설명
성공성공적으로 완료된 파드 수
실패실패한 파드 수
활성현재 실행 중인 파드 수
시작 시간Job 실행 시작 시간
완료 시간Job 완료 시간

컨테이너 이미지:

Job에 정의된 컨테이너 이미지를 표시합니다.

멀티클러스터 정책 탭​

Job에 적용된 멀티 클러스터 정책 정보를 표시합니다.

멀티클러스터 정책 탭

전파 정책 (PropagationPolicy):

컬럼설명
이름PropagationPolicy 이름
네임스페이스정책이 속한 네임스페이스
범위네임스페이스 범위 정책 / 클러스터 범위 정책
대상 클러스터타겟 클러스터 목록

오버라이드 정책 (OverridePolicy):

클러스터별 커스텀 설정이 있는 경우 표시됩니다.

레이블 탭​

Job에 적용된 Kubernetes 레이블 목록을 표시합니다.

어노테이션 탭​

Job에 적용된 어노테이션 목록을 표시합니다.

파드 탭​

해당 Job에서 생성된 파드 목록을 표시합니다.

파드 탭
컬럼설명
이름파드 이름 (예: my-job2-f9wc5)
클러스터파드가 실행 중인 클러스터
상태파드 상태 (실행 중/대기 중/성공/실패)
노드파드가 스케줄된 노드
재시작 횟수파드 재시작 횟수
경과시간파드 생성 후 경과 시간
작업보기/삭제 버튼

이벤트 탭​

Job 관련 Kubernetes 이벤트를 표시합니다.

Job 생성​

새로운 Job을 MCM 컨트롤 플레인에 생성합니다.

입력 항목​

항목필수설명
이름✅Job 이름
네임스페이스✅배포할 네임스페이스
컨테이너 이미지✅컨테이너 이미지 URL
명령어-컨테이너 실행 명령어
완료 수-완료되어야 하는 파드 수 (기본값: 1)
병렬 처리-동시 실행 파드 수 (기본값: 1)
백오프 제한-재시도 횟수 제한 (기본값: 6)
활성 기한-실행 제한 시간 (초)

YAML 편집​

"YAML 편집" 탭에서 Job 정의를 직접 작성할 수 있습니다.

Job 작업​

Job 편집​

  1. Job 선택
  2. 상세 패널에서 "편집" 버튼 클릭
  3. YAML 에디터에서 Job 정의 수정
  4. "저장" 버튼 클릭

참고: 이미 실행 중인 Job의 스펙은 제한적으로만 수정할 수 있습니다.

Job 삭제​

⚠️ 주의: Job을 삭제하면 관련된 모든 파드도 함께 삭제됩니다.

  1. 삭제할 Job 선택
  2. 상세 패널에서 "삭제" 버튼 클릭
  3. 확인 다이얼로그에서 Job 이름 입력
  4. "삭제" 버튼 클릭

사용 예시​

시나리오 1: 데이터베이스 마이그레이션 Job 생성​

  1. "생성" 버튼 클릭
  2. Job 정보 입력:
    • 이름: db-migration
    • 네임스페이스: production
    • 컨테이너 이미지: my-registry/db-migrate:v1.0
    • 명령어: ["./migrate.sh", "--apply"]
  3. "생성" 버튼 클릭
  4. PropagationPolicy로 타겟 클러스터 지정
  5. Job 완료 상태 모니터링

시나리오 2: Job 상태 확인​

  1. Job 목록에서 확인할 Job 클릭
  2. 개요 탭에서 잡 상태 확인:
    • 성공/실패/활성 파드 수
    • 시작 시간 및 완료 시간
  3. 파드 탭에서 개별 파드 상태 확인
  4. 이벤트 탭에서 Job 관련 이벤트 확인

시나리오 3: 병렬 배치 처리​

  1. "생성" 버튼 클릭
  2. Job 정보 입력:
    • 이름: batch-process
    • 완료 수: 10 (총 10개 작업 완료 필요)
    • 병렬 처리: 3 (동시에 3개 파드 실행)
  3. "생성" 버튼 클릭
  4. 개요 탭에서 진행 상황 모니터링:
    • 활성: 최대 3개
    • 성공: 0 → 10까지 증가

시나리오 4: 실패한 Job 재시도 확인​

  1. 실패한 Job 클릭
  2. 개요 탭에서 잡 스펙 확인:
    • 백오프 제한: 재시도 횟수
  3. 이벤트 탭에서 실패 원인 확인
  4. 파드 탭에서 실패한 파드 로그 확인
  5. 필요시 Job 삭제 후 수정하여 재생성

시나리오 5: 멀티클러스터 Job 실행​

  1. Job 생성 및 PropagationPolicy 적용
  2. 상세 패널에서 "멀티클러스터 정책" 탭 확인
  3. 대상 클러스터에 Job이 분배되었는지 확인
  4. 파드 탭에서 클러스터별 파드 실행 현황 확인
  5. 각 클러스터에서 Job이 완료될 때까지 모니터링

관련 개념​

Job vs CronJob​

특성JobCronJob
실행 방식일회성 실행주기적 스케줄 실행
트리거생성 시 즉시 실행크론 스케줄에 따라 실행
사용 사례마이그레이션, 백업주기적 리포트, 정기 백업
관리수동 생성/삭제자동 Job 생성

완료 수와 병렬 처리​

완료 수 (Completions):

  • Job이 성공으로 간주되기 위해 완료해야 하는 파드 수
  • 기본값: 1

병렬 처리 (Parallelism):

  • 동시에 실행할 수 있는 파드 수
  • 기본값: 1
  • 병렬 처리가 완료 수보다 작으면 순차적으로 파드 생성

백오프 제한​

  • 파드 실패 시 재시도 횟수 제한
  • 기본값: 6
  • 백오프 제한에 도달하면 Job은 실패로 표시
  • 재시도 간격은 지수적으로 증가 (10초, 20초, 40초...)

TTL 컨트롤러​

완료된 Job을 자동으로 정리하는 기능:

  • ttlSecondsAfterFinished: 완료 후 자동 삭제까지 대기 시간
  • 예: ttlSecondsAfterFinished: 3600 - 완료 1시간 후 자동 삭제

활성 기한​

  • activeDeadlineSeconds: Job 실행 최대 시간 제한
  • 시간 초과 시 Job 및 모든 파드 종료
  • 장시간 실행 방지에 유용

다음 단계​