본문으로 건너뛰기

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 및 모든 파드 종료
  • 장시간 실행 방지에 유용

다음 단계