Default: cluster-internal access only
Every FalkorDB deployment gets a standard Kubernetes Service and a matching DNS name from the cluster’s CoreDNS, for example:Without any of the setup below, the only way to reach a database from
outside the cluster is to connect directly to a pod IP, and only if your CNI
allocates pod IPs from a routable address space (for example the AWS VPC
CNI on EKS, Azure CNI on AKS, or GKE’s VPC-native mode). Overlay networks
(kubenet, Flannel VXLAN, Calico IPIP/VXLAN) never make pod IPs reachable
from outside the cluster.
Making a deployment reachable from outside the cluster
Two independent things both have to be true:1
Give the deployment an externally resolvable name
In the create or edit wizard, open the Networking step and set the
external domain (FQDN) field — for example
db.internal.example.com.
This sets spec.externalDomain on the cluster, which makes the admin
server:- Set
ANNOUNCE_HOSTNAME_OVERRIDE=$(CURRENT_POD_NAME).<zone>on the FalkorDB (and Sentinel, if enabled) pods, so each pod announces its own external name instead of its in-cluster address. Depending on topology this becomesreplica-announce-ip,sentinel announce-ip, orcluster-announce-hostname— see External DNS access for how each topology announces itself. - Create a dedicated headless Service per component (
clusterIP: None,publishNotReadyAddresses: true), annotated withexternal-dns.alpha.kubernetes.io/hostnameso its endpoints — the pod IPs — get published under that name.
2
Publish DNS records for that name
Something has to turn the annotated Service into actual DNS records that
resolve to the current pod IPs — ExternalDNS
is the recommended and directly supported option, watching the annotated
headless Services and publishing records to a private or public DNS zone
(Route 53, Cloud DNS, Azure DNS, and other supported providers). Without
a controller doing this, the announced name has nothing backing it and
will not resolve.
Other ways to expose a database
The Networking step also supports adding a plainClusterIP, NodePort,
or LoadBalancer Service per component, independent of the external-domain
feature above. Use this when you want a conventional load-balanced entry
point (one virtual IP in front of all replicas) rather than stable per-pod
names — for example a LoadBalancer Service for a standalone database
reachable from the internet, or a NodePort for quick access during
development. See the Networking step in
Standalone, Replicated,
Sentinel, and Sharded for
per-topology notes.