Open Yisaer opened 4 years ago
We welcome everyone to help to realize the Auto-scaling
feature in Operator by discuss/suggest/code review/pull request/ etc.
Currently, the auto-scaling is under alpha feature. It only provides the ability below:
To achieve Production ready:
Here describes How the auto-scaling algorithm work by average CPU load.
After #1731 merged, we would have auto-scaling ability based by cpu load feature under alpha stage. Currently, there are still plenty of jobs to do:
There are several good first issue
about auto-scaling`, we are welcome the newcomers to join the contribution by assign these tasks.
Ref:
Syncing the replicas between online configuration and local configuration is always the problem after we use autoscaler ( or hpa), this issue request the new feature to solve this problem. https://github.com/pingcap/tidb-operator/issues/1818
To improve the user-experience, we should enhance the information by executing
kubectl get tidbclusterautoscaler
Currently, we have released Auto-scaling as an alpha feature in operator 1.1 version which based on the cpu load. After that, we would start to focus on the following 3 things:
The e2e test should also be completed.
We are happy to announce that the auto-scaling is going to have the external strategy ability that exposes the http interface to let community user could use their own auto-scaling strategy (like predicting strategy by AI) to affect to tidbcluster auto-scaling.
For more detail, see: https://github.com/pingcap/tidb-operator/pull/2279
Description
Describe the feature you'd like:
TiDB-Operator
is going to supportAuto-scaling
feature forTiKV
andTiDB
inTidbCluster
.Auto-scaling
would help the Operator users to auto-scale out/in for theTiKV
andTiDB
for theTiDBCluster
by the metrics / value / resources which the users could provide. This issue is to discuss and track the whole process of theAuto-scaling
design and realization.First, I think there are some prerequisites to the
Auto-Scaling
forTidbClusters
:TidbCluster
is sensitive to the scaling as the distributed databases, we should have the ability to control the whole auto-scaling process.Auto-scaling
need theTidbCluster
metrics info to decide the recommended numbers of TiKV and TiDB. In the future, thePlatform
information (Kubernetes) or the external global metrics/values are also necessary.Operator
could manager several clusters in one Kubernetes. We should provide the cluster level control ability and Interval duration is also important to avoid performance jitter.Auto-Scaling Design To support this feature and meet the prerequisites, the
Auto-scaling
is designed to create one new API (TidbClusterAutoScaler
) and one new ControllerAutoScaler
Controller.TidbClusterAutoScaler
is kind of like HPA. The Operator users could use it to auto-scale in/out theTidbCluster
by their own demands configured in theTidbClusterAutoScaler
Spec.The
AutoScaler
Controller would watch theTidbClusterAutoScaler
and reconcile it to adjust the replicas inTidbCluster
.Category
Auto-Scaling
TODO List
spec.xxxx.external
is configured #3158Workload Estimation (P0 features)
45
Time
GanttStart: 2020-07-13 GanttDue: 2020-09-30
Documentations
Project