Dragonfly
v2.5.0Storage & DataDragonfly v2.5.0은 Hugging Face/ModelScope 모델 다운로드, P2P 인젝터 웹훅, 다운로드 블록리스트, 전면적인 속도 제한을 추가하는 기능 릴리스이며, 더 이상 사용되지 않던 V1 프리히트 API 엔드포인트 제거와 헬스체크의 /healthy 통합이라는 주요 변경도 포함합니다. 다수의 버그 수정과 Nydus 서브프로젝트 개선도 함께 담겼습니다.
breakingV1 프리히트 API 엔드포인트 제거
v2.5.0부터 조건 없이 적용됩니다: 더 이상 사용되지 않던 V1 프리히트 API 엔드포인트가 제거되었습니다. 이 경로를 호출하던 자동화나 연동은 업그레이드 전에 현재 프리히트 API로 옮겨야 합니다.
breaking헬스체크 /healthy로 통합
v2.5.0부터 조건 없이 적용됩니다: 헬스체크가 /healthy 엔드포인트 하나로 통합되었습니다. 기존 헬스체크 경로를 참조하던 로드밸런서, 쿠버네티스 프로브, 모니터링 설정을 수정해야 합니다.
enhancement긴급 다운로드 블록리스트
현재 Manager 콘솔에서 사용 가능합니다: 특정 다운로드를 긴급 차단할 수 있는 블록리스트를 설정할 수 있습니다. 차단된 gRPC 요청은 PermissionDenied, HTTP 프록시 요청은 FORBIDDEN을 반환하며 장애 대응에 활용할 수 있습니다.
enhancementgRPC 및 클라이언트 전반 속도 제한
현재 Manager/Scheduler gRPC 서버와 클라이언트 전반에 적용됩니다: 대역폭, 업/다운로드 요청, 적응형 제한을 포함한 속도 제한이 추가되었습니다. 배포 전에 제한값을 검토해 정상 트래픽이 의도치 않게 제한되지 않도록 확인하세요.
주요 변경 (8)
- 주요 변경: 더 이상 사용되지 않던 V1 프리히트 API 엔드포인트가 제거되고 헬스체크가 /healthy 하나로 통합되었습니다.
- 신규: Dragonfly 클라이언트가 Hugging Face와 ModelScope에서 모델 저장소를 직접 내려받을 수 있게 되었습니다. Git LFS 데이터는 P2P로 가속하고 메타데이터는 Git 프로토콜로 가져옵니다.
- 신규: dragonfly-injector Mutating Admission Webhook이 어노테이션 기반 정책으로 Pod에 P2P 기능을 자동 주입하며, Helm 차트도 이를 지원합니다.
- 신규: Manager 콘솔에서 블록리스트를 설정해 특정 다운로드를 긴급 차단할 수 있습니다(gRPC는 PermissionDenied, HTTP 프록시는 FORBIDDEN 반환).
- 신규: Manager/Scheduler gRPC 서버와 클라이언트 측 대역폭·요청 처리 전반에 속도 제한이 추가되어 소스 서비스를 보호합니다.
- 신규: 로컬 스토리지 작업(목록 조회, 삭제, 프리히트)을 Scheduler와 함께 관리하는 dfctl CLI가 추가되었고, dfdaemon은 containerd의 ns 쿼리 파라미터로 업스트림 레지스트리를 추론할 수 있습니다.
- 성능 및 안정성 개선: 스케줄링 전 부모 피어 선택 로직 개선, 파일 내보내기/다운로드의 버퍼링 처리, 대용량 전송을 위한 gRPC 스트림 버퍼 튜닝, HTTP 백엔드 개선(HTTP/1.1 적용, HEAD 재시도 로직, 크로스오리진 리다이렉트 시 인증 헤더 제거, 상대경로 307 리다이렉트 캐싱 오류 수정).
- 그 외 다수의 소소한 수정: 피어 TTL과 concurrent_piece_count 관련 Redis Lua 스크립트 인자 순서 수정, 기본 클러스터 시딩 후 PostgreSQL SERIAL 시퀀스 처리 개선, ExternalRedis TLS 지원 추가, Nydus 서브프로젝트 업데이트(프리페치 최적화 블롭, DAX 백엔드 지원, 빌더/이미지 감지 관련 버그 수정 다수).