설치 가이드¶
이 가이드는 Continuum Router를 설치하고 설정하는 다양한 방법을 다룹니다.
시스템 요구 사항¶
- 운영 체제: Linux, macOS, 또는 Windows (WSL2 통해)
- 아키텍처: x86_64 또는 ARM64
- 메모리: 최소 256MB RAM (512MB 권장)
- 디스크 공간: 바이너리 및 설정을 위한 100MB
설치 방법¶
릴리스 바이너리에서 설치 (권장)¶
가장 쉬운 방법은 GitHub 릴리스에서 사전 빌드된 바이너리를 다운로드하는 것입니다.
Linux (x86_64)¶
# 최신 릴리스 다운로드
curl -L https://github.com/lablup/continuum-router/releases/latest/download/continuum-router-linux-x86_64.tar.gz | tar -xz
# PATH로 이동
sudo mv continuum-router /usr/local/bin/
# 설치 확인
continuum-router --version
Linux (aarch64)¶
# 최신 릴리스 다운로드
curl -L https://github.com/lablup/continuum-router/releases/latest/download/continuum-router-linux-aarch64.tar.gz | tar -xz
# PATH로 이동
sudo mv continuum-router /usr/local/bin/
# 설치 확인
continuum-router --version
macOS (Apple Silicon)¶
# 최신 릴리스 다운로드
curl -LO https://github.com/lablup/continuum-router/releases/latest/download/continuum-router-macos-aarch64.zip
# 압축 해제
unzip continuum-router-macos-aarch64.zip
# PATH로 이동
sudo mv continuum-router /usr/local/bin/
# 설치 확인
continuum-router --version
소스에서 빌드¶
소스에서 빌드하면 최신 기능을 사용하고 사용자 정의가 가능합니다.
사전 요구 사항¶
- Rust 1.75 이상
- Git
- C 컴파일러 (gcc, clang, 또는 MSVC)
빌드 단계¶
# 저장소 복제
git clone https://github.com/lablup/continuum-router.git
cd continuum-router
# 개발 빌드 (빠른 컴파일, 큰 바이너리)
cargo build
# 개발 빌드 실행
./target/debug/continuum-router --version
# 최적화된 릴리스 빌드 (느린 컴파일, 작고 빠른 바이너리)
cargo build --release
# 릴리스 빌드 실행
./target/release/continuum-router --version
# 시스템에 설치 (선택 사항)
cargo install --path .
Docker 사용¶
Docker는 다양한 시스템에서 일관된 환경을 제공합니다.
Docker로 빠른 시작¶
# 기본 설정으로 실행
docker run -p 8080:8080 ghcr.io/lablup/continuum-router:latest
# 백엔드 설정과 함께 실행
docker run -p 8080:8080 \
-e CONTINUUM_BACKEND_URLS="http://host.docker.internal:11434" \
ghcr.io/lablup/continuum-router:latest
# 설정 파일과 함께 실행
docker run -p 8080:8080 \
-v $(pwd)/config.yaml:/app/config.yaml \
ghcr.io/lablup/continuum-router:latest
Docker Compose 설정¶
docker-compose.yml 파일을 생성하세요:
version: '3.8'
services:
continuum-router:
image: ghcr.io/lablup/continuum-router:latest
ports:
- "8080:8080"
environment:
- CONTINUUM_BACKEND_URLS=http://ollama:11434,http://lm-studio:1234
- CONTINUUM_LOG_LEVEL=info
volumes:
- ./config.yaml:/app/config.yaml
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
# 예제: Ollama 백엔드
ollama:
image: ollama/ollama:latest
volumes:
- ollama_data:/root/.ollama
ports:
- "11434:11434"
volumes:
ollama_data:
Docker Compose로 실행:
Homebrew 사용 (macOS)¶
패키지 관리자 사용¶
Debian/Ubuntu (APT)¶
# 출시 예정
sudo add-apt-repository ppa:lablup/continuum-router
sudo apt update
sudo apt install continuum-router
RedHat/CentOS (YUM)¶
Arch Linux (AUR)¶
설치 후 설정¶
1. 설정 생성¶
# 기본 설정 생성
continuum-router --generate-config > config.yaml
# 모든 기능이 포함된 종합 설정 생성
continuum-router --generate-comprehensive-config > config.yaml
# 설정 편집
nano config.yaml
2. 시스템 서비스로 설정¶
Linux (systemd)¶
/etc/systemd/system/continuum-router.service를 생성하세요:
[Unit]
Description=Continuum Router - LLM API Router
After=network.target
Wants=network.target
[Service]
Type=simple
User=continuum
Group=continuum
WorkingDirectory=/opt/continuum-router
ExecStart=/usr/local/bin/continuum-router --config /etc/continuum-router/config.yaml
Restart=always
RestartSec=10
# 보안 설정
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/log/continuum-router
# 환경 변수
Environment=RUST_LOG=continuum_router=info
Environment=RUST_BACKTRACE=1
[Install]
WantedBy=multi-user.target
서비스 활성화 및 시작:
sudo systemctl daemon-reload
sudo systemctl enable continuum-router
sudo systemctl start continuum-router
sudo systemctl status continuum-router
macOS (launchd)¶
~/Library/LaunchAgents/com.lablup.continuum-router.plist를 생성하세요:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.lablup.continuum-router</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/continuum-router</string>
<string>--config</string>
<string>/usr/local/etc/continuum-router/config.yaml</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/usr/local/var/log/continuum-router.log</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/continuum-router.error.log</string>
</dict>
</plist>
서비스 로드:
launchctl load ~/Library/LaunchAgents/com.lablup.continuum-router.plist
launchctl start com.lablup.continuum-router
3. 설치 확인¶
# 버전 확인
continuum-router --version
# 헬스 엔드포인트 테스트
curl http://localhost:8080/health
# 사용 가능한 모델 목록
curl http://localhost:8080/v1/models
# 백엔드 상태 확인
curl http://localhost:8080/admin/backends
업그레이드¶
바이너리 설치¶
# 새 버전 다운로드
curl -L https://github.com/lablup/continuum-router/releases/latest/download/continuum-router-linux-x86_64.tar.gz | tar -xz
# 이전 바이너리 백업
sudo mv /usr/local/bin/continuum-router /usr/local/bin/continuum-router.backup
# 새 바이너리 설치
sudo mv continuum-router /usr/local/bin/
# 서비스 재시작
sudo systemctl restart continuum-router
Docker¶
# 최신 이미지 가져오기
docker pull ghcr.io/lablup/continuum-router:latest
# 컨테이너 재시작
docker-compose down
docker-compose up -d
소스에서¶
cd backend.ai-continuum/continuum-router
git pull
cargo build --release
sudo mv target/release/continuum-router /usr/local/bin/
sudo systemctl restart continuum-router
제거¶
바이너리 설치¶
# 서비스 중지
sudo systemctl stop continuum-router
sudo systemctl disable continuum-router
# 바이너리 제거
sudo rm /usr/local/bin/continuum-router
# 설정 제거
sudo rm -rf /etc/continuum-router
# 서비스 파일 제거
sudo rm /etc/systemd/system/continuum-router.service
sudo systemctl daemon-reload
Docker¶
# 컨테이너 중지 및 제거
docker-compose down
# 이미지 제거
docker rmi ghcr.io/lablup/continuum-router:latest
# 볼륨 제거 (있는 경우)
docker volume prune
문제 해결¶
권한 거부¶
# 바이너리 실행 가능하게 만들기
chmod +x continuum-router
# 시스템 디렉토리의 경우 sudo 사용
sudo mv continuum-router /usr/local/bin/
포트가 이미 사용 중¶
서비스가 시작되지 않음¶
# 로그 확인
journalctl -u continuum-router -f
# 설정 유효성 검사
continuum-router --config config.yaml --validate
# 디버깅을 위해 포그라운드에서 실행
continuum-router --config config.yaml --log-level debug
Docker 네트워크 문제¶
# 호스트 네트워크 모드 사용
docker run --network host ghcr.io/lablup/continuum-router:latest
# 또는 백엔드 IP를 명시적으로 지정
docker run -e CONTINUUM_BACKEND_URLS="http://172.17.0.2:11434" ...