Job은 vesslctl job create 한 줄로 제출하면 컨테이너에서 명령어를 실행한 뒤 자동으로 종료돼요. 학습·추론·배치 처리 워크로드에 적합해요. 제출은 CLI 전용이고, 콘솔에서는 상태·로그·메트릭만 확인해요. CLI 셋업이 처음이라면 CLI 빠르게 시작하기를 먼저 봐주세요.
Prerequisites
제출하기
클러스터, 리소스 스펙, 컨테이너 이미지, 실행할 명령어, 그리고 필요한 볼륨이나 환경 변수를 지정해 주세요.
vesslctl job create \
--name my-training-job \
--resource-spec <spec-slug> \
--image quay.io/vessl-ai/torch:2.9.1-cuda13.0.1-py3.13-slim \
--cmd "python train.py --epochs 10" \
--env WANDB_API_KEY=<your-key> \
--object-volume <volume-slug>:/output \
--tag training-run-2026-04
사용 가능한 클러스터와 GPU 스펙은 vesslctl cluster list와 vesslctl resource-spec list로 확인할 수 있어요. 전체 플래그 목록은 vesslctl job create에서 볼 수 있어요.
결과 파일 저장하기
Job은 임시 컨테이너에서 실행되기 때문에 마운트된 볼륨 밖에 저장한 파일은 Job이 끝나면 사라져요. 결과를 남기려면 영구 볼륨(persistent volume)을 하나 이상 연결해 주세요.
- Object storage (
--object-volume): 클러스터 간에 공유돼요. 학습된 모델이나 평가 지표처럼 최종 결과물을 저장할 때 좋아요. /output 같은 별도 경로에 마운트하세요.
- Cluster storage (
--cluster-volume): 클러스터 안에서 빠르게 동작해요. 장기 학습 중간 체크포인트를 남길 때 좋아요. /workspace 같은 경로에 마운트하세요.
vesslctl job create \
--name my-training-job \
--resource-spec <spec-slug> \
--image quay.io/vessl-ai/torch:2.9.1-cuda13.0.1-py3.13-slim \
--object-volume <output-volume-slug>:/output \
--cmd "python train.py --output /output"
Temporary storage는 Job이 succeeded 상태로 끝나도 함께 삭제돼요. 학습 스크립트가 /tmp나 현재 디렉터리에 결과를 쓰는데 볼륨을 연결하지 않으면 결과가 전부 사라져요.
Job 설정 재사용하기
기존 Job의 설정을 JSON으로 내보내 두면 나중에 그대로 재제출할 수 있어요:
vesslctl job export my-job-abc123 > job-config.json
vesslctl job create --file job-config.json
Workspace 안에서 Job 제출하기
실행 중인 Workspace에는 워크로드 토큰으로 인증된 vesslctl이 미리 세팅돼 있어요. JupyterLab 터미널에서 스크립트를 다듬다가 같은 셸에서 그대로 배치 잡으로 제출할 수 있어요. 자세한 내용은 vesslctl workspace를 참고하세요.
함께 보기