ray-project/kuberay

A toolkit to run Ray applications on Kubernetes

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 36 minutes ago
Added to GitGenius on June 5th, 2024
Created on October 29th, 2020
Open Issues & Pull Requests: 765 (+0)
Number of forks: 829
Total Stargazers: 2,646 (+0)
Total Subscribers: 20 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.4 hours
Mean response time: 50.3 days
90th percentile: 98.2 days
Tracked items: 1,159

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 56% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. 46% of tracked open issues have had no activity in three months. Only 3% of issues opened in the past year have been closed. Three people close 71% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 504
New in 7 days: 13
Closed in 7 days: 2
Avg open age: 452 days
Stale 30+ days: 433
Stale 90+ days: 395

Recent activity

Opened in 7 days: 12
Closed in 7 days: 1
Comments in 7 days: 34
Events in 7 days: 145

Top labels

  • enhancement (1,000)
  • bug (603)
  • good-first-issue (190)
  • P1 (140)
  • triage (124)
  • ci (105)
  • rayservice (103)
  • apiserver (87)

Detailed Description

KubeRay is an open-source Kubernetes operator written in Go that enables the deployment and management of Ray applications on Kubernetes clusters. The project serves as a bridge between Ray, a distributed computing framework, and Kubernetes, providing custom resource definitions that abstract away the complexity of running Ray workloads in containerized environments.

The core of KubeRay consists of three primary custom resource definitions. RayCluster manages the complete lifecycle of Ray clusters on Kubernetes, handling cluster creation, deletion, autoscaling, and fault tolerance automatically. RayJob simplifies job execution by automatically creating a RayCluster and submitting a job once the cluster is ready, with optional automatic cleanup of the cluster after job completion. RayService combines a RayCluster with a Ray Serve deployment graph to provide zero-downtime upgrades and high availability for serving workloads.

Beyond the core operator, KubeRay includes several ecosystem components at various maturity levels. The kubectl plugin, available since version 1.3.0, provides a command-line interface that simplifies common Ray deployment workflows for users unfamiliar with Kubernetes. The KubeRay APIServer, currently in alpha, offers a simplified configuration layer for KubeRay resources and is used internally by some organizations to power user interfaces. The KubeRay Dashboard, introduced in version 1.4.0 as an experimental feature, allows users to view and manage KubeRay resources through a graphical interface, though it is not yet production-ready.

The repository demonstrates significant community engagement and active maintenance.

KubeRay integrates extensively with the broader Kubernetes ecosystem, supporting observability tools like Prometheus and Grafana, queuing systems including Volcano, Apache YuniKorn, and Kueue, and ingress controllers such as Nginx. The project has gained adoption across major technology companies, with documented case studies from organizations including Workday, Klaviyo, Niantic, Samsara, Google Cloud, DoorDash, Spotify, Instacart, and others demonstrating real-world applications in model serving, batch training, and distributed machine learning.

The project maintains active community engagement through a dedicated Slack channel monitored by maintainers, bi-weekly community meetings, and comprehensive documentation hosted on the Ray project's documentation site. User-facing documentation was consolidated to the Ray documentation starting in September 2023, while the KubeRay repository focuses on development and maintenance documentation. The project is licensed under the Apache 2.0 License and welcomes contributions following its established guidelines.