콘텐츠로 이동

워크스페이스 및 워크스페이스 템플릿

워크스페이스는 여러 사용자가 함께 쓰는 GPU 워크스테이션에서 사용자의 Linux 계정으로 실행되는 컨테이너입니다. CPU, 메모리, GPU, 디스크마다 개별 제한이 적용됩니다. 사용자 또는 관리자가 중지하지 않는 한 계속 실행됩니다. 현재 버전에서는 유휴 자동 중지 기능이 없습니다.

실행 중인 워크스페이스와 접힌 자원 요약이 보이는 워크스페이스 목록

워크스페이스 템플릿은 소프트웨어 환경을 지정합니다. 워크스페이스를 만들 때 워크스페이스 템플릿을 하나 선택하며 생성 후에는 바꿀 수 없습니다. 각 워크스페이스 템플릿에는 자원 기본값이 들어 있습니다. 생성 화면은 이 값으로 추천값을 계산해 보여 줍니다. 사용자는 그대로 받아들여도 되고 원하는 대로 조정해도 됩니다.

LabPod에는 다음 글로벌 워크스페이스 템플릿이 기본 제공됩니다.

워크스페이스 템플릿포함 내용GPU
PyTorch JupyterLabJupyterLab + PyTorch, CUDA 지원. 설치 후 TensorBoard 런처 사용 가능기본 선택
TensorFlow JupyterLabJupyterLab + TensorFlow. TensorBoard 런처 포함기본 선택
Data Science JupyterLab (CPU)NumPy, SciPy, pandas, scikit-learn, matplotlib없음
Code Server브라우저 기반 VS Code, Open VSX 확장 지원선택

기본 JupyterLab 워크스페이스 템플릿은 LabPod이 빌드해 GitHub Container Registry(ghcr.io/labpod/*)로 배포하는 공개 이미지를 사용합니다. PyTorch JupyterLab의 이미지는 ghcr.io/labpod/pytorch-jupyter입니다. CUDA 버전 v2-cu121/v2-cu126/v2-cu129 중 하나를 첫 시작 시 호스트 NVIDIA 드라이버와 GPU에 맞춰 자동으로 고르며 관리자가 특정 버전으로 고정할 수도 있습니다. TensorFlow JupyterLab은 ghcr.io/labpod/tensorflow-jupyter:v2-cu125를 씁니다. 이 이미지는 CUDA를 자체 번들해 구버전 드라이버에서도 동작합니다. **Data Science JupyterLab (CPU)**는 CPU 전용인 ghcr.io/labpod/scipy-jupyter:v2-py312를 씁니다.

CUDA Composite Workspace, LLM/Hugging Face, ComfyUI, R ML JupyterLab, RStudio Server, Parallel Programming, Miniforge JupyterLab, Python (uv) JupyterLab 여덟 개도 신규 설치에서 기본으로 활성화됩니다. 각각 검증된 ghcr.io/labpod/* 이미지를 직접 받아 옵니다. MATLAB과 MS Code Serve-Web은 LabPod가 완성된 이미지로 재배포할 수 없으므로 로컬 레시피가 있는 비활성 워크스페이스 템플릿으로 제공됩니다. 관리자가 필요한 약관을 승인하고 워크스페이스 템플릿을 활성화하면 각 연구자가 자신의 계정에서 빌드합니다. PyTorch 데모 쇼케이스와 Anaconda JupyterLab도 비활성 상태로 제공되지만, 이건 선택 사용 항목이기 때문일 뿐 이미지를 받는 데 빌드는 필요 없습니다. 각 워크스페이스 템플릿의 구성과 어떤 것이 Published image이고 어떤 것이 Locally built인지는 기본 제공 워크스페이스 템플릿 문서를 참고하세요.

관리자가 추가 워크스페이스 템플릿을 등록했을 수도 있고 사용자가 직접 만들 수도 있습니다. 아래 사용자 소유 워크스페이스 템플릿을 참고하세요.

워크스페이스 템플릿, 제안된 이름, 추천 자원이 표시된 워크스페이스 생성 양식

  1. 워크스페이스 목록에서 Set up workspace를 누릅니다. 워크스페이스 템플릿 갤러리에서는 Start from scratch로 같은 양식을 엽니다.
  2. 워크스페이스 템플릿을 확인합니다. 관리자가 추천하는 워크스페이스 템플릿이 맨 앞에 나오고 기본으로 선택되며 Recommended 표시가 붙습니다. GPU를 쓰는 워크스페이스 템플릿에는 GPU 표시가 붙습니다. 설명이 있으면 펼쳐지며 이미지 준비가 아직 안 된 워크스페이스 템플릿은 Setup needed로 표시됩니다.
  3. 생성 양식은 제안된 이름과 추천 자원(프로세서, 메모리, 가속기)을 미리 채워 줍니다. 이름은 원하는 대로 바꾸면 되고 추천 자원 값은 시작점일 뿐이라 반드시 그대로 쓰지 않아도 됩니다. 다른 값이 필요하면 Customize를 여세요.
  4. 이미지가 아직 준비되어 있지 않아도 됩니다. Create workspace는 이미지가 다운로드되었든 빌드되었든 상관없이 항상 워크스페이스를 등록만 합니다. LabPod는 생성 시점에도, 나중에 워크스페이스를 시작할 때도 없는 이미지를 pull하거나 build하지 않습니다. 이미지가 준비되지 않았다면 워크스페이스 자체 페이지에서 나중에 준비하면 됩니다.
  5. 정확한 CPU/메모리, 특정 GPU 공유 모드, 폴더, 환경 변수가 필요하거나 선언된 포트와 이미지 세부 정보를 보고 싶다면 Customize를 엽니다. Customize를 다시 접어도 입력한 값은 사라지지 않습니다.
  6. Create workspace를 누릅니다. 이 단계는 워크스페이스를 등록할 뿐, 이미지를 다운로드하거나 빌드하지 않고 컨테이너를 시작하거나 CPU/메모리/GPU를 점유하지도 않습니다. 이미지 준비가 필요하면 워크스페이스 자체 페이지에서 Download image 또는 Build image를 선택하고 (이미지가 오래됐다면 Rebuild image), 그다음 Start workspace를 눌러 할당량을 점유하고 컨테이너를 올립니다.

Customize 펼치기가 열려 Diagnostics 섹션이 보이는 워크스페이스 생성 양식

고급 설정은 생성 양식의 Customize 하나에 모여 있으며 다음 순서의 섹션으로 나뉩니다. Compute(정확한 CPU/메모리, GPU 개수, Light/Medium/Heavy 용도 선택기, 그리고 whole/HAMi/MIG와 각 모드별 필드를 노출하는 중첩된 Advanced: pick exact GPU mode), Folders(공유 프리셋과 사용자 지정 마운트), Environment(이름/값 쌍), Apps & network(해당 워크스페이스 템플릿이 선언한 포트), Diagnostics(이미지 참조, 워크스페이스 템플릿 노트, pull/build 상태와 로그)입니다. 입력한 값이 검증에 실패하면 LabPod은 Customize를 자동으로 열고 문제가 된 필드로 초점을 옮겨 줍니다.

기본적으로 ~/work 디렉터리가 모든 워크스페이스에서 /work로 매핑됩니다. Customize → Folders에서 다음을 추가로 포함할 수 있습니다.

  • 공유 프리셋: 관리자가 설정한 경로(데이터셋, 모델 가중치 등)로 기본적으로 모두 체크되어 있습니다.
  • 사용자 지정 폴더: 읽기 권한이 있는 호스트의 임의 디렉터리. 워크스페이스별로 저장되며 매번 시작 시 다시 적용됩니다.

Manage workspace → Settings에서 폴더를 변경하면 다음 시작 시에 적용됩니다.

워크스페이스가 시작될 때 주입할 NAME=value 쌍을 설정합니다. HF_HOME 재정의, API 키 설정, CUDA 동작 조정 등에 유용합니다. Manage workspace → Settings → Environment에서 편집하며 다음 시작 시 적용됩니다.

사용자 소유 워크스페이스 템플릿

섹션 제목: “사용자 소유 워크스페이스 템플릿”

워크스페이스 구성을 자신만의 워크스페이스 템플릿으로 저장할 수 있습니다. 번들 파일로 내보낸 뒤 나중에 다시 가져오면 됩니다. Advanced tools 메뉴에서 Workspace templates를 여세요. 사용자 소유 워크스페이스 템플릿은 My workspace templates 탭에 표시되며 본인 계정에만 공개됩니다.

작업설명
Create workspace워크스페이스를 등록합니다. CPU/메모리/GPU는 점유하지 않습니다
Start workspacepodman run으로 컨테이너를 시작하고 모든 설정을 적용합니다. 없는 이미지를 pull하거나 build하지 않습니다. 할당량을 점유하는 단계입니다
중지컨테이너에 SIGTERM을 보낸 후 단계적으로 종료합니다
삭제컨테이너를 제거하고 GPU 슬롯을 해제합니다. 아래 참고

중요한 데이터는 모두 유지됩니다.

  • /work: 호스트 마운트이므로 컨테이너 내부가 아닌 호스트에 저장되어 유지됩니다.
  • 워크스페이스 홈(/home/<사용자명>): 호스트의 워크스페이스별 디렉터리가 백업으로 사용되므로 conda 환경, pip 설치, dotfiles, 셸 기록 모두 중지/시작 간에 유지됩니다.
  • 관리자가 설정한 공유 마운트 내의 파일.

컨테이너 내부에서 실행 중인 프로세스는 유지되지 않습니다. 커널, 학습 작업, 터미널 세션이 모두 종료됩니다.

삭제하면 워크스페이스의 구성과 컨테이너가 제거됩니다. 워크스페이스별 홈 디렉터리는 삭제되지 않고 계정 아래의 복구 가능한 위치로 보관되므로 그 안의 내용이 필요하면 관리자에게 문의하세요. /work 디렉터리는 건드리지 않습니다. /work는 워크스페이스보다 오래 지속되는 호스트 디렉터리이기 때문입니다.

삭제는 Manage workspace → Settings → Danger에 있으며 워크스페이스 이름을 입력하고 확인 체크박스를 선택해야 버튼이 활성화됩니다. 워크스페이스 삭제는 소유자만 할 수 있습니다. 관리자는 다른 사용자의 워크스페이스를 삭제할 수 없습니다. 다른 사용자의 워크스페이스에서 자원을 회수하려면 관리자가 강제 중지할 수는 있지만 강제 중지가 삭제를 뜻하지는 않습니다 (생명주기 참고).

실행 중이거나 중지된 워크스페이스 관리하기

섹션 제목: “실행 중이거나 중지된 워크스페이스 관리하기”

워크스페이스 상세 페이지에는 메인 앱과 상태에 맞는 버튼 하나(Start, Resume, Launch, Open 중 하나. 빠른 시작 참고), 그리고 Terminal과 Files 바로가기가 가장 먼저 나옵니다. 실행 중이면 읽기 전용 Resource usage 미터와 Apps 상태 목록이 Manage workspace 위에 표시됩니다. 제어 기능은 페이지 아래쪽의 이 펼치기 안에 있습니다.

  • Open at sign-in: 이 워크스페이스를 로그인 직후 바로 여는 핀입니다. 로그인하면 워크스페이스 목록을 건너뜁니다. 사용자당 하나만 설정할 수 있으며, 다시 누르면 해제됩니다.
  • App controls: 설치된 런처마다 카드 하나씩 표시되며 Launch, Stop, Restart를 제어합니다.
  • Extra apps: 워크스페이스 안에서 직접 실행하는 웹 앱(TensorBoard, Gradio, Streamlit, FastAPI 등)은 Add app으로 등록하면 LabPod이 여기에 링크를 만들어 줍니다. 실행 중인 앱마다 Copy link로 링크를 복사할 수 있습니다. 추가 앱 & 포트 참고.
  • Settings: Resources(CPU, 메모리, GPU 개수. GPU 모드는 생성 시 고정됩니다), Folders, Environment, 그리고 소유자에게만 보이는 Danger(삭제)로 구성된 대화상자입니다. 모든 변경 사항은 다음 시작 시 적용됩니다.
  • Technical logs: 컨테이너와 LabPod이 관리하는 각 앱의 stdout/stderr를 크기 제한을 두고 계속 보여 줍니다. 관리자와 함께 문제를 진단할 때 씁니다. 앱이 실패하면 바로 View app logs로 이동할 수 있고 기록된 출력은 앱과 워크스페이스를 다시 시작해도 남습니다(CLI에서는 labpod ws logs <workspace> --launcher <name>로도 볼 수 있습니다).
  • 중지 / 강제 중지.

Start나 Resume이 워크스페이스의 이미지를 찾지 못하면(예: 이미지가 정리되어 사라진 경우) 대시보드와 워크스페이스 페이지에 그 자리에서 바로 내려받을 수 있는 버튼이 나타납니다. 완료되거나 취소될 때까지 진행 상황을 보여준 뒤 Start나 Resume을 다시 누르라고 안내합니다.