From 29d68083dbe86f3565af172fcbac599270f8f984 Mon Sep 17 00:00:00 2001 From: as51340 Date: Wed, 2 Sep 2026 13:34:32 +0200 Subject: [PATCH] docs(ha-k8s): document configurable affinity.topologyKey in HA chart --- .../high-availability/setup-ha-cluster-k8s.mdx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx b/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx index 0cc48433b..f7f4f551b 100644 --- a/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx +++ b/pages/clustering/high-availability/setup-ha-cluster-k8s.mdx @@ -540,6 +540,20 @@ A full AKS example is available in the [chart repository]((https://github.com/memgraph/helm-charts/tree/main/charts/memgraph-high-availability/aks)). +All strategies above spread pods across a topology domain defined by +`affinity.topologyKey`. The default, `kubernetes.io/hostname`, treats every +node as its own domain. Set it to a different node label to spread pods across +a wider domain, for example across availability zones: + +```yaml +affinity: + topologyKey: topology.kubernetes.io/zone + unique: true +``` + +The same topology key is applied to both coordinator and data pod rules, so the +label must be present on every node that should take part in scheduling. + ### Sysctl options Use the `sysctlInitContainer` to configure kernel parameters required for @@ -1732,6 +1746,7 @@ and their default values. | `ports.replicationPort` | Replication port used on data instances. | `20000` | | `ports.coordinatorPort` | Coordinator port used on coordinators. | `12000` | | `ports.metricsPort` | Metrics port for coordinators and data instances. Opened only if `prometheus.enabled` is set to `true`. | `9091` | +| `affinity.topologyKey` | Topology domain used by all pod affinity and anti-affinity rules (for example a node or an availability zone) | `kubernetes.io/hostname` | | `affinity.unique` | Schedule pods on different nodes in the cluster | `false` | | `affinity.parity` | Schedule pods on the same node with maximum one coordinator and one data node | `false` | | `affinity.nodeSelection` | Schedule pods on nodes with specific labels | `false` |