From 212c490f049986241ea467c5d8e3c5d91b9d44a2 Mon Sep 17 00:00:00 2001 From: mich-elle-luna Date: Tue, 24 Jun 2025 14:47:44 -0700 Subject: [PATCH 1/6] 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 --- .../recommendations/node-selection.md | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/content/operate/kubernetes/recommendations/node-selection.md b/content/operate/kubernetes/recommendations/node-selection.md index a001ce78df..af288e511b 100644 --- a/content/operate/kubernetes/recommendations/node-selection.md +++ b/content/operate/kubernetes/recommendations/node-selection.md @@ -185,15 +185,28 @@ during partitions or other rack (or region) related failures. {{%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%}} - Rack-zone awareness is a single property in the Redis Enterprise cluster CRD named `rackAwarenessNodeLabel`. -This value for this label is commonly `topology.kubernetes.io/zone` as documented in -['Running in multiple zones'](https://kubernetes.io/docs/setup/best-practices/multiple-zones/#nodes-are-labeled). + +### Choosing a node label + +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). + +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. + +### Node labeling requirements + +{{< warning >}} +**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. +{{< /warning >}} + +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. + +The value for the chosen label must indicate the topology information (rack, zone, region, etc.) for each node. You can check the value for this label in your nodes with the command: ```sh -$kubectl get nodes -o custom-columns="name:metadata.name","rack\\zone:metadata.labels.failure-domain\.beta\.kubernetes\.io/zone" +$ kubectl get nodes -o custom-columns="name:metadata.name","rack\\zone:metadata.labels.topology\.kubernetes\.io/zone" name rack\zone ip-10-0-x-a.eu-central-1.compute.internal eu-central-1a From 5f32e7a76b8140138213393742903f6c888d17c5 Mon Sep 17 00:00:00 2001 From: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:34:11 -0700 Subject: [PATCH 2/6] Update content/operate/kubernetes/recommendations/node-selection.md Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> --- content/operate/kubernetes/recommendations/node-selection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/recommendations/node-selection.md b/content/operate/kubernetes/recommendations/node-selection.md index af288e511b..85f88189ad 100644 --- a/content/operate/kubernetes/recommendations/node-selection.md +++ b/content/operate/kubernetes/recommendations/node-selection.md @@ -187,7 +187,7 @@ during partitions or other rack (or region) related failures. Rack-zone awareness is a single property in the Redis Enterprise cluster CRD named `rackAwarenessNodeLabel`. -### Choosing a node label +### Choose a node label 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). From 078f88938db57f2e0030194a9cc00e46edd0c86c Mon Sep 17 00:00:00 2001 From: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:34:22 -0700 Subject: [PATCH 3/6] Update content/operate/kubernetes/recommendations/node-selection.md Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> --- content/operate/kubernetes/recommendations/node-selection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/recommendations/node-selection.md b/content/operate/kubernetes/recommendations/node-selection.md index 85f88189ad..f6cee6e4a5 100644 --- a/content/operate/kubernetes/recommendations/node-selection.md +++ b/content/operate/kubernetes/recommendations/node-selection.md @@ -191,7 +191,7 @@ Rack-zone awareness is a single property in the Redis Enterprise cluster CRD nam 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). -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. +If your platform doesn’t set this label automatically, you can use any custom label that describes the node’s topology (such as rack, zone, or region). ### Node labeling requirements From 4c60c23630e9659cc0080a1bc56aedf6dc612078 Mon Sep 17 00:00:00 2001 From: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:34:32 -0700 Subject: [PATCH 4/6] Update content/operate/kubernetes/recommendations/node-selection.md Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> --- content/operate/kubernetes/recommendations/node-selection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/recommendations/node-selection.md b/content/operate/kubernetes/recommendations/node-selection.md index f6cee6e4a5..448b4f1864 100644 --- a/content/operate/kubernetes/recommendations/node-selection.md +++ b/content/operate/kubernetes/recommendations/node-selection.md @@ -189,7 +189,7 @@ Rack-zone awareness is a single property in the Redis Enterprise cluster CRD nam ### Choose a node label -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). +The most common label used for rack-zone awareness is topology.kubernetes.io/zone, a standard Kubernetes label that shows the zone a node runs in. Many Kubernetes platforms add this label to nodes by default, as noted in the [Kubernetes documentation](https://kubernetes.io/docs/setup/best-practices/multiple-zones/#nodes-are-labeled). If your platform doesn’t set this label automatically, you can use any custom label that describes the node’s topology (such as rack, zone, or region). From a2852d07bfecc8ccbcad90d499fb95b31b7d95a7 Mon Sep 17 00:00:00 2001 From: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:34:40 -0700 Subject: [PATCH 5/6] Update content/operate/kubernetes/recommendations/node-selection.md Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> --- content/operate/kubernetes/recommendations/node-selection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/recommendations/node-selection.md b/content/operate/kubernetes/recommendations/node-selection.md index 448b4f1864..bf7f08971d 100644 --- a/content/operate/kubernetes/recommendations/node-selection.md +++ b/content/operate/kubernetes/recommendations/node-selection.md @@ -196,7 +196,7 @@ If your platform doesn’t set this label automatically, you can use any custom ### Node labeling requirements {{< warning >}} -**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. +**All eligible nodes must have the label for rack-awareness to work. The operator requires every node that might run Redis Enterprise pods to be labeled. If any are missing the label, reconciliation will fail. {{< /warning >}} 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. From d8f52001c33668f1ad2ff69a0a56c8e8a0c5d79f Mon Sep 17 00:00:00 2001 From: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:34:50 -0700 Subject: [PATCH 6/6] Update content/operate/kubernetes/recommendations/node-selection.md Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> --- content/operate/kubernetes/recommendations/node-selection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/recommendations/node-selection.md b/content/operate/kubernetes/recommendations/node-selection.md index bf7f08971d..de62a9b93b 100644 --- a/content/operate/kubernetes/recommendations/node-selection.md +++ b/content/operate/kubernetes/recommendations/node-selection.md @@ -199,7 +199,7 @@ If your platform doesn’t set this label automatically, you can use any custom **All eligible nodes must have the label for rack-awareness to work. The operator requires every node that might run Redis Enterprise pods to be labeled. If any are missing the label, reconciliation will fail. {{< /warning >}} -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. +Eligible nodes are all nodes where Redis Enterprise pods can be scheduled. By default, these are all worker nodes in the cluster, but you can limit them using `spec.nodeSelector` in the Redis Enterprise cluster (REC) configuration. The value for the chosen label must indicate the topology information (rack, zone, region, etc.) for each node.