The overall architecture of Crane is shown as below:
Craned is the core component which manage the lifecycle of CRDs and APIs. It’s deployed by a
Deployment which consists of two container:
- Craned: Operators for management CRDs, WebApi for Dashboard, Predictors that provide query TimeSeries API.
- Dashboard: Web component that built from TDesign’s Starter, provide an easy-to-use UI for crane users.
Fadvisor provides a collection of exporters which collect cloud resource pricing and billing data and ship to your monitoring system like Prometheus. Fadvisor support Multi-Cloud Pricing API by
Metric Adapter implements a
Custom Metric Apiserver. Metric Adapter consume Crane CRDs and provide HPA Metrics by
Custom/External Metric API.
Crane Agent is a
DaemonSet that runs in each node.
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.
- gocrane/api - This repository defines component-level APIs for the Crane platform.
- gocrane/fadvisor - Financial advisor which collect resource prices from cloud API.
- gocrane/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.