Scaling your ArangoDB deployment
The ArangoDB Kubernetes Operator allows easily scale the number of DB-Servers and Coordinators up or down as needed.
The scale up or down, change the number of servers in the custom resource.
E.g., change spec.dbservers.count
from 3
to 4
.
Then apply the updated resource using:
kubectl apply -f {your-arango-deployment}.yaml
Inspect the status of the custom resource to monitor the progress of the scaling operation.
Note: It is not possible to change the number of Agency servers after creating a cluster. Make sure to specify the desired number when creating CR first time.
Overview
Scale-up
When increasing the count
, operator will try to create missing pods. When scaling up, make sure that you have enough computational resources / nodes, otherwise pod will be stuck in Pending state.
Scale-down
Scaling down is always done one server at a time.
Scale down is possible only when all other actions on ArangoDeployment are finished.
The internal process followed by the ArangoDB operator when scaling down is as follows:
- It chooses a member to be evicted. First, it will try to remove unhealthy members or fall-back to the member with the highest
deletion_priority
(check Use deletion_priority to control scale-down order). - Making an internal calls, it forces the server to resign leadership. In case of DB servers it means that all shard leaders will be switched to other servers.
- Wait until server is cleaned out from the cluster.
- Pod finalized.
Use deletion_priority to control scale-down order
You can use .spec.deletion_priority
field in ArangoMember
CR to control the order in which servers are scaled down. Refer to ArangoMember API Reference for more details.