-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: raihankhan <[email protected]>
- Loading branch information
1 parent
0d10a6a
commit b195099
Showing
60 changed files
with
14,948 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
title: Autoscaling | ||
menu: | ||
docs_{{ .version }}: | ||
identifier: mg-auto-scaling | ||
name: Autoscaling | ||
parent: mg-RabbitMQ-guides | ||
weight: 46 | ||
menu_name: docs_{{ .version }} | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
title: Compute Autoscaling | ||
menu: | ||
docs_{{ .version }}: | ||
identifier: mg-compute-auto-scaling | ||
name: Compute Autoscaling | ||
parent: mg-auto-scaling | ||
weight: 46 | ||
menu_name: docs_{{ .version }} | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--- | ||
title: RabbitMQ Compute Autoscaling Overview | ||
menu: | ||
docs_{{ .version }}: | ||
identifier: mg-auto-scaling-overview | ||
name: Overview | ||
parent: mg-compute-auto-scaling | ||
weight: 10 | ||
menu_name: docs_{{ .version }} | ||
section_menu_id: guides | ||
--- | ||
|
||
> New to KubeDB? Please start [here](/docs/README.md). | ||
# RabbitMQ Compute Resource Autoscaling | ||
|
||
This guide will give an overview on how KubeDB Autoscaler operator autoscales the database compute resources i.e. cpu and memory using `RabbitMQautoscaler` crd. | ||
|
||
## Before You Begin | ||
|
||
- You should be familiar with the following `KubeDB` concepts: | ||
- [RabbitMQ](/docs/guides/RabbitMQ/concepts/RabbitMQ.md) | ||
- [RabbitMQAutoscaler](/docs/guides/RabbitMQ/concepts/autoscaler.md) | ||
- [RabbitMQOpsRequest](/docs/guides/RabbitMQ/concepts/opsrequest.md) | ||
|
||
## How Compute Autoscaling Works | ||
|
||
The following diagram shows how KubeDB Autoscaler operator autoscales the resources of `RabbitMQ` database components. Open the image in a new tab to see the enlarged version. | ||
|
||
<figure align="center"> | ||
<img alt="Compute Auto Scaling process of RabbitMQ" src="/docs/images/RabbitMQ/compute-process.svg"> | ||
<figcaption align="center">Fig: Compute Auto Scaling process of RabbitMQ</figcaption> | ||
</figure> | ||
|
||
The Auto Scaling process consists of the following steps: | ||
|
||
1. At first, a user creates a `RabbitMQ` Custom Resource Object (CRO). | ||
|
||
2. `KubeDB` Provisioner operator watches the `RabbitMQ` CRO. | ||
|
||
3. When the operator finds a `RabbitMQ` CRO, it creates required number of `StatefulSets` and related necessary stuff like secrets, services, etc. | ||
|
||
4. Then, in order to set up autoscaling of the various components (ie. ReplicaSet, Shard, ConfigServer, Mongos, etc.) of the `RabbitMQ` database the user creates a `RabbitMQAutoscaler` CRO with desired configuration. | ||
|
||
5. `KubeDB` Autoscaler operator watches the `RabbitMQAutoscaler` CRO. | ||
|
||
6. `KubeDB` Autoscaler operator generates recommendation using the modified version of kubernetes [official recommender](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler/pkg/recommender) for different components of the database, as specified in the `RabbitMQAutoscaler` CRO. | ||
|
||
7. If the generated recommendation doesn't match the current resources of the database, then `KubeDB` Autoscaler operator creates a `RabbitMQOpsRequest` CRO to scale the database to match the recommendation generated. | ||
|
||
8. `KubeDB` Ops-manager operator watches the `RabbitMQOpsRequest` CRO. | ||
|
||
9. Then the `KubeDB` Ops-manager operator will scale the database component vertically as specified on the `RabbitMQOpsRequest` CRO. | ||
|
||
In the next docs, we are going to show a step by step guide on Autoscaling of various RabbitMQ database components using `RabbitMQAutoscaler` CRD. |
Oops, something went wrong.