elastic-scaler:基于 Kubernetes 的弹性扩缩容管理项目

提供通用决策框架、潮汐调度算法、RBG扩缩调度的能力

分支12Tags2
文件最后提交记录最后更新时间
5 个月前
5 个月前
1 个月前
26 天前
1 个月前
1 个月前
1 个月前
27 天前
27 天前
5 个月前
5 个月前
5 个月前
5 个月前
4 个月前
5 个月前
27 天前
17 天前
17 天前
1 个月前
1 个月前

PD-Orchestrator

面向 Kubernetes 的弹性调度组件集:Elastic Scaler 负责扩缩容决策,ResourceScalingGroup 负责资源组编排扩缩,Tidal 提供时间驱动潮汐策略

License Helm Version


项目概览

本项目围绕三个核心组件构建:Elastic Scaler 提供通用扩缩容决策能力,ResourceScalingGroup 提供工作负载分组扩缩与资源编排能力,Tidal 提供基于时间规则的潮汐扩缩能力。

Elastic Scaler - 扩缩容决策框架

Elastic Scaler 是通用扩缩容决策框架,采用插件化机制支持自定义算法与资源管理逻辑扩展,并同时支持指标驱动与事件驱动扩缩语义。

  • 支持 MetricsTrigger(指标驱动)与 StateTrigger(事件驱动)扩缩。
  • 支持自定义伸缩算法插件开发。
  • 支持自定义资源插件开发(可通过 ResourceScalingGroup 扩展)。
  • 兼容 Kubernetes 原生 HPA 能力。
  • CRD API:elasticscaler.io/v1alpha1
  • MetricsTrigger 支持 ResourceExternalExternalServerCustom 四类指标(HPA 算法路径不支持 ExternalServer)。
  • 内置 APA 算法为默认伸缩算法,scalingAlgorithm 留空时等同 APA
  • StateTrigger 通过 elasticscaler.io/nameelasticscaler.io/namespace 标签关联外部资源(如 Tidal),同步其 status.desiredReplicas
  • 可通过 Annotation 配置指标窗口、聚合与缺失值等稳定化策略(如 elasticscaler.io/metrics.windowSeconds)。

ResourceScalingGroup - 资源组扩缩容

RSG 面向 Kubernetes 工作负载分组扩缩场景,将多个资源抽象为逻辑组统一编排,支持 GroupReplication 与 InplaceScaling 两类核心策略。

  • 基于标准 CRD ResourceScalingGroup 管理一组目标资源。
  • 支持管理 DeploymentStatefulSetLeaderWorkerSet
  • GroupReplication:按组复制、恢复和缩容,适合整链路成组扩缩。
  • InplaceScaling:按 leader 副本与比例联动 follower 副本。
  • GroupReplication 下暴露 scale 子资源,可被 HPA/ElasticScaler/Tidal 等上层策略驱动。

Tidal - 潮汐算法

Tidal 提供时间驱动扩缩决策能力,通过 Tidal CRD 在指定时间点生成目标副本,并由 Elastic Scaler 统一执行扩缩。

  • 基于标准 CRD Tidal 提供时间驱动扩缩决策。
  • 支持多条时间规则组合与 6 位 CRON(含时区)配置。
  • 多规则同一时刻冲突时,按“最大副本数”策略消解。
  • 通过 Status 字段提供 desiredReplicasactiveRulelastTriggerTimenextTriggerTime 等可观测信息。

使用指南

组件版本

组件名称 版本 说明
elastic-scaler latest 决策与触发控制器
resourcescalinggroup latest RSG 资源组扩缩控制器
tidal latest 潮汐调度控制器
pd-orchestrator 0.0.0-latest 三组件集成部署

快速开始

方式一:本地Helm部署

在仓库根目录执行:

cd charts/pd-orchestrator
helm dependency build
helm install pd-orchestrator .

charts/pd-orchestrator/values.yaml 支持按需开关三组件:

elastic-scaler:
  enabled: true
resourcescalinggroup:
  enabled: true
tidal:
  enabled: true

方式二:OCI 镜像仓库Helm部署

无需克隆仓库,直接使用已发布的 Chart:

helm install pd-orchestrator oci://cr.openfuyao.cn/charts/pd-orchestrator --version 0.0.0-latest

按需覆盖默认值时,可追加 -f values.yaml--set key=value

适用场景

  • 通用弹性策略场景:通过 elastic-scaler 实现指标驱动扩缩和事件驱动。
  • 多资源协同扩缩场景:通过 resourcescalinggroup 统一管理一组目标负载。
  • 业务潮汐波动场景:通过 tidal 实现定时扩缩。

项目介绍

提供通用决策框架、潮汐调度算法、RBG扩缩调度的能力

定制我的领域