job 명령어를 사용하면 VESSL Cloud에서 배치 컴퓨트 Job을 생성하고 관리할 수 있어요. Job은 지정된 클러스터와 리소스 설정에서 명령어를 실행하고 완료되면 종료돼요.
list
현재 팀의 Job을 조회해요.
| 플래그 | 약어 | 설명 |
|---|
--state | -s | Job 상태로 필터링 (예: running, completed, failed) |
--page | | 페이지네이션 페이지 번호 |
--per-page | | 페이지당 결과 수 |
--hide-deleted | | 취소 및 종료된 Job 숨기기 |
예시:
vesslctl job list --state running --per-page 20
show
특정 Job의 상세 정보를 표시해요.
create
새 Job을 생성하고 제출해요. 플래그를 사용해 인라인으로 설정하거나 JSON 파일로 제공할 수 있어요.
vesslctl job create --name my-job --resource-spec <slug> --image <image> --cmd "python train.py"
| 플래그 | 약어 | 필수 | 설명 |
|---|
--file | -f | 아니오 | JSON 설정 파일 경로 (인라인 플래그 대신 사용) |
--name | -n | 예 | Job 이름 |
--resource-spec | -r | 예 | 리소스 스펙 슬러그 (클러스터는 자동으로 결정돼요) |
--image | -i | 예 | 사용할 컨테이너 이미지 |
--cmd | | 예 | 실행할 명령어 |
--env | -e | 아니오 | KEY=VALUE 형식의 환경 변수 (반복 사용 가능) |
--object-volume | | 아니오 | SLUG:MOUNT_PATH 형식으로 Object volume 마운트 (반복 사용 가능) |
--cluster-volume | | 아니오 | SLUG:MOUNT_PATH 형식으로 Cluster volume 마운트 (반복 사용 가능) |
--image-pull-policy | | 아니오 | 이미지 풀 정책: Always 또는 IfNotPresent |
--tag | | 아니오 | 부착할 태그 값 (반복 사용 가능, 미존재 시 자동 생성) |
인라인 플래그 예시:
vesslctl job create \
--name my-training-job \
--resource-spec <spec-name> \
--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>:/data
vesslctl cluster list와 vesslctl resource-spec list로 사용 가능한 클러스터와 GPU 스펙을 확인할 수 있어요.
JSON 설정 파일 예시:
vesslctl job create --file job-config.json
terminate
실행 중인 Job을 종료해요.
vesslctl job terminate <slug>
| 플래그 | 약어 | 설명 |
|---|
--yes | -y | 확인 프롬프트 건너뛰기 |
export
Job의 설정을 JSON으로 내보내요. Job 설정을 재사용하거나 버전 관리할 때 유용해요.
vesslctl job export <slug>
출력을 파일로 저장하려면 파이프를 사용해 주세요:
vesslctl job export my-job-abc123 > job-config.json
logs
Job의 로그를 확인해요.
| 플래그 | 약어 | 기본값 | 설명 |
|---|
--limit | | 100 | 반환할 로그 줄 수 |
--follow | -f | | 실시간으로 로그를 스트리밍 |
예시:
vesslctl job logs my-job-abc123 --follow
tag
Job의 태그를 관리해요. job tag attach와 job tag detach에 대한 자세한 내용은 vesslctl tag를 참고하세요.