요구 사항
설치 전에 확인할 하드웨어, 소프트웨어, 포트
설치를 시작하기 전에 서버 한 대가 아래 조건을 갖추었는지 확인합니다. 기본 구성은 서버 한 대(단일 노드) 에 앱과 k3s 를 함께 올리는 형태입니다.
하드웨어
| 항목 | 요구 사항 |
|---|---|
| CPU 아키텍처 | amd64(x86_64) 또는 arm64(aarch64). Compose 의 모든 이미지는 두 아키텍처를 다 지원하도록 고정되어 있습니다 |
| GPU | NVIDIA GPU (학습·GPU 서빙에 필요). GPU 가 없어도 플랫폼은 뜨지만, GPU 가 필요한 학습(예: 포인트 클라우드 학습)은 제출이 거부됩니다 |
| 메모리 | 앱 컨테이너 상한이 기본 16 GB(GEO_APP_MEM_LIMIT)입니다. 여기에 Postgres·RustFS 와 학습 파드가 쓸 메모리를 더해 잡습니다 |
| 디스크 | 데이터셋·모델 아티팩트·컨테이너 이미지가 모두 RustFS(도커 볼륨)에 쌓입니다. 백업을 같은 디스크에 두지 않도록 별도 디스크나 NAS 를 하나 더 준비하는 것을 권합니다 |
소프트웨어
| 항목 | 용도 | 비고 |
|---|---|---|
| Linux | 서버 OS | systemd 가 있어야 백업 타이머를 쓸 수 있습니다 |
| Docker Engine + Compose v2 | 앱과 부속 서비스 실행 | docker compose 명령이 동작해야 합니다 |
| k3s | 학습·빌드·서빙 파드 실행 | 앱이 /etc/rancher/k3s/k3s.yaml 로 접속합니다 |
| NVIDIA 드라이버 + NVIDIA Container Toolkit | 파드에서 GPU 사용 | k3s 가 nvidia 런타임을 찾을 수 있어야 합니다 |
| NVIDIA device plugin | 노드가 GPU 를 nvidia.com/gpu 자원으로 클러스터에 알림 | 설치 파일이 함께 제공됩니다. k3s·GPU 준비 참고 |
RuntimeClass nvidia | GPU 파드가 드라이버를 받는 통로 | 이름이 nvidia 여야 합니다(GEO_MLOPS_SERVING_GPU_RUNTIME_CLASS) |
포트
모든 포트는 서버의 0.0.0.0 에 열립니다. 밖에서 들어오는 요청이 닿는 곳은 10000 하나(API·MLflow·레지스트리)이고, 나머지는 서버 안이나 클러스터 파드에서만 쓰입니다. 방화벽에서는 10000(또는 앞단 프록시의 443)만 밖으로 여는 것을 권합니다. 웹 화면은 정적 파일이라 별도의 웹 서버나 정적 호스팅에 올립니다. Docker Compose 로 설치의 "웹 화면 올리기" 를 보세요.
| 포트 | 서비스 | 누가 쓰나 |
|---|---|---|
| 10000 | 앱 (웹 화면용 API, /mlflow, 컨테이너 레지스트리 /v2) | 사용자 브라우저, MLflow 클라이언트, 엣지 장비, 클러스터 파드 |
| 5433 | PostgreSQL (앱과 MLflow 가 함께 씀) | 앱, 백업 스크립트 |
| 9000 | RustFS S3 API | 앱, 학습 파드(데이터셋 스테이징) |
| 9001 | RustFS 웹 콘솔 | 운영자(필요할 때만) |
| 9090 | Prometheus | 앱(콘솔 화면이 대신 보여 줌) |
| 9093 | Alertmanager | 앱(콘솔 화면이 대신 보여 줌) |
| 5000 | proxpi (pip 패키지 캐시) | 빌드 파드 |
| 3142 | apt-cacher-ng (apt 패키지 캐시) | 빌드 파드 |
다음: 구성 요소