PD-Orchestrator
Elastic scheduling component set for Kubernetes: Elastic Scaler handles scaling decisions, ResourceScalingGroup handles resource group orchestration and scaling, Tidal provides time-driven tidal strategies
Project Overview
This project is built around three core components: Elastic Scaler provides general scaling decision capabilities, ResourceScalingGroup provides workload group scaling and resource orchestration capabilities, and Tidal provides time-rule-based tidal scaling capabilities.
Elastic Scaler - Scaling Decision Framework
Elastic Scaler is a general scaling decision framework that adopts a plugin mechanism to support custom algorithm and resource management logic extensions, while simultaneously supporting metric-driven and event-driven scaling semantics.
- Supports
MetricsTrigger(metric-driven) andStateTrigger(event-driven) scaling. - Supports custom scaling algorithm plugin development.
- Supports custom resource plugin development (extensible via ResourceScalingGroup).
- Compatible with Kubernetes native HPA capabilities.
- CRD API:
elasticscaler.io/v1alpha1. MetricsTriggersupports four metric types:Resource,External,ExternalServer, andCustom(HPAalgorithm path does not supportExternalServer).- Built-in APA algorithm as the default scaling algorithm; when
scalingAlgorithmis left empty, it defaults toAPA. StateTriggerassociates external resources (e.g., Tidal) viaelasticscaler.io/nameandelasticscaler.io/namespacelabels, synchronizing theirstatus.desiredReplicas.- Stabilization strategies such as metric windows, aggregation, and missing values can be configured via Annotations (e.g.,
elasticscaler.io/metrics.windowSeconds).
ResourceScalingGroup - Resource Group Scaling
RSG targets Kubernetes workload group scaling scenarios, abstracting multiple resources into logical groups for unified orchestration, supporting two core strategies: GroupReplication and InplaceScaling.
- Manages a set of target resources via the standard CRD
ResourceScalingGroup. - Supports managing
Deployment,StatefulSet, andLeaderWorkerSet. GroupReplication: Replicates, restores, and scales down by group, suitable for full-chain group scaling.InplaceScaling: Links follower replicas proportionally with leader replicas.- Exposes the
scalesub-resource underGroupReplication, which can be driven by upper-level strategies such as HPA/ElasticScaler/Tidal.
Tidal - Tidal Algorithm
Tidal provides time-driven scaling decision capabilities, generating target replicas at specified time points through the Tidal CRD, with scaling executed uniformly by Elastic Scaler.
- Provides time-driven scaling decisions via the standard CRD
Tidal. - Supports combination of multiple time rules and 6-field CRON (including timezone) configuration.
- When multiple rules conflict at the same time, resolves by the "maximum replicas" strategy.
- Provides observability information such as
desiredReplicas,activeRule,lastTriggerTime, andnextTriggerTimethrough theStatusfield.
User Guide
Elastic ScalerUser Guide: AI Inference Elastic Scaling User GuideResourceScalingGroupUser Guide: AI Inference ResourceScalingGroup User GuideTidalUser Guide: AI Inference Tidal Scheduling Algorithm User Guide
Component Versions
| Component | Version | Description |
|---|---|---|
| elastic-scaler | latest | Decision and trigger controller |
| resourcescalinggroup | latest | RSG resource group scaling controller |
| tidal | latest | Tidal scheduling controller |
| pd-orchestrator | 0.0.0-latest | Three-component integrated deployment |
Quick Start
Option 1: Local Helm Deployment
Execute at the repository root directory:
cd charts/pd-orchestrator
helm dependency build
helm install pd-orchestrator .
charts/pd-orchestrator/values.yaml supports enabling/disabling the three components as needed:
elastic-scaler:
enabled: true
resourcescalinggroup:
enabled: true
tidal:
enabled: true
Option 2: OCI Registry Helm Deployment
No need to clone the repository; use the published Chart directly:
helm install pd-orchestrator oci://cr.openfuyao.cn/charts/pd-orchestrator --version 0.0.0-latest
To override default values as needed, append -f values.yaml or --set key=value.
Applicable Scenarios
- General elastic strategy scenarios: Implement metric-driven and event-driven scaling via
elastic-scaler. - Multi-resource coordinated scaling scenarios: Uniformly manage a set of target workloads via
resourcescalinggroup. - Business tidal fluctuation scenarios: Implement scheduled scaling via
tidal.