본문 바로가기
[GPUaaS]/TensorFlow

[쿠버네티스 워크로드 개념] TFJob / CronJob / Job / Deployment / Pod

by METAVERSE STORY 2026. 1. 26.
반응형



 

쿠버네티스 “워크로드 개념”을 한 번에 정리할 수 있는 포인트라서,
TFJob까지 묶어서 역할·수명·재시작·확장 관점으로 설명해줄게.


1️⃣ Pod – 모든 것의 출발점

✅ 뭐냐면

  • 쿠버네티스에서 실제로 실행되는 최소 단위
  • 하나 이상의 컨테이너 묶음

특징

  • 일회성 존재
  • 죽으면 끝 (스스로 복구 안 됨)
  • IP, 볼륨, 네임스페이스 공유

언제 쓰나

  • 테스트
  • 디버깅
  • 절대 운영용 아님
 
apiVersion: v1 kind: Pod

📌 운영에서는 Pod를 직접 만들지 않는다 → 항상 상위 컨트롤러 사용

 

 


2️⃣ Deployment – “계속 살아 있어야 하는 서비스”

✅ 뭐냐면

  • 무한히 실행되어야 하는 앱을 관리
  • ReplicaSet을 통해 Pod 유지

특징

  • 항상 지정한 개수만큼 Pod 유지
  • 롤링 업데이트 지원
  • 장애 시 자동 복구

대표 사용처

  • API 서버
  • 웹 서비스
  • 대시보드
  • inference 서버
 
apiVersion: apps/v1
kind: Deployment
 
 
 

📌 “서비스형 워크로드”

 

 

 


3️⃣ Job – “한 번 실행하고 끝”

✅ 뭐냐면

  • 작업을 반드시 완료해야 하는 워크로드
  • 성공하면 종료됨

특징

  • 성공/실패 기준 존재
  • 실패 시 재시도 가능
  • 완료되면 Pod 종료

대표 사용처

  • 배치 처리
  • 데이터 전처리
  • 모델 학습 (단일 노드)
  • 마이그레이션
 
apiVersion: batch/v1
kind: Job
 
 
 

📌 “완료가 목표”

 

 

 


4️⃣ CronJob – “Job을 정기적으로”

✅ 뭐냐면

  • Job을 주기적으로 실행
  • 내부적으로 Job을 생성함

특징

  • crontab 문법 사용
  • 주기 실행
  • 실패 시 재실행 가능

대표 사용처

  • 정기 백업
  • 로그 정리
  • 주기적 데이터 수집
 
apiVersion: batch/v1
kind: CronJob
 
 
 

📌 “정기 배치”

 

 

 


5️⃣ TFJob – “TensorFlow 분산 학습 전용 컨트롤러”

이제 핵심 🔥


TFJob은 뭐야?

✅ Kubeflow에서 제공하는 CRD (Custom Resource)

  • 쿠버네티스 기본 리소스 아님
  • 분산 TensorFlow 학습을 위해 만들어짐
 
apiVersion: kubeflow.org/v1
kind: TFJob
 
 
 

 


TFJob이 Deployment/Job이랑 다른 이유

❌ Job으로 안 되는 것

  • 분산 학습 시 역할 구분 필요
    • Chief
    • Worker
    • ParameterServer (PS)
  • 각 Pod의 환경변수 자동 설정 필요
  • 전체 학습 성공/실패 판단 필요

👉 Job으로 하면 전부 수동 구성


TFJob이 해주는 일

기능 설명
역할 분리 Chief / Worker / PS
Pod 자동 생성 역할별 Replica 생성
통신 환경변수 TF_CONFIG 자동 주입
전체 성공 판단 모든 Worker 완료 시 성공
재시작 정책 역할별 restartPolicy
스케줄링 GPU, Node Affinity 적용

TFJob 구조 예시

 
spec:
  tfReplicaSpecs:
    Chief:
      replicas: 1
    Worker:
      replicas: 4
 
 
 

👉 내부적으로는 Pod + Job 비슷한 로직이지만
👉 “학습 프레임워크 전용 오케스트레이터”

 

 

 


6️⃣ 한 방에 비교 표 📊

리소스 목적 실행 형태 재시작 대표 사용
Pod 컨테이너 실행 1회 테스트
Deployment 서비스 유지 무한 API / 웹
Job 작업 완료 1회 배치
CronJob 정기 작업 반복 스케줄 배치
TFJob 분산 학습 학습 종료 시 종료 GPU 학습

7️⃣ 그래서 언제 뭘 써야 하나?

✅ GPU 학습 기준 정리

상황 추천
단일 GPU 학습 Job
분산 TensorFlow TFJob
PyTorch 분산 PyTorchJob
추론 서버 Deployment
정기 학습 CronJob + TFJob

8️⃣ 핵심 요약 (면접용 문장)

Pod는 실행 단위이고, Deployment는 서비스 유지용,
Job/CronJob은 완료형 배치 작업이며,
TFJob은 TensorFlow 분산 학습을 위해 Job을 확장한 Kubeflow CRD이다.

 

 

 

반응형

댓글