系统架构

整体的系统架构

Crane 的整体架构如下:

Crane Arch

Craned

Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。Craned 通过 Deployment 方式部署且由两个容器组成:

  • Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
  • Dashboard: 基于 TDesign’s Starter 脚手架研发的前端项目,提供了易于上手的产品功能

Fadvisor

Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。Fadvisor 通过 Cloud Provider 支持了多云计费的 API。

Metric Adapter

Metric Adapter 实现了一个 Custom Metric Apiserver. Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。

Crane Agent

Crane Agent 通过 DaemonSet 部署在集群的节点上。

Repositories

Crane is composed of the following components:

  • craned - main crane control plane.
  • metric-adaptor - Metric server for driving the scaling.
  • crane-agent - Ensure critical workloads SLO based on abnormally detection.
  • api - This repository defines component-level APIs for the Crane platform.
  • fadvisor - Financial advisor which collect resource prices from cloud API.
  • crane-scheduler - A Kubernetes scheduler which can schedule pod based on actual node load.
  • kubectl-crane - Kubectl plugin for crane, including recommendation and cost estimate.