Horizontal Pod Autoscaler with the ArangoDB Kubernetes Operator

3/20/2019

Would it be possible to use the Kubernetes Horizontal Pod Autoscaler with the ArangoDB Kubernetes Operator?

-- Bjorn Thor Jonsson
arangodb
horizontal-scaling
kubernetes

1 Answer

4/24/2019

Firstly, it would be better if you specify your need in detail, such as what you want to scale, or do you want to scale operator itself or your arango cluster (kind: arangodeployments)?

Anyway, as from this Kubernetes HPA Documentation it says:

The Horizontal Pod Autoscaler automatically scales the number of pods in a replication controller, deployment or replica set based on observed CPU utilization (or, with custom metrics support, on some other application-provided metrics). Note that Horizontal Pod Auto-scaling does not apply to objects that can’t be scaled, for example, DaemonSets.

It means you can only scale Deployment, ReplicaSet, StatefulSet, or ReplicationController

In order to autoscale operator itself follow those steps:

$ kubectl get deploy
NAME                                     DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
arango-deployment-operator               2         2         2            2           19m
arango-deployment-replication-operator   2         2         2            2           19m

Then autoscale this deployment via: (Modify auto-scale threshold values and change deployment name according to yours)

$ kubectl autoscale deployment arango-deployment-operator --cpu-percent=10 --min=1 --max=10

horizontalpodautoscaler.autoscaling/arango-deployment-operator autoscaled

If you are looking for auto-scaling ArangoDb cluster, such as dbservers or coordinators, it won't be possible out of the box, because those objects are part of arangodeployments.database.arangodb.com and this crd is not supported by HPA.

You can scale up and down dbservers and coordinators manually by changing counts in arangodeployment as in mentioned in this Documentation

Hope it would be useful for you.

-- coolinuxoid
Source: StackOverflow