Skip to content

Commit

Permalink
Update mongo doc upto release v2022.10.18
Browse files Browse the repository at this point in the history
Signed-off-by: Arnob kumar saha <arnob@appscode.com>
  • Loading branch information
ArnobKumarSaha committed Oct 27, 2022
1 parent d51d28a commit f63f2e6
Show file tree
Hide file tree
Showing 55 changed files with 1,703 additions and 1,783 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: Check links
run: |
liche -r docs -d $(pwd) -c 10 -p -h -l -x '^(.*github.com.*|.*api.slack.com.*|.*twitter.com.*|.*linode.com.*|.*helm.sh.*|.*k8s.io.*|.*percona.com.*|.*kubernetes.io.*)$'
liche -r docs -d $(pwd) -c 10 -p -h -l -x '^(.*github.com.*|.*api.slack.com.*|.*twitter.com.*|.*linode.com.*|.*helm.sh.*|.*k8s.io.*|.*percona.com.*|.*kubernetes.io.*|.*search-guard.com.*|.*hub.docker.com.*|.*appscode.com.*|.*mongodb.com.*|.*community.arm.com.*|.*cluster.com.*)$'
- name: Create Kubernetes cluster
id: kind
Expand Down
11 changes: 8 additions & 3 deletions docs/examples/mongodb/autoscaling/compute/mg-as-rs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ metadata:
spec:
databaseRef:
name: mg-rs
opsRequestOptions:
timeout: 3m
apply: IfReady
compute:
replicaSet:
trigger: "On"
podLifeTimeThreshold: 5m
resourceDiffPercentage: 20
minAllowed:
cpu: 200m
memory: 300Mi
cpu: 400m
memory: 400Mi
maxAllowed:
cpu: 1
memory: 1Gi
controlledResources: ["cpu", "memory"]
controlledResources: ["cpu", "memory"]
containerControlledValues: "RequestsAndLimits"
9 changes: 7 additions & 2 deletions docs/examples/mongodb/autoscaling/compute/mg-as-shard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ metadata:
spec:
databaseRef:
name: mg-sh
opsRequestOptions:
timeout: 3m
apply: IfReady
compute:
shard:
trigger: "On"
podLifeTimeThreshold: 5m
resourceDiffPercentage: 20
minAllowed:
cpu: 250m
memory: 350Mi
cpu: 400m
memory: 400Mi
maxAllowed:
cpu: 1
memory: 1Gi
controlledResources: ["cpu", "memory"]
containerControlledValues: "RequestsAndLimits"
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ metadata:
spec:
databaseRef:
name: mg-standalone
opsRequestOptions:
timeout: 3m
apply: IfReady
compute:
standalone:
trigger: "On"
podLifeTimeThreshold: 5m
resourceDiffPercentage: 20
minAllowed:
cpu: 250m
memory: 350Mi
cpu: 400m
memory: 400Mi
maxAllowed:
cpu: 1
memory: 1Gi
controlledResources: ["cpu", "memory"]
containerControlledValues: "RequestsAndLimits"
19 changes: 8 additions & 11 deletions docs/guides/mongodb/autoscaler/compute/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,31 +29,28 @@ This guide will give an overview on how KubeDB Autoscaler operator autoscales th

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

<figure align="center">
  <img alt="Auto Scaling process of MongoDB" src="/docs/images/day-2-operation/mongodb/mg-auto-scaling.svg">
<figcaption align="center">Fig: Auto Scaling process of MongoDB</figcaption>
</figure>
<p align="center">
  <img alt="Compute Auto Scaling process of MongoDB" src="/docs/images/mongodb/compute-process.png" width="500" height="408">
</p>

The Auto Scaling process consists of the following steps:

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

2. `KubeDB` Community operator watches the `MongoDB` CRO.
2. `KubeDB` Provisioner operator watches the `MongoDB` CRO.

3. When the operator finds a `MongoDB` 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 `MongoDB` database the user creates a `MongoDBAutoscaler` CRO with desired configuration.

5. `KubeDB` Autoscaler operator watches the `MongoDBAutoscaler` CRO.

6. `KubeDB` Autoscaler operator creates required number of Vertical Pod Autoscaler [VPA](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#intro) for different components of the database, as specified in the `mongodbautoscaler` 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 `MongoDBAutoscaler` CRO.

7. Then `KubeDB` Autoscaler operator continuously watches the VPA objects for recommendation.
7. If the generated recommendation doesn't match the current resources of the database, then `KubeDB` Autoscaler operator creates a `MongoDBOpsRequest` CRO to scale the database to match the recommendation generated.

8. If the VPA generated recommendation doesn't match the current resources of the database, then `KubeDB` Autoscaler operator creates a `MongoDBOpsRequest` CRO to scale the database to match the recommendation provided by the VPA object.
8. `KubeDB` Ops-manager operator watches the `MongoDBOpsRequest` CRO.

9. `KubeDB` Enterprise operator watches the `MongoDBOpsRequest` CRO.

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

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

0 comments on commit f63f2e6

Please sign in to comment.