Aerospike Kubernetes Operator
Aerospike Kubernetes Operator (AKO) automates the deployment and management of Aerospike Database clusters on Kubernetes. The AKO controller manages a Custom Resource Definition (CRD) that extends the Kubernetes API for Aerospike clusters.
To perform Aerospike cluster deployment and lifecycle management, modify the Aerospike cluster Custom Resource (CR) configuration file on the server.
Specify changes to your desired configuration parameters and run the kubectl apply command to apply them.
AKO picks up the changes from the CR file and applies them throughout the cluster.
For example, to add Rack Awareness to your Aerospike cluster, add a rack-aware section of configuration parameters to the CR as described in Rack Awareness.
When you run kubectl apply -f, AKO reads the CR file again and enables Rack Awareness as specified.
This documentation includes examples of various Aerospike configuration settings you can use with your Aerospike cluster on Kubernetes. If you have questions, suggestions, or other feedback, contact Aerospike support.
Terminology
This documentation uses specific terms when referring to Aerospike and Kubernetes components.
-
Aerospike Database instance: A single running Aerospike Database server process. Each Kubernetes pod runs one Aerospike Database instance. In non-Kubernetes deployments, this is often called an “Aerospike node.”
-
Kubernetes pod: The smallest deployable unit in Kubernetes. In AKO deployments, each pod contains one Aerospike Database instance along with any configured sidecar containers such as Aerospike Prometheus Exporter.
-
Kubernetes node: A physical or virtual machine in the Kubernetes cluster infrastructure that runs Kubernetes pods.
When this documentation refers to scaling the cluster size or the number of instances, it means adjusting the number of Kubernetes pods, each running an Aerospike Database instance.
Features
With AKO, you can do the following operations:
- Deploy an Aerospike cluster
- Scale an Aerospike cluster
- Upgrade to a new version of the Aerospike Database software
- Manage Aerospike cluster configuration
- Manage Aerospike cluster access control
- Set up cross-datacenter replication (XDR)
- Set up rack-enabled Aerospike cluster
- Enforce Aerospike cluster best practices
- Back up and restore an Aerospike cluster
- Set up the Aerospike monitoring stack
- Manage multiple Aerospike clusters
- Attach custom sidecars and init containers
- Configure persistent storage and resource allocation
Architecture
The AKO custom controller, written in Go, embeds specific lifecycle management logic to manage the state of an Aerospike cluster. It does so by managing a Custom Resource Definition (CRD) to extend the Kubernetes API for Aerospike clusters. All regular maintenance to the cluster deployment and management is done by updating the Aerospike Enterprise cluster Custom Resource (CR).
AKO uses Kubernetes StatefulSets, a key workload API object for managing stateful applications. This ensures consistent deployment, scaling, and guarantees concerning the sequence and uniqueness of the associated Pods, such as maintaining unique, addressable identities for each.
AKO takes a layered approach to orchestration. This allows it to manage Aerospike cluster tasks outside the Aerospike deployment.