Kubernetes support for FalkorDB
FalkorDB can be deployed on Kubernetes using Helm charts and Docker images. This guide will walk you through the process.
Prerequisites
Before you begin, make sure you have Helm installed on your Kubernetes cluster.
To deploy FalkorDB to Kubernetes we need to use:
And follow these steps:
Step 1: Create a values.yaml File
Create a values.yaml file with the following content:
global:
security:
# Required to be able to run the FalkorDB image
allowInsecureImages: true
image:
registry: docker.io
repository: falkordb/falkordb
tag: "latest"
master:
extraFlags:
- "--loadmodule /var/lib/falkordb/bin/falkordb.so"
replica:
extraFlags:
- "--loadmodule /var/lib/falkordb/bin/falkordb.so"
This file specify the FalkorDB image(you can choose different tags) and configure the master and slave to load the FalkorDB module. For additional configurations see the official Helm chart documentation
Step 2: Install FalkorDB Helm Charts
You can deploy FalkorDB using one of two Redis deployment architectures:
Option A: Sentinel-based Deployment (Recommended for High Availability)
This deployment uses Redis Sentinel for automatic failover and high availability.
Install the helm charts using the following command:
helm install -f values.yaml my-falkordb oci://registry-1.docker.io/bitnamicharts/redis
This command deploys FalkorDB with Redis Sentinel and the configuration from values.yaml. After running this command, instructions on how to connect to the FalkorDB server will be displayed.
Option B: Redis Cluster Deployment
This deployment uses Redis Cluster for horizontal scalability and sharding.
Create a cluster-specific values.yaml file:
global:
security:
allowInsecureImages: true
image:
repository: bitnamilegacy/redis-cluster
tag: 8.2.1-debian-12-r0
redis:
extraVolumes:
- name: falkordbmodule
emptyDir: {}
extraVolumeMounts:
- name: falkordbmodule
mountPath: /falkordbmodule/
initContainers:
- name: falkordb-module-preload
image: falkordb/falkordb-server:latest
command: ['/bin/sh', '-c', 'cp /var/lib/falkordb/bin/falkordb.so /falkordbmodule/']
volumeMounts:
- name: falkordbmodule
mountPath: /falkordbmodule/
configmap: |-
loadmodule /falkordbmodule/falkordb.so
Install the Redis Cluster Helm chart:
helm upgrade falkordb oci://registry-1.docker.io/bitnamicharts/redis-cluster --values values.yaml --install
This command deploys FalkorDB in a Redis Cluster configuration with 6 nodes (3 masters and 3 replicas by default). For additional cluster configurations, see the official Redis Cluster Helm chart documentation.
Note: The remaining steps in this guide assume you’re using Option A (Sentinel-based deployment). If you chose Option B (Redis Cluster), adjust the service names and connection commands accordingly (e.g., use my-falkordb-redis-cluster instead of my-falkordb-redis-master).
Step 3: Retrieve the FalkorDB Password
To connect to FalkorDB, you need the Redis password. Retrieve it using the following command:
export REDIS_PASSWORD=$(kubectl get secret --namespace default my-falkordb-redis -o jsonpath="{.data.redis-password}" | base64 -d)
Step 4: Enable External Connections
In a new terminal, run the following command to port-forward to the FalkorDB server, allowing external connections:
kubectl port-forward --namespace default svc/my-falkordb-redis-master 6379:6379
Step 5: Connect to FalkorDB Using redis-cli
You can now connect to FalkorDB using redis-cli with the following command:
REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h 127.0.0.1 -p 6379
Step 6: Run a Simple Cypher Query
To test your FalkorDB installation, run a simple Cypher query:
GRAPH.QUERY mygraph "UNWIND range(1, 10) AS i RETURN i"
The output should resemble the following:
127.0.0.1:6379> GRAPH.QUERY mygraph "UNWIND range(1, 10) AS i RETURN i"
1) 1) "i"
2) 1) 1) (integer) 1
2) 1) (integer) 2
3) 1) (integer) 3
4) 1) (integer) 4
5) 1) (integer) 5
6) 1) (integer) 6
7) 1) (integer) 7
8) 1) (integer) 8
9) 1) (integer) 9
10) 1) (integer) 10
3) 1) "Cached execution: 0"
2) "Query internal execution time: 0.290600 milliseconds"
In summary, this guide provides steps for deploying FalkorDB on Kubernetes using Helm charts and Docker images. It covers the creation of a values.yaml file for configuration, Helm chart installation, password retrieval, enabling external connections, connecting to FalkorDB with redis-cli, and running a basic Cypher query for verification. We hope this documentation helped you to set up FalkorDB in your Kubernetes environment. If you have any questions or encounter any issues during the process, please don’t hesitate to reach out for assistance. Thank you for choosing FalkorDB!