요구 사항
설치 전에 확인할 하드웨어, 소프트웨어, 포트
기본 구성은 서버 한 대(단일 노드) 에 앱과 k3s 를 함께 설치.
하드웨어
| 항목 | 요구 사항 |
|---|---|
| CPU 아키텍처 | amd64(x86_64) 또는 arm64(aarch64). Compose 의 모든 이미지는 두 아키텍처를 모두 지원하는 버전으로 고정. |
| GPU | NVIDIA GPU (학습·GPU 서빙에 필요). GPU 가 없어도 플랫폼은 실행되지만, GPU 가 필요한 학습(예: 포인트 클라우드 학습)은 제출 거부. |
| 메모리 | 앱 컨테이너 상한은 기본 16 GB(GEO_APP_MEM_LIMIT). 여기에 Postgres·RustFS 와 학습 파드가 사용할 메모리를 더해 산정. 학습 파드 하나의 상한은 기본 64 GiB(GEO_MLOPS_TRAINING_RUNTIME_MEMORY_LIMIT). |
| 디스크 | 데이터셋·모델 아티팩트·컨테이너 이미지 모두 RustFS(도커 볼륨)에 저장. 백업은 같은 디스크에 두지 않음. 별도 디스크나 NAS 를 하나 더 준비. |
소프트웨어
| 항목 | 용도 | 비고 |
|---|---|---|
| Linux | 서버 OS | 백업 타이머 사용에 systemd 필요 |
| Docker Engine + Compose v2 | 앱과 부속 서비스 실행 | docker compose 명령 동작 필요. Compose 파일의 env_file 이 required: false 문법을 사용하므로 Compose 2.24 이상 필요. |
| 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 패키지 캐시) | 빌드 파드 |
다음: 구성 요소