Skip to main content
This guide covers standalone K3s clusters, with or without Rancher. K3s follows the standard install flow. The differences are in storage, because the bundled local-path provisioner has no CSI snapshot support, and in ingress, because K3s ships Traefik instead of ingress-nginx. If Rancher manages your cluster, also read Rancher for kubeconfig and project placement.

Prerequisites

  • Linux hosts supported by K3s, running K3s 1.28 or later.
  • kubectl, helm, and base64 on the machine that runs the installer.
  • Root or sudo on the K3s hosts, to install K3s and read its kubeconfig (/etc/rancher/k3s/k3s.yaml, readable only by root).
  • Outbound access from the cluster to pull images: registry.falkordb.cloud (Enterprise images, credentials required), docker.io, apecloud-registry.cn-zhangjiakou.cr.aliyuncs.com, registry.k8s.io, and ghcr.io — or registry.falkordb.cloud alone, since every image is also mirrored there (see Private registries).
Pick a topology:
A single-node cluster is below the supported minimum of 3 worker nodes. Use it to evaluate FalkorDB Enterprise, not to run production data.

How K3s differs

1

Install K3s

Install the K3s server. Set --tls-san to the IP address or hostname you will use to reach the API server from other machines, so its certificate is valid for that address:
For a multi-node cluster, read the join token on the server, then run the agent install on each worker:
See the K3s high-availability docs for a three-server control plane.
2

Get cluster credentials

K3s writes a cluster-admin kubeconfig to /etc/rancher/k3s/k3s.yaml, readable only by root. Copy it to the machine that runs the installer and replace 127.0.0.1 in its server field with the server’s address:
Verify access:
You should see local-path (default) and traefik.
3

Set up storage

FalkorDB Enterprise uses persistent volumes for databases and the Admin Server, and CSI volume snapshots for backups.Single node. Skip this step. When the default StorageClass is local-path on a one-node cluster, the installer enables a bundled hostpath CSI driver, makes its csi-hostpath-sc the default StorageClass, and raises the release namespace’s Pod Security level to privileged because the driver needs it. All volumes stay on that node.Multi-node. Install Longhorn. Each node needs an iSCSI initiator (open-iscsi on Debian/Ubuntu, iscsi-initiator-utils on RHEL), and nfs-common or nfs-utils for RWX volumes. Check the Longhorn installation requirements, then:
Make longhorn the only default StorageClass:
If you leave local-path as the default on a multi-node cluster, the installer keeps it and prints a warning. Database volumes are then pinned to whichever node first ran each pod, and volume-snapshot backups are unavailable. Pass --local-csi-hostpath enable only if you accept that every volume lives on a single node.
The installer runs a snapshot controller in the KubeBlocks namespace, installs the VolumeSnapshot CRDs when they are missing, and creates a default VolumeSnapshotClass for Longhorn with type: snap, so backups take in-cluster Longhorn snapshots.
If a default VolumeSnapshotClass for driver.longhorn.io already exists, the installer uses it instead. Make sure it sets parameters.type: snap. Without a type, Longhorn takes a Longhorn backup, which fails unless you have configured a Longhorn backup target.
4

Install FalkorDB Enterprise

For an evaluation, run the installer with default settings:
The installer prints the kubectl port-forward command for the Admin UI. Add --quick-access to publish it over plain HTTP through Traefik instead; it is then reachable on any node’s IP. See Quickstart for defaults and validation.For production, start from the values in Production install and add the K3s-specific settings below:
Create the TLS Secret that the Ingress references, from a certificate for admin.example.com. Without it, Traefik serves its self-signed default certificate.
Then install:
Point DNS for admin.example.com at one or more node IPs, or at an external load balancer in front of the nodes.
5

Validate the install

kubectl get volumesnapshotclass should list falkordb-enterprise-driver-longhorn-io as the default on a multi-node cluster, or falkordb-enterprise-csi-hostpath on a single node. An evaluation install without --quick-access creates no Ingress, so kubectl get ingress returns nothing.Sign in with the bootstrap admin user. On a first install the chart generates its password:

Pod security

K3s does not enforce a cluster-wide Pod Security Admission level unless you pass it an admission config, as in the K3s CIS hardening guide. The installer labels its own namespace enforce=baseline, or privileged when it enables the bundled hostpath CSI driver. If your cluster enforces restricted by default, label kb-system and each database namespace yourself. Longhorn also needs privileged in longhorn-system:
See Pod Security Admission levels for the measured level of each namespace.

Troubleshooting

For anything else, see Troubleshoot deployments.

Clean up

Remove FalkorDB Enterprise first (see Uninstall). To remove K3s itself, run /usr/local/bin/k3s-uninstall.sh on servers and /usr/local/bin/k3s-agent-uninstall.sh on agents. This deletes all cluster data, including local-path volumes.