kuberay-project/kuberay

A toolkit to run Ray applications on Kubernetes

KubeRay – Kubernetes 오퍼레이터 for Ray

개요

  • 오픈소스 CNCF 샌드박스 프로젝트로, Kubernetes 클러스터에서 Ray 워크로드(분산 학습, 추론, 서빙 등)를 실행하기 위한 Kubernetes 오퍼레이터를 제공합니다.
  • RayCluster, RayJob, RayService 세 가지 사용자 지정 리소스를 정의하여 Kubernetes 매니페스트에서 Ray 클러스터를 선언적으로 생성, 확장, 관리할 수 있습니다.

주요 구성 요소

구성 요소 목적
RayCluster Ray 클러스터의 전체 수명 주기(생성, 자동 확장, 내결함성, 삭제)를 관리합니다.
RayJob 임시 RayCluster를 생성하고 작업을 실행하며, 작업 완료 시 선택적으로 클러스터를 종료합니다.
RayService RayCluster와 Ray Serve 배포 그래프를 결합하여 무중단 업그레이드 및 고가용성 서빙을 제공합니다.
kubectl-ray 플러그인 (베타) 원시 Kubernetes 객체에 익숙하지 않은 사용자를 위해 일반적인 KubeRay 작업을 단순화하는 CLI 도우미(kubectl ray ...).
KubeRay APIServer (알파) 사용자 지정 UI 또는 기타 도구가 KubeRay 리소스를 관리하는 데 사용할 수 있는 경량 API 레이어.
KubeRay 대시보드 (실험적) Ray 클러스터, 작업, 서비스를 시각화하고 관리하기 위한 웹 UI.

사용 이유

  • 선언적: 다른 Kubernetes 애플리케이션과 마찬가지로 YAML로 Ray 워크로드를 정의할 수 있습니다.
  • 네이티브 확장: Kubernetes 자동 확장 메커니즘을 활용하고 대기열 시스템(Volcano, Kueue 등)과 통합하여 탄력적 리소스 할당을 실현합니다.
  • 관찰 가능성: Prometheus, Grafana, 프로파일링 도구(py-spy)와 기본적으로 연동됩니다.
  • 프로덕션 준비 패턴: 무중단 업그레이드, 고가용성 서빙, 임시 클러스터의 자동 정리를 지원합니다.

일반적인 사용 사례

  • 대규모 분산 모델 학습(예: Ray Train).
  • GPU/TPU 기반 추론을 포함한 Ray Serve를 사용한 대규모 언어 모델(LLM) 서빙.
  • 배치 추론 파이프라인 및 앙상블 모델 서빙.
  • Kubernetes의 스케줄링, 보안, 멀티 테넌시 기능의 이점을 활용하는 모든 Ray 기반 워크로드.

시작하기

  1. 오퍼레이터를 설치합니다(예: Helm 또는 제공된 매니페스트의 kubectl apply 사용).
  2. 사용자 지정 리소스를 선택합니다:
    • 장기 실행 클러스터의 경우 RayCluster.
    • 일회성 작업의 경우 RayJob.
    • 자동 롤아웃을 통한 API 서빙의 경우 RayService.
  3. 해당 YAML 매니페스트를 적용합니다. 오퍼레이터가 Ray 헤드 및 워커 포드를 생성하고, 자동 확장을 처리하며, 상태를 모니터링합니다.
  4. 선택적으로 kubectl ray submit ... 같은 단축키를 실행하기 위해 kubectl ray 플러그인을 설치합니다.

에코시스템 통합

  • 일반적인 Kubernetes 추가 기능(Ingress 컨트롤러(NGINX), 관찰 가능성 스택(Prometheus/Grafana), 배치 스케줄러(Volcano, Kueue, YuniKorn))과 함께 작동합니다.
  • 문서와 예제는 Ray 문서 사이트에 호스팅되어 있으며 학습, LLM 추론, 배치 작업 등을 다룹니다.

커뮤니티 및 지원

  • 활성 Slack 채널 #kuberay 및 격주 커뮤니티 미팅.
  • 거버넌스 및 기여 지침(GOVERNANCE.md, CONTRIBUTING.md)이 제공됩니다.
  • 보안 문제는 프로젝트의 보안 정책에 따라 보고됩니다.

라이선스

  • Apache-2.0.

결론 KubeRay는 Ray의 강력한 분산 컴퓨팅 모델을 일급 Kubernetes 워크로드로 전환하여 AI/ML 팀이 익숙한 Kubernetes 도구를 사용하여 학습 및 서빙 파이프라인을 배포, 확장, 운영할 수 있게 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트