github.com/gocrane/crane@v0.11.0/docs/index.zh.md (about) 1 # 介绍 2 3 The goal of Crane is to provide a one-stop-shop project to help Kubernetes users to save cloud resource usage with a rich set of functionalities: 4 5 - **Time Series Prediction** based on monitoring data 6 - **Usage and Cost visibility** 7 - **Usage & Cost Optimization** including: 8 - R2 (Resource Re-allocation) 9 - R3 (Request & Replicas Recommendation) 10 - Effective Pod Autoscaling (Effective Horizontal & Vertical Pod Autoscaling) 11 - Cost Optimization 12 - **Enhanced QoS** based on Pod PriorityClass 13 - **Load-aware Scheduling** 14 15  16 17 ## Features 18 ### Time Series Prediction 19 20 TimeSeriesPrediction defines metric spec to predict kubernetes resources like Pod or Node. 21 The prediction module is the core component that other crane components relied on, like [EHPA](#effective-horizontalpodautoscaler) and [Analytics](#analytics). 22 23 Please see [this document](tutorials/using-time-series-prediction.md) to learn more. 24 25 ### Effective HorizontalPodAutoscaler 26 27 EffectiveHorizontalPodAutoscaler helps you manage application scaling in an easy way. It is compatible with native [HorizontalPodAutoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) but extends more features like prediction-driven autoscaling. 28 29 Please see [this document](tutorials/using-effective-hpa-to-scaling-with-effectiveness.md) to learn more. 30 31 ### Analytics 32 33 智能推荐能够帮助用户自动分析集群并给出优化建议。就像手机助手一样,智能推荐会定期的扫描、分析你的集群并给出推荐建议。目前,我们提供了两种优化能力: 34 35 - [**资源推荐**](tutorials/resource-recommendation.zh.md): 通过资源推荐的算法分析应用的真实用量推荐更合适的资源配置,您可以参考并采纳它提升集群的资源利用率。 36 - [**副本数推荐**](tutorials/replicas-recommendation.zh.md): 通过副本数推荐的算法分析应用的真实用量推荐更合适的副本和 EHPA 配置,您可以参考并采纳它提升集群的资源利用率。 37 38 Please see [this document](tutorials/analytics-and-recommendation.md) to learn more. 39 40 ### QoS Ensurance 41 Kubernetes is capable of starting multiple pods on same node, and as a result, some of the user applications may be impacted when there are resources(e.g. cpu) consumption competition. To mitigate this, Crane allows users defining PrioirtyClass for the pods and QoSEnsurancePolicy, and then detects disruption and ensure the high priority pods not being impacted by resource competition. 42 43 Avoidance Actions: 44 45 - **Disable Schedule**: disable scheduling by setting node taint and condition 46 - **Throttle**: throttle the low priority pods by squeezing cgroup settings 47 - **Evict**: evict low priority pods 48 49 Please see [this document](tutorials/using-qos-ensurance.md) to learn more. 50 51 ## 负载感知调度 52 原生的`Kubernetes`调度器只能基于资源的`Request`进行调度业务,这很容易导致集群负载不均的问题。与之对比的是,`Crane-scheudler`可以直接从`Prometheus`获取节点的真实负载情况,从而实现更有效的调度。 53 54 更多请参见[文档](tutorials/scheduling-pods-based-on-actual-node-load.md)。 55 ## Repositories 56 57 Crane is composed of the following components: 58 59 - [craned](https://github.com/gocrane/crane/tree/main/cmd/craned) - main crane control plane. 60 - **Predictor** - Predicts resources metrics trends based on historical data. 61 - **AnalyticsController** - Analyzes resources and generate related recommendations. 62 - **RecommendationController** - Recommend Pod resource requests and autoscaler. 63 - **ClusterNodePredictionController** - Create Predictor for nodes. 64 - **EffectiveHPAController** - Effective HPA for horizontal scaling. 65 - **EffectiveVPAController** - Effective VPA for vertical scaling. 66 - [metric-adaptor](https://github.com/gocrane/crane/tree/main/cmd/metric-adapter) - Metric server for driving the scaling. 67 - [crane-agent](https://github.com/gocrane/crane/tree/main/cmd/crane-agent) - Ensure critical workloads SLO based on abnormally detection. 68 - [gocrane/api](https://github.com/gocrane/api) - This repository defines component-level APIs for the Crane platform. 69 - [gocrane/fadvisor](https://github.com/gocrane/fadvisor) - Financial advisor which collect resource prices from cloud API. 70 - [gocrane/crane-scheduler](https://github.com/gocrane/crane-scheduler) - 一个可以基于真实负载对业务进行调度的 `Kubernestes` 调度器。 71