Storage
In the ArangoDeployment
resource, one can specify the type of storage used by groups of servers using the spec.<group>.storageClassName
setting.
This is an example of a Cluster
deployment that stores its Agent & DB-Server data on PersistentVolumes
that use the my-local-ssd
The amount of storage needed is configured using the spec.<group>.resources.requests.storage
setting.
This is an example of a Cluster
deployment that requests volumes of 80GB for every DB-Server, resulting in a total storage capacity of 240GB (with 3 DB-Servers).
Local storage
For optimal performance, ArangoDB should be configured with locally attached SSD storage.
The easiest way to accomplish this is to deploy an . The ArangoDB Storage Operator will use it to provide PersistentVolumes
for you.
Note that using local storage required VolumeScheduling
to be enabled in your Kubernetes cluster. ON Kubernetes 1.10 this is enabled by default, on version 1.9 you have to enable it with a --feature-gate
setting.
The alternative is to create PersistentVolumes
manually, for all servers that need persistent storage (single, Agents & DB-Servers). E.g. for a Cluster
with 3 Agents and 5 DB-Servers, you must create 8 volumes.
Note that each volume must have a capacity that is equal to or higher than the capacity needed for each server.
For Kubernetes 1.9 and up, you should create a StorageClass
which is configured to bind volumes on their first use as shown in the example below. This ensures that the Kubernetes scheduler takes all constraints on a that into consideration before binding the volume to a claim.