Skip to content

Commit

Permalink
add autoscaling
Browse files Browse the repository at this point in the history
Signed-off-by: Ashraful Haque Tani <[email protected]>
  • Loading branch information
AshrafulHaqueToni committed Sep 9, 2024
1 parent c8cb23b commit 7d25a44
Show file tree
Hide file tree
Showing 5 changed files with 241 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,26 @@ metadata:
namespace: demo
spec:
version: "2.3.2-debian"
replicas: 1
replicas: 3
podTemplate:
spec:
containers:
- name: proxysql
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 250m
memory: 64Mi
securityContext:
runAsGroup: 999
runAsNonRoot: true
runAsUser: 999
seccompProfile:
type: RuntimeDefault
podPlacementPolicy:
name: default
syncUsers: true
backend:
name: mysql-server
Expand Down
10 changes: 10 additions & 0 deletions docs/guides/singlestore/autoscaler/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: SingleStore
menu:
docs_{{ .version }}:
identifier: sdb-auto-scaling
name: SingleStore
parent: guides-singlestore
weight: 10
menu_name: docs_{{ .version }}
---
10 changes: 10 additions & 0 deletions docs/guides/singlestore/autoscaler/compute/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Compute Autoscaling
menu:
docs_{{ .version }}:
identifier: sdb-compute-auto-scaling
name: Compute Autoscaling
parent: sdb-auto-scaling
weight: 46
menu_name: docs_{{ .version }}
---
55 changes: 55 additions & 0 deletions docs/guides/singlestore/autoscaler/compute/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: SingleStore Compute Autoscaling Overview
menu:
docs_{{ .version }}:
identifier: sdb-auto-scaling-overview
name: Overview
parent: sdb-compute-auto-scaling
weight: 10
menu_name: docs_{{ .version }}
section_menu_id: guides
---

> New to KubeDB? Please start [here](/docs/README.md).
# SingleStore 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 `singlestoreautoscaler` crd.

## Before You Begin

- You should be familiar with the following `KubeDB` concepts:
- [SingleStore](/docs/guides/singlestore/concepts/singlestore.md)
- [SingleStoreAutoscaler](/docs/guides/singlestore/concepts/autoscaler.md)
- [SingleStoreOpsRequest](/docs/guides/singlestore/concepts/opsrequest.md)

## How Compute Autoscaling Works

The following diagram shows how KubeDB Autoscaler operator autoscales the resources of `SingleStore` database components. Open the image in a new tab to see the enlarged version.

<figure align="center">
  <img alt="Compute Auto Scaling process of SingleStore" src="/docs/images/singlestore/compute-process.svc">
<figcaption align="center">Fig: Compute Auto Scaling process of SingleStore</figcaption>
</figure>

The Auto Scaling process consists of the following steps:

1. At first, a user creates a `SingleStore` Custom Resource Object (CRO).

2. `KubeDB` Provisioner operator watches the `SingleStore` CRO.

3. When the operator finds a `SingleStore` CRO, it creates required number of `PetSets` and related necessary stuff like secrets, services, etc.

4. Then, in order to set up autoscaling of the various components (ie. Aggregator, Leaf, Standalone) of the `SingleStore` database the user creates a `SingleStoreAutoscaler` CRO with desired configuration.

5. `KubeDB` Autoscaler operator watches the `SingleStoreAutoscaler` 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 `SingleStoreAutoscaler` CRO.

7. If the generated recommendation doesn't match the current resources of the database, then `KubeDB` Autoscaler operator creates a `SingleStoreOpsRequest` CRO to scale the database to match the recommendation generated.

8. `KubeDB` Ops-manager operator watches the `SingleStoreOpsRequest` CRO.

9. Then the `KubeDB` Ops-manager operator will scale the database component vertically as specified on the `SingleStoreOpsRequest` CRO.

In the next docs, we are going to show a step by step guide on Autoscaling of various MongoDB database components using `SingleStoreAutoscaler` CRD.
Loading

0 comments on commit 7d25a44

Please sign in to comment.