설치를 시작하기 전에 서버 한 대가 아래 조건을 갖추었는지 확인합니다. 기본 구성은 서버 한 대(단일 노드) 에 앱과 k3s 를 함께 올리는 형태입니다.

하드웨어

항목요구 사항
CPU 아키텍처amd64(x86_64) 또는 arm64(aarch64). Compose 의 모든 이미지는 두 아키텍처를 다 지원하도록 고정되어 있습니다
GPUNVIDIA GPU (학습·GPU 서빙에 필요). GPU 가 없어도 플랫폼은 뜨지만, GPU 가 필요한 학습(예: 포인트 클라우드 학습)은 제출이 거부됩니다
메모리앱 컨테이너 상한이 기본 16 GB(GEO_APP_MEM_LIMIT)입니다. 여기에 Postgres·RustFS 와 학습 파드가 쓸 메모리를 더해 잡습니다
디스크데이터셋·모델 아티팩트·컨테이너 이미지가 모두 RustFS(도커 볼륨)에 쌓입니다. 백업을 같은 디스크에 두지 않도록 별도 디스크나 NAS 를 하나 더 준비하는 것을 권합니다

소프트웨어

항목용도비고
Linux서버 OSsystemd 가 있어야 백업 타이머를 쓸 수 있습니다
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 nvidiaGPU 파드가 드라이버를 받는 통로이름이 nvidia 여야 합니다(GEO_MLOPS_SERVING_GPU_RUNTIME_CLASS)

포트

모든 포트는 서버의 0.0.0.0 에 열립니다. 밖에서 들어오는 요청이 닿는 곳은 10000 하나(API·MLflow·레지스트리)이고, 나머지는 서버 안이나 클러스터 파드에서만 쓰입니다. 방화벽에서는 10000(또는 앞단 프록시의 443)만 밖으로 여는 것을 권합니다. 웹 화면은 정적 파일이라 별도의 웹 서버나 정적 호스팅에 올립니다. Docker Compose 로 설치의 "웹 화면 올리기" 를 보세요.

포트서비스누가 쓰나
10000앱 (웹 화면용 API, /mlflow, 컨테이너 레지스트리 /v2)사용자 브라우저, MLflow 클라이언트, 엣지 장비, 클러스터 파드
5433PostgreSQL (앱과 MLflow 가 함께 씀)앱, 백업 스크립트
9000RustFS S3 API앱, 학습 파드(데이터셋 스테이징)
9001RustFS 웹 콘솔운영자(필요할 때만)
9090Prometheus앱(콘솔 화면이 대신 보여 줌)
9093Alertmanager앱(콘솔 화면이 대신 보여 줌)
5000proxpi (pip 패키지 캐시)빌드 파드
3142apt-cacher-ng (apt 패키지 캐시)빌드 파드

다음: 구성 요소

2026-09-21 기준 플랫폼에 맞춰 작성했습니다.

© Geo-MLOps