Skip to content

MultiKueue: Support Elastic RayService #11102

Description

@JunchengMa

Similarly as #8712,

Description

What would you like to be added:

Support elastic RayService (using UpgradeStrategy: NewClusterWithIncrementalUpgrade) via MultiKueue.

Background:

Basic MultiKueue support for RayService was added in #10025. However, elastic RayService — where UpgradeStrategy: NewClusterWithIncrementalUpgrade is used — is not yet covered.

The problem:

When NewClusterWithIncrementalUpgrade is used, KubeRay creates a second RayCluster alongside the existing one during an upgrade, gradually shifting traffic from the old cluster to the new one. At peak, both clusters run simultaneously.

The current MultiKueue adapter for RayService (rayservice_multikueue_adapter.go) copies the full spec to the worker cluster via copyJobSpec, which includes the UpgradeStrategy field. This means the worker cluster will also attempt an incremental upgrade and spin up a second RayCluster — but:

  1. The Kueue workload on the manager cluster only accounts for one cluster's resources. The additional resource requirements of the second (upgrade) cluster are not reflected in the workload, leading to under-accounting of quota consumed on the worker.

  2. MultiKueue has no visibility into the dual-cluster state during upgrade. The workload controller syncs status back from the worker's RayService, but does not model the transient two-cluster resource usage for admission or quota purposes.

Why is this needed:

To run elastic Ray serving workloads with zero-downtime incremental upgrades via MultiKueue, enabling multi-cluster scheduling for long-running RayService resources.

Metadata

Metadata

Assignees

Labels

area/multikueueIssues or PRs related to MultiKueue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions