Skip to content

Commit 212c490

Browse files
Improve rack-awareness documentation for Kubernetes
- Add clear explanation of node labeling requirements for rack-awareness - Emphasize that ALL eligible nodes must be labeled with chosen label - Explain what eligible nodes are (nodes where RS pods can be scheduled) - Suggest topology.kubernetes.io/zone as commonly available label - Clarify that not all platforms have this label by default - Update example to use current topology.kubernetes.io/zone instead of deprecated failure-domain.beta.kubernetes.io/zone - Fix kubectl command formatting (add space after $) - Add warning about operator failing if nodes are missing labels Addresses DOC-1815
1 parent d3d6b26 commit 212c490

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

content/operate/kubernetes/recommendations/node-selection.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,28 @@ during partitions or other rack (or region) related failures.
185185

186186
{{%note%}}When creating your rack-zone ID, there are some constraints to consider; see [rack-zone awareness]({{< relref "/operate/rs/clusters/configure/rack-zone-awareness#rack-zone-id-rules" >}}) for more info. {{%/note%}}
187187

188-
189188
Rack-zone awareness is a single property in the Redis Enterprise cluster CRD named `rackAwarenessNodeLabel`.
190-
This value for this label is commonly `topology.kubernetes.io/zone` as documented in
191-
['Running in multiple zones'](https://kubernetes.io/docs/setup/best-practices/multiple-zones/#nodes-are-labeled).
189+
190+
### Choosing a node label
191+
192+
The most commonly used label for rack-zone awareness is `topology.kubernetes.io/zone`, which is a well-known Kubernetes label that specifies the zone where a node runs. This label is readily available on all nodes in many Kubernetes platforms, as documented in ['Running in multiple zones'](https://kubernetes.io/docs/setup/best-practices/multiple-zones/#nodes-are-labeled).
193+
194+
However, not all Kubernetes platforms configure this label by default. You can use any custom label that indicates the topology information (rack, zone, region, etc.) for your nodes.
195+
196+
### Node labeling requirements
197+
198+
{{< warning >}}
199+
**All eligible nodes must be labeled** with the chosen label for rack-awareness to work properly. The operator expects that all nodes where Redis Enterprise pods can be scheduled will have the specified label, and will fail and stop reconciliation if any eligible nodes are missing the label.
200+
{{< /warning >}}
201+
202+
Eligible nodes are all nodes where Redis Enterprise pods can be scheduled. By default, these are all worker nodes in the cluster, but this can be restricted by specifying `.spec.nodeSelector` in the Redis Enterprise cluster (REC) configuration.
203+
204+
The value for the chosen label must indicate the topology information (rack, zone, region, etc.) for each node.
192205

193206
You can check the value for this label in your nodes with the command:
194207

195208
```sh
196-
$kubectl get nodes -o custom-columns="name:metadata.name","rack\\zone:metadata.labels.failure-domain\.beta\.kubernetes\.io/zone"
209+
$ kubectl get nodes -o custom-columns="name:metadata.name","rack\\zone:metadata.labels.topology\.kubernetes\.io/zone"
197210
198211
name rack\zone
199212
ip-10-0-x-a.eu-central-1.compute.internal eu-central-1a

0 commit comments

Comments
 (0)